---
title: "Get Balance"
method: GET
path: "/portfolio/balance"
tags: ["portfolio"]
---

# Get Balance

`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`

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.

## Query parameters

- `subaccount` integer
- `exchange_index` integer: Identifier for an exchange shard.

## Response `200`

Balance retrieved successfully

- GetBalanceResponse
  - `balance` integer, 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_dollars` string, 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_value` integer, 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_ts` integer, required: Unix timestamp of the last update to the balance.
  - `balance_breakdown` IndexedBalance[]: User balance breakdown per exchange instance, omitted only when using a subaccount-restricted API key.
    - `exchange_index` integer, required: Identifier for an exchange shard.
    - `balance` string, 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.

## Other responses

- `401`: Unauthorized - authentication required
- `500`: Internal server error

## Changes

- **2026-10-16** `bd0c218a65b7`: 1 warning
  - for the `query` request parameter `subaccount`, the min was set to `0.00`
- **2026-07-31** `a07481be8bf9`: 2 warning
  - removed the optional property `service` from the response with the `401` status
  - removed the optional property `service` from the response with the `500` status
- **2026-07-13** `a671b3e77f35`: 1 info
  - added the new optional `query` request parameter `exchange_index`
- **2026-05-18** `7e31fc4590e0`: 2 info
  - added the optional property `balance_breakdown` to the response with the `200` status
  - added the required property `balance_dollars` to the response with the `200` status
- **2026-03-08** `0efefc7b0f73`: 1 info
  - added the new optional `query` request parameter `subaccount`

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/portfolio/balance/get.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
