WhiteBIT · AsyncAPI Specification

WhiteBit Spot Balance

Version 1.0.0

Get and subscribe to [spot balance](/glossary#balance-spotbalance-trade) updates.

View Spec View on GitHub CompanyCryptocurrencyExchangeTradingWebSocketAsyncAPIEventsWebSockets

Channels

/ws
Spot balance operations

Messages

✉
balanceSpotRequest
Balance Spot Query
Get current spot wallet balance
✉
balanceSpotResponse
Balance Spot Response
Current balances for requested assets
✉
balanceSpotSubscribe
Subscribe to Spot Balance
Subscribe to spot balance updates (Update interval: 1 sec)
✉
balanceSpotSubscribeResponse
Subscribe Response
Subscription confirmation
✉
balanceSpotUpdate
Balance Spot Update
Balance change for subscribed assets
✉
balanceSpotUnsubscribe
Unsubscribe from Balance Spot
Stop receiving balance updates
✉
balanceSpotUnsubscribeResponse
Unsubscribe Response
Unsubscription confirmation

Servers

wss
production
WhiteBIT Global Server
wss
eu
WhiteBIT EU Server

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: WhiteBit Spot Balance
  version: 1.0.0
  description: |
    Get and subscribe to [spot balance](/glossary#balance-spotbalance-trade) updates.
  x-auth-required: true
  x-rate-limits:
    connections-per-minute: 1000
    requests-per-10-seconds: 12000

servers:
  production:
    host: wss.whitebit.com
    protocol: wss
    description: WhiteBIT Global Server
  eu:
    host: api.whitebit.eu
    protocol: wss
    description: WhiteBIT EU Server

channels:
  /ws:
    address: /ws
    description: Spot balance operations
    messages:
      balanceSpotRequest:
        $ref: '#/components/messages/balanceSpotRequest'
      balanceSpotResponse:
        $ref: '#/components/messages/balanceSpotResponse'
      balanceSpotSubscribe:
        $ref: '#/components/messages/balanceSpotSubscribe'
      balanceSpotSubscribeResponse:
        $ref: '#/components/messages/balanceSpotSubscribeResponse'
      balanceSpotUpdate:
        $ref: '#/components/messages/balanceSpotUpdate'
      balanceSpotUnsubscribe:
        $ref: '#/components/messages/balanceSpotUnsubscribe'
      balanceSpotUnsubscribeResponse:
        $ref: '#/components/messages/balanceSpotUnsubscribeResponse'

operations:
  sendBalanceSpotRequest:
    action: receive
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotRequest'

  receiveBalanceSpotResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotResponse'

  sendBalanceSpotSubscribe:
    action: receive
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotSubscribe'

  receiveBalanceSpotSubscribeResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotSubscribeResponse'

  receiveBalanceSpotUpdates:
    action: send
    description: "Receive real-time spot balance updates (Update interval: 1 sec)"
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotUpdate'

  sendBalanceSpotUnsubscribe:
    action: receive
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotUnsubscribe'

  receiveBalanceSpotUnsubscribeResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/balanceSpotUnsubscribeResponse'

components:
  messages:
    balanceSpotRequest:
      name: BalanceSpotRequest
      title: Balance Spot Query
      summary: Get current spot wallet balance
      payload:
        $ref: '#/components/schemas/BalanceSpotRequest'
      examples:
        - name: querySpecificAssets
          summary: |
            Query spot balance for specific assets:
            - params: Array of asset tickers (ETH, BTC)
            Pass empty array to query all balances
          payload:
            id: 2
            method: balanceSpot_request
            params:
              - "ETH"
              - "BTC"

    balanceSpotResponse:
      name: BalanceSpotResponse
      title: Balance Spot Response
      summary: Current balances for requested assets
      payload:
        $ref: '#/components/schemas/BalanceSpotResponse'
      examples:
        - name: balanceResponse
          summary: Balance response
          payload:
            id: 2
            result:
              ETH:
                available: "0"
                freeze: "0"
              BTC:
                available: "0"
                freeze: "0"
            error: null

    balanceSpotSubscribe:
      name: BalanceSpotSubscribe
      title: Subscribe to Spot Balance
      summary: "Subscribe to spot balance updates (Update interval: 1 sec)"
      payload:
        $ref: '#/components/schemas/BalanceSpotSubscribe'
      examples:
        - name: subscribeToAssets
          summary: |
            Subscribe to spot balance updates:
            - params: Array of asset tickers (USDT, ETH)
          payload:
            id: 3
            method: balanceSpot_subscribe
            params:
              - "USDT"
              - "ETH"

    balanceSpotSubscribeResponse:
      name: BalanceSpotSubscribeResponse
      title: Subscribe Response
      summary: Subscription confirmation
      payload:
        $ref: '#/components/schemas/SubscriptionResponse'
      examples:
        - name: subscriptionSuccess
          summary: Subscription successful
          payload:
            id: 3
            result:
              status: success
            error: null

    balanceSpotUpdate:
      name: BalanceSpotUpdate
      title: Balance Spot Update
      summary: Balance change for subscribed assets
      payload:
        $ref: '#/components/schemas/BalanceSpotUpdate'
      examples:
        - name: balanceUpdate
          summary: |
            Real-time spot balance update:
            - params[0]: Object with asset keys (USDT, etc.)
            - Each asset has: available (for trade) and freeze (in active orders) amounts
          payload:
            id: null
            method: balanceSpot_update
            params:
              - USDT:
                  available: "100.1885"
                  freeze: "0"

    balanceSpotUnsubscribe:
      name: BalanceSpotUnsubscribe
      title: Unsubscribe from Balance Spot
      summary: Stop receiving balance updates
      payload:
        $ref: '#/components/schemas/UnsubscribeRequest'
      examples:
        - name: unsubscribe
          summary: Unsubscribe from balance updates
          payload:
            id: 4
            method: balanceSpot_unsubscribe
            params: []

    balanceSpotUnsubscribeResponse:
      name: BalanceSpotUnsubscribeResponse
      title: Unsubscribe Response
      summary: Unsubscription confirmation
      payload:
        $ref: '#/components/schemas/SubscriptionResponse'
      examples:
        - name: unsubscribeSuccess
          summary: Unsubscription successful
          payload:
            id: 4
            result:
              status: success
            error: null

  schemas:
    BalanceSpotRequest:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: integer
          description: Unique request identifier
        method:
          type: string
          const: balanceSpot_request
          description: "Method name. Fixed value: `balanceSpot_request`."
        params:
          type: array
          items:
            type: string
            description: "Asset [ticker](/glossary#ticker). Example: BTC"
          description: "Array of asset tickers to query. Empty array returns all balances."

    BalanceSpotResponse:
      type: object
      required:
        - id
        - result
        - error
      properties:
        id:
          type: integer
          description: Request identifier matching the request
        result:
          type: object
          description: Wallet balances by currency
          additionalProperties:
            type: object
            properties:
              available:
                type: string
                description: "Amount available for trade"
              freeze:
                type: string
                description: "Amount in active [orders](/glossary#orders)"
        error:
          type: "null"
          description: Error object (null on success)

    BalanceSpotSubscribe:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: integer
          description: Unique request identifier
        method:
          type: string
          const: balanceSpot_subscribe
          description: "Method name. Fixed value: `balanceSpot_subscribe`."
        params:
          type: array
          items:
            type: string
            description: "Asset [ticker](/glossary#ticker). Example: USDT"
          description: "Array of asset tickers to subscribe to"

    SubscriptionResponse:
      type: object
      required:
        - id
        - result
        - error
      properties:
        id:
          type: integer
          description: Request identifier matching the request
        result:
          type: object
          required:
            - status
          properties:
            status:
              type: string
              const: success
              description: "Fixed value: `success`."
        error:
          type: "null"
          description: Error object (null on success)

    BalanceSpotUpdate:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: "null"
          description: Update events have null id
        method:
          type: string
          const: balanceSpot_update
          description: "Method name. Fixed value: `balanceSpot_update`."
        params:
          type: array
          items:
            type: object
            description: Balance update object with asset keys
            additionalProperties:
              type: object
              properties:
                available:
                  type: string
                  description: "Amount available for trade"
                freeze:
                  type: string
                  description: "Amount in active [orders](/glossary#orders)"
          description: Array containing balance updates for subscribed assets

    UnsubscribeRequest:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: integer
          description: Unique request identifier
        method:
          type: string
          const: balanceSpot_unsubscribe
          description: "Method name. Fixed value: `balanceSpot_unsubscribe`."
        params:
          type: array
          items: {}
          maxItems: 0
          description: Empty array for unsubscribe

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/whitebit-private-balance-spot-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.