WhiteBIT · AsyncAPI Specification

WhiteBit Service Operations

Version 1.0.0

Service operations including health checks (ping) and server time

View Spec View on GitHub CompanyCryptocurrencyExchangeTradingWebSocketAsyncAPIEventsWebSockets

Channels

/ws
Service operations for connection health checks and server time. Use ping to maintain connection - server closes connection after 60 seconds of inactivity.

Messages

✉
pingRequest
Ping
Verify connection is active
✉
pingResponse
Ping Response
"pong" string
✉
timeRequest
Server time
Get current server time
✉
timeResponse
Server time response
Unix timestamp (integer)

Servers

wss
production
WhiteBIT Global Server
wss
eu
WhiteBIT EU Server

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: WhiteBit Service Operations
  version: 1.0.0
  description: Service operations including health checks (ping) and server time
  x-auth-required: false
  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: |
      Service operations for connection health checks and server time.
      
      <Note>
      Use ping to maintain connection - server closes connection after 60 seconds of inactivity.
      </Note>
    messages:
      pingRequest:
        $ref: '#/components/messages/pingRequest'
      pingResponse:
        $ref: '#/components/messages/pingResponse'
      timeRequest:
        $ref: '#/components/messages/timeRequest'
      timeResponse:
        $ref: '#/components/messages/timeResponse'

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

  receivePingResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/pingResponse'

  sendTimeRequest:
    action: receive
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/timeRequest'

  receiveTimeResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/timeResponse'

components:
  messages:
    pingRequest:
      name: PingRequest
      title: Ping
      summary: Verify connection is active
      payload:
        $ref: '#/components/schemas/PingRequest'
      examples:
        - name: ping
          summary: Simple ping
          payload:
            id: 0
            method: ping
            params: []

    pingResponse:
      name: PingResponse
      title: Ping Response
      summary: "\"pong\" string"
      payload:
        $ref: '#/components/schemas/PingResponse'
      examples:
        - name: pongResponse
          summary: Pong response
          payload:
            id: 0
            result: pong
            error: null

    timeRequest:
      name: TimeRequest
      title: Server time
      summary: Get current server time
      payload:
        $ref: '#/components/schemas/TimeRequest'
      examples:
        - name: timeRequest
          summary: Request current time
          payload:
            id: 1
            method: time
            params: []

    timeResponse:
      name: TimeResponse
      title: Server time response
      summary: Unix timestamp (integer)
      payload:
        $ref: '#/components/schemas/TimeResponse'
      examples:
        - name: timeResponse
          summary: Server time response
          payload:
            id: 1
            result: 1493285895
            error: null

  schemas:
    BaseRequest:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: integer
          description: Unique request identifier

    BaseResponse:
      type: object
      required:
        - id
        - result
        - error
      properties:
        id:
          type: integer
          description: Request identifier matching the request
        error:
          type: "null"

    PingRequest:
      allOf:
        - $ref: '#/components/schemas/BaseRequest'
        - type: object
          properties:
            method:
              type: string
              const: ping
              description: "Method name. Fixed value: `ping`."
            params:
              type: array
              items: {}
              maxItems: 0

    PingResponse:
      allOf:
        - $ref: '#/components/schemas/BaseResponse'
        - type: object
          properties:
            result:
              type: string
              enum: [pong]

    TimeRequest:
      allOf:
        - $ref: '#/components/schemas/BaseRequest'
        - type: object
          properties:
            method:
              type: string
              const: time
              description: "Method name. Fixed value: `time`."
            params:
              type: array
              items: {}
              maxItems: 0

    TimeResponse:
      allOf:
        - $ref: '#/components/schemas/BaseResponse'
        - type: object
          properties:
            result:
              type: integer
              description: Unix timestamp

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-public-service-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.