---
title: "Your balances"
method: GET
path: "/user-balances"
tags: ["WebSockets · Your account"]
---

# Your balances

`GET /user-balances`

## Request

- Base URL: `wss://ws.azbit.com`
- URL: `wss://ws.azbit.com/user-balances`
- Auth: none declared. Required headers: `API-PublicKey`, `API-Signature`

Not a REST call: this is the WebSocket **handshake**. Connect to the URL below and the exchange answers
`101 Switching Protocols`; everything after that is frames, not requests.

One frame whenever a balance on **any** Unified Trading Account you own changes: spot holds, futures margin,
deposits, withdrawals, and fees.

**No subscribe frame.** The authenticated handshake binds this socket to your user.

```json
{
  "accountId": "721397d0-dae0-4ff3-ab1b-d7288ed6034c",
  "currency": "USDT",
  "balance": 1234.5,
  "blocked": 100
}
```

`balance` is the total and `blocked` is the part held in orders or margin. `accountId` matches
`GET /api/uta/accounts`. This is per account and currency, not the aggregate shape returned by
`GET /api/wallets/balances`. Reconcile both `GET /api/wallets/balances` and `GET /api/uta/accounts` after
reconnecting.

## Query parameters

- `timestamp` integer, required

## Headers

- `API-PublicKey` string, required
- `API-Signature` string, required

## Other responses

- `101`: Switching Protocols — the socket is open.
- `401`: Headers missing, key unknown, signature wrong, or `timestamp` missing or stale.
- `403`: Key valid but refused: caller IP outside the key's whitelist, or the key lacks the User info permission.
- `503`: Authentication or the selected event feed is temporarily unavailable — retry; do not rotate your key.

## Changes

- **2026-10-13** `13dbac1613c4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/binibit/apis/webapp/changes/user-balances/get.md)

---

[API](https://skmtc.dev/binibit/apis/webapp.md) - [All operations](https://skmtc.dev/binibit/apis/webapp/llms.txt) - [OpenAPI document](https://skmtc.dev/binibit/apis/webapp/revisions/13dbac1613c4?raw)
