portfolio

Returns the balance and portfolio value for a member. Both values include all exchange indexes unless exchange_index is provided. Pass subaccount to use a subaccount instead of the primary account. This endpoint also accepts API keys with the 'read::portfolio_balance' scope.

Rate limit: this endpoint has its own bucket, separate from the Read budget. Basic and Advanced tiers may call it 1 time per second; all higher tiers may call it 5 times per second. The bucket holds one second of budget, so there is no burst. Calls to this endpoint do not draw down the Read budget, and other reads do not draw down this bucket. Balance only changes on fills, settlements and transfers, so react to those (for example the user fills websocket channel) instead of polling this endpoint.

get/portfolio/balance

Request

  • Base URL
    https://external-api.kalshi.com/trade-api/v2
  • URL
    https://external-api.kalshi.com/trade-api/v2/portfolio/balance
  • Auth
    API key in header KALSHI-ACCESS-KEY and API key in header KALSHI-ACCESS-SIGNATURE and API key in header KALSHI-ACCESS-TIMESTAMP

Query parameters

subaccountinteger

Subaccount number (0 for primary, 1-63 for subaccounts). Defaults to 0. Subaccount-restricted API keys default to their locked subaccount and must omit this parameter or pass their locked subaccount.

exchange_indexinteger

Identifier for an exchange shard.

Exchange index used to scope the balance and portfolio value. If omitted, both include all exchange indexes.

Response

Balance retrieved successfully

balanceinteger required

Member's available balance in cents for the requested account and exchange index. It includes all exchange indexes when exchange_index is omitted.

balance_dollarsstring required

Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.

portfolio_valueinteger required

Member's portfolio value in cents for the requested account and exchange index. It includes all exchange indexes when exchange_index is omitted.

updated_tsinteger required

Unix timestamp of the last update to the balance.

Example response

{
  "balance_dollars": "0.5600",
  "balance_breakdown": [
    {
      "balance": "0.5600"
    }
  ]
}

Changes

    • warning

      for the query request parameter subaccount, the min was set to 0.00

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status