Kalshi Get Positions
Get current positions on Kalshi prediction markets. Returns position size, P&L, fees, and settlement data for each market. Supports filtering by ticker or event. Ideal for: portfolio tracking, position monitoring, P&L analysis, automated rebalancing workflows.
Catalog action Utility kalshi
Get current positions on Kalshi prediction markets. Returns position size, P&L, fees, and settlement data for each market. Supports filtering by ticker or event. Ideal for: portfolio tracking, position monitoring, P&L analysis, automated rebalancing workflows.
At a Glance
| Field | Value |
|---|---|
| Action ID | kalshi-get-positions |
| Category | Utility |
| Connector | kalshi |
| Requires gas | No |
| Funds movement | None declared |
| Tags | kalshi, prediction-market, positions, portfolio, read |
Payload Schema
| Field | Type | Required | Description |
|---|---|---|---|
ticker | string | No | Filter by market ticker |
eventTicker | string | No | Filter by event ticker |
limit | number | No | Maximum number of positions to return (default: 100, max: 1000) |
cursor | string | No | Cursor for pagination |
countFilter | string | No | Filter positions: 'position' for open only (non-zero contracts), 'total_traded' for any traded. Omit to return all positions. |
subaccount | number | No | Subaccount number (0 = primary, 1-32 = subaccounts) |
Result Schema
| Field | Type | Required | Description |
|---|---|---|---|
positions | array | Yes | List of market positions |
eventPositions | array | No | Event-level position aggregates with accurate realized P&L |
cursor | string | Yes | Cursor for fetching the next page |
Examples
json{ "type": "kalshi-get-positions", "payload": { "ticker": "example-ticker", "eventTicker": "example-eventTicker", "limit": 100, "cursor": "example-cursor", "countFilter": "position" }, "children": [], "connector": { "type": "kalshi", "id": "conn_kalshi" }}
bashcurl -X POST "https://api.b3os.org/v1/actions/kalshi-get-positions/test" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "ticker": "example-ticker", "eventTicker": "example-eventTicker", "limit": 100, "cursor": "example-cursor", "countFilter": "position" }}'
Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.
