Skip to main content

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
MethodHTTP requestDescription
apply_subaccount_transferPOST /portfolio/subaccounts/transferTransfer Between Subaccounts
create_subaccountPOST /portfolio/subaccountsCreate Subaccount
get_balanceGET /portfolio/balanceGet Balance
get_fillsGET /portfolio/fillsGet Fills
get_portfolio_resting_order_total_valueGET /portfolio/summary/total_resting_order_valueGet Total Resting Order Value
get_positionsGET /portfolio/positionsGet Positions
get_settlementsGET /portfolio/settlementsGet Settlements
get_subaccount_balancesGET /portfolio/subaccounts/balancesGet All Subaccount Balances
get_subaccount_nettingGET /portfolio/subaccounts/nettingGet Subaccount Netting
get_subaccount_transfersGET /portfolio/subaccounts/transfersGet Subaccount Transfers
update_subaccount_nettingPUT /portfolio/subaccounts/nettingUpdate 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

NameTypeDescriptionNotes
apply_subaccount_transfer_requestApplySubaccountTransferRequest

Return type

object

HTTP response details

Status codeDescription
200Transfer completed successfully
400Bad request - invalid input
401Unauthorized - authentication required
500Internal 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 codeDescription
201Subaccount created successfully
400Bad request - invalid input
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
subaccountintSubaccount number (0 for primary, 1-32 for subaccounts). Defaults to 0.[optional]

Return type

GetBalanceResponse

HTTP response details

Status codeDescription
200Balance retrieved successfully
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
tickerstrFilter by market ticker[optional]
order_idstrFilter by order ID[optional]
min_tsintFilter items after this Unix timestamp[optional]
max_tsintFilter items before this Unix timestamp[optional]
limitintNumber of results per page. Defaults to 100.[optional] [default to 100]
cursorstrPagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.[optional]
subaccountintSubaccount number (0 for primary, 1-32 for subaccounts). If omitted, defaults to all subaccounts.[optional]

Return type

GetFillsResponse

HTTP response details

Status codeDescription
200Fills retrieved successfully
400Bad request
401Unauthorized
500Internal 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 codeDescription
200Total resting order value retrieved successfully
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
cursorstrThe 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]
limitintParameter to specify the number of results per page. Defaults to 100.[optional] [default to 100]
count_filterstrRestricts 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]
tickerstrFilter by market ticker[optional]
event_tickerstrEvent ticker to filter by. Only a single event ticker is supported.[optional]
subaccountintSubaccount number (0 for primary, 1-32 for subaccounts). Defaults to 0.[optional]

Return type

GetPositionsResponse

HTTP response details

Status codeDescription
200Positions retrieved successfully
400Bad request - invalid input
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
limitintNumber of results per page. Defaults to 100.[optional] [default to 100]
cursorstrPagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.[optional]
tickerstrFilter by market ticker[optional]
event_tickerstrEvent ticker to filter by. Only a single event ticker is supported.[optional]
min_tsintFilter items after this Unix timestamp[optional]
max_tsintFilter items before this Unix timestamp[optional]
subaccountintSubaccount number (0 for primary, 1-32 for subaccounts). If omitted, defaults to all subaccounts.[optional]

Return type

GetSettlementsResponse

HTTP response details

Status codeDescription
200Settlements retrieved successfully
400Bad request - invalid input
401Unauthorized - authentication required
500Internal 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 codeDescription
200Balances retrieved successfully
401Unauthorized - authentication required
500Internal 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 codeDescription
200Netting settings retrieved successfully
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
limitintNumber of results per page. Defaults to 100.[optional] [default to 100]
cursorstrPagination 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 codeDescription
200Transfers retrieved successfully
401Unauthorized - authentication required
500Internal 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

NameTypeDescriptionNotes
update_subaccount_netting_requestUpdateSubaccountNettingRequest

Return type

void (empty response body)

HTTP response details

Status codeDescription
200Netting setting updated successfully
400Bad request - invalid input
401Unauthorized - authentication required
500Internal server error