Documentation Index
Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
Use this file to discover all available pages before exploring further.
All URIs are relative to https://api.elections.kalshi.com/trade-api/v2
| Method | HTTP request | Description |
|---|
| apply_subaccount_transfer | POST /portfolio/subaccounts/transfer | Transfer Between Subaccounts |
| create_subaccount | POST /portfolio/subaccounts | Create Subaccount |
| get_balance | GET /portfolio/balance | Get Balance |
| get_fills | GET /portfolio/fills | Get Fills |
| get_portfolio_resting_order_total_value | GET /portfolio/summary/total_resting_order_value | Get Total Resting Order Value |
| get_positions | GET /portfolio/positions | Get Positions |
| get_settlements | GET /portfolio/settlements | Get Settlements |
| get_subaccount_balances | GET /portfolio/subaccounts/balances | Get All Subaccount Balances |
| get_subaccount_netting | GET /portfolio/subaccounts/netting | Get Subaccount Netting |
| get_subaccount_transfers | GET /portfolio/subaccounts/transfers | Get Subaccount Transfers |
| update_subaccount_netting | PUT /portfolio/subaccounts/netting | Update Subaccount Netting |
apply_subaccount_transfer
object apply_subaccount_transfer(apply_subaccount_transfer_request)
Transfer Between Subaccounts
Transfers funds between the authenticated user’s subaccounts. Use 0 for the primary account, or 1-32 for numbered subaccounts.
Parameters
| Name | Type | Description | Notes |
|---|
| apply_subaccount_transfer_request | ApplySubaccountTransferRequest | | |
Return type
object
HTTP response details
| Status code | Description |
|---|
| 200 | Transfer completed successfully |
| 400 | Bad request - invalid input |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
create_subaccount
CreateSubaccountResponse create_subaccount()
Create Subaccount
Creates a new subaccount for the authenticated user. Subaccounts are numbered sequentially starting from 1. Maximum 32 subaccounts per user.
Parameters
This endpoint does not need any parameter.
Return type
CreateSubaccountResponse
HTTP response details
| Status code | Description |
|---|
| 201 | Subaccount created successfully |
| 400 | Bad request - invalid input |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_balance
GetBalanceResponse get_balance(subaccount=subaccount)
Get Balance
Endpoint for getting the balance and portfolio value of a member. Both values are returned in cents.
Parameters
| Name | Type | Description | Notes |
|---|
| subaccount | int | Subaccount number (0 for primary, 1-32 for subaccounts). Defaults to 0. | [optional] |
Return type
GetBalanceResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Balance retrieved successfully |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_fills
GetFillsResponse get_fills(ticker=ticker, order_id=order_id, min_ts=min_ts, max_ts=max_ts, limit=limit, cursor=cursor, subaccount=subaccount)
Get Fills
Endpoint for getting all fills for the member. A fill is when a trade you have is matched.
Fills that occurred before the historical cutoff are only available via GET /historical/fills. See Historical Data for details.
Parameters
| Name | Type | Description | Notes |
|---|
| ticker | str | Filter by market ticker | [optional] |
| order_id | str | Filter by order ID | [optional] |
| min_ts | int | Filter items after this Unix timestamp | [optional] |
| max_ts | int | Filter items before this Unix timestamp | [optional] |
| limit | int | Number of results per page. Defaults to 100. | [optional] [default to 100] |
| cursor | str | Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page. | [optional] |
| subaccount | int | Subaccount number (0 for primary, 1-32 for subaccounts). If omitted, defaults to all subaccounts. | [optional] |
Return type
GetFillsResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Fills retrieved successfully |
| 400 | Bad request |
| 401 | Unauthorized |
| 500 | Internal server error |
get_portfolio_resting_order_total_value
GetPortfolioRestingOrderTotalValueResponse get_portfolio_resting_order_total_value()
Get Total Resting Order Value
Endpoint for getting the total value, in cents, of resting orders. This endpoint is only intended for use by FCM members (rare). Note: If you’re uncertain about this endpoint, it likely does not apply to you.
Parameters
This endpoint does not need any parameter.
Return type
GetPortfolioRestingOrderTotalValueResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Total resting order value retrieved successfully |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_positions
GetPositionsResponse get_positions(cursor=cursor, limit=limit, count_filter=count_filter, ticker=ticker, event_ticker=event_ticker, subaccount=subaccount)
Get Positions
Restricts the positions to those with any of following fields with non-zero values, as a comma separated list. The following values are accepted: position, total_traded
Parameters
| Name | Type | Description | Notes |
|---|
| cursor | str | The Cursor represents a pointer to the next page of records in the pagination. Use the value returned from the previous response to get the next page. | [optional] |
| limit | int | Parameter to specify the number of results per page. Defaults to 100. | [optional] [default to 100] |
| count_filter | str | Restricts the positions to those with any of following fields with non-zero values, as a comma separated list. The following values are accepted - position, total_traded | [optional] |
| ticker | str | Filter by market ticker | [optional] |
| event_ticker | str | Event ticker to filter by. Only a single event ticker is supported. | [optional] |
| subaccount | int | Subaccount number (0 for primary, 1-32 for subaccounts). Defaults to 0. | [optional] |
Return type
GetPositionsResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Positions retrieved successfully |
| 400 | Bad request - invalid input |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_settlements
GetSettlementsResponse get_settlements(limit=limit, cursor=cursor, ticker=ticker, event_ticker=event_ticker, min_ts=min_ts, max_ts=max_ts, subaccount=subaccount)
Get Settlements
Endpoint for getting the member’s settlements historical track.
Parameters
| Name | Type | Description | Notes |
|---|
| limit | int | Number of results per page. Defaults to 100. | [optional] [default to 100] |
| cursor | str | Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page. | [optional] |
| ticker | str | Filter by market ticker | [optional] |
| event_ticker | str | Event ticker to filter by. Only a single event ticker is supported. | [optional] |
| min_ts | int | Filter items after this Unix timestamp | [optional] |
| max_ts | int | Filter items before this Unix timestamp | [optional] |
| subaccount | int | Subaccount number (0 for primary, 1-32 for subaccounts). If omitted, defaults to all subaccounts. | [optional] |
Return type
GetSettlementsResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Settlements retrieved successfully |
| 400 | Bad request - invalid input |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_subaccount_balances
GetSubaccountBalancesResponse get_subaccount_balances()
Get All Subaccount Balances
Gets balances for all subaccounts including the primary account.
Parameters
This endpoint does not need any parameter.
Return type
GetSubaccountBalancesResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Balances retrieved successfully |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_subaccount_netting
GetSubaccountNettingResponse get_subaccount_netting()
Get Subaccount Netting
Gets the netting enabled settings for all subaccounts.
Parameters
This endpoint does not need any parameter.
Return type
GetSubaccountNettingResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Netting settings retrieved successfully |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
get_subaccount_transfers
GetSubaccountTransfersResponse get_subaccount_transfers(limit=limit, cursor=cursor)
Get Subaccount Transfers
Gets a paginated list of all transfers between subaccounts for the authenticated user.
Parameters
| Name | Type | Description | Notes |
|---|
| limit | int | Number of results per page. Defaults to 100. | [optional] [default to 100] |
| cursor | str | Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page. | [optional] |
Return type
GetSubaccountTransfersResponse
HTTP response details
| Status code | Description |
|---|
| 200 | Transfers retrieved successfully |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |
update_subaccount_netting
update_subaccount_netting(update_subaccount_netting_request)
Update Subaccount Netting
Updates the netting enabled setting for a specific subaccount. Use 0 for the primary account, or 1-32 for numbered subaccounts.
Parameters
| Name | Type | Description | Notes |
|---|
| update_subaccount_netting_request | UpdateSubaccountNettingRequest | | |
Return type
void (empty response body)
HTTP response details
| Status code | Description |
|---|
| 200 | Netting setting updated successfully |
| 400 | Bad request - invalid input |
| 401 | Unauthorized - authentication required |
| 500 | Internal server error |