---
title: "Get Exchange Balance"
method: GET
path: "/v1/balance/exchange"
tags: ["balance"]
---

# Get Exchange Balance

`GET /v1/balance/exchange`

## Request

- Base URL: `https://api.rivermarkets.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rivermarkets.com/v1/balance/exchange`
- Auth: none declared

Return live exchange balances (Kalshi, Polymarket) for a non-custodial subaccount.

## Query parameters

- `subaccount_id` string, uuid, required: Non-custodial subaccount to fetch exchange balances for

## Response `200`

Successful Response

- ExchangeBalanceResponse
  - `subaccount_id` string, uuid, required
  - `balances` ExchangeBalance[], required
    - `exchange_id` integer, required
    - `exchange_name` string, required
    - `balance` string, nullable
    - `shard_balances` ExchangeShardBalance[], nullable
      - `exchange_shard` integer, required
      - `balance` string, required
    - `error` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-08-21** `c90d562d4ad1`: 1 info
  - added the optional property `balances/items/shard_balances` to the response with the `200` status

[Operation history](https://skmtc.dev/rivermarkets/apis/river-finance-api/changes/v1/balance/exchange/get.md)

---

[API](https://skmtc.dev/rivermarkets/apis/river-finance-api.md) - [All operations](https://skmtc.dev/rivermarkets/apis/river-finance-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rivermarkets/apis/river-finance-api/revisions/3732aea08430?raw)
