Binance.US WebSocket API

The Binance.US WebSocket API is a request/response API delivered over a persistent WebSocket connection at wss://ws-api.binance.us/ws-api/v3. It is functionally equivalent to the REST API — the same parameters, the same status and error codes — but offers lower latency for time-sensitive trading. It covers general requests, market data requests, trading requests (place/test/query/cancel/replace orders and OCO), account requests, and user data stream lifecycle requests. SIGNED (TRADE and USER_DATA) requests use the same HMAC SHA-256 signature and timing rules as the REST API.

AsyncAPI Specification

binance.us-websocket-api-asyncapi.yml Raw ↑
asyncapi: 2.6.0
info:
  title: Binance.US WebSocket API
  version: '3'
  description: >-
    The Binance.US WebSocket API is a request/response API delivered over a persistent WebSocket connection.
    It is functionally equivalent to the REST API — same features, same parameters, same status and error
    codes — but offers lower latency for time-sensitive trading. Requests are sent as JSON in text frames, one
    request per frame, carrying an arbitrary `id`, a `method` name and an optional `params` object; the server
    echoes `id` back on every response. Responses carry `id`, an HTTP-style `status`, a `result` or an
    `error`, and a `rateLimits` array. SIGNED methods (TRADE and USER_DATA) require `apiKey`, `timestamp` and
    an HMAC SHA-256 `signature` inside `params`. A single connection is valid for 24 hours; the server sends a
    ping frame every 3 minutes and disconnects if no pong is received within 10 minutes.


    This document is an API Evangelist generation from the published Binance.US documentation. Binance.US does
    not publish an AsyncAPI document of its own.
  contact:
    name: Binance.US API Support
    url: https://support.binance.us/en
  license:
    name: Binance.US Terms of Use
    url: https://www.binance.us/terms-of-use
  x-generated: '2026-08-07'
  x-method: generated
  x-source: https://docs.binance.us/#websocket-api
externalDocs:
  description: Binance.US WebSocket API documentation
  url: https://docs.binance.us/#websocket-api
defaultContentType: application/json
servers:
  production:
    url: ws-api.binance.us:443/ws-api/v3
    protocol: wss
    description: >-
      Production WebSocket API endpoint. Alternative port 9443 is available if port 443 is blocked.
    security:
    - apiKeySignature: []
channels:
  /ws-api/v3:
    description: >-
      The single request/response channel of the Binance.US WebSocket API. The `method` field selects the
      operation; method names may be prefixed with an explicit version, e.g. "v3/order.place".
    publish:
      operationId: sendRequest
      summary: Send a WebSocket API request.
      message:
        $ref: '#/components/messages/Request'
    subscribe:
      operationId: receiveResponse
      summary: Receive the matching WebSocket API response.
      message:
        oneOf:
        - $ref: '#/components/messages/SuccessResponse'
        - $ref: '#/components/messages/ErrorResponse'
components:
  securitySchemes:
    apiKeySignature:
      type: userPassword
      description: >-
        SIGNED (TRADE and USER_DATA) methods require `apiKey`, `timestamp` and an HMAC SHA-256 `signature`
        inside the request `params`, using the same signing rules as the REST API.
  messages:
    Request:
      name: request
      title: WebSocket API request
      contentType: application/json
      payload:
        type: object
        required: [id, method]
        properties:
          id:
            type: ['integer','string','null']
            description: >-
              Arbitrary ID used to match responses to requests. The server does not interpret it and simply
              echoes it back.
          method:
            type: string
            description: Request method name. May be version-prefixed, e.g. v3/order.place.
            enum:
            - ping
            - time
            - exchangeInfo
            - depth
            - trades.recent
            - trades.historical
            - trades.aggregate
            - klines
            - avgPrice
            - ticker.24hr
            - ticker
            - ticker.price
            - ticker.book
            - order.place
            - order.test
            - order.status
            - order.cancel
            - order.cancelReplace
            - openOrders.status
            - openOrders.cancelAll
            - orderList.place
            - orderList.status
            - orderList.cancel
            - openOrderLists.status
            - account.status
            - account.rateLimits.orders
            - allOrders
            - allOrderLists
            - myTrades
            - myPreventedMatches
            - userDataStream.start
            - userDataStream.ping
            - userDataStream.stop
          params:
            type: object
            description: >-
              Request parameters; may be omitted when the method takes none. Order of params is not
              significant. SIGNED methods additionally require apiKey, timestamp and signature.
    SuccessResponse:
      name: successResponse
      title: WebSocket API success response
      contentType: application/json
      payload:
        type: object
        required: [id, status]
        properties:
          id:
            type: ['integer','string','null']
            description: Same as in the original request.
          status:
            type: integer
            description: HTTP-style status code. 200 indicates success.
          result:
            type: ['object','array']
            description: Response content. Present if the request succeeded.
          rateLimits:
            $ref: '#/components/schemas/RateLimits'
    ErrorResponse:
      name: errorResponse
      title: WebSocket API error response
      contentType: application/json
      payload:
        type: object
        required: [id, status, error]
        properties:
          id:
            type: ['integer','string','null']
          status:
            type: integer
            description: >-
              400 the request failed; 403 blocked by the Web Application Firewall; 409 partially failed and
              partially succeeded; 418 auto-banned for repeated rate-limit violations; 429 rate limit
              exceeded; 5XX internal error — execution status is UNKNOWN, confirm with a query method.
          error:
            type: object
            properties:
              code:
                type: integer
                description: Binance.US error code (see errors/binance.us-error-codes.yml).
              msg:
                type: string
          rateLimits:
            $ref: '#/components/schemas/RateLimits'
  schemas:
    RateLimits:
      type: array
      description: Rate limiting status returned alongside the response.
      items:
        type: object
        properties:
          rateLimitType:
            type: string
            enum: [REQUEST_WEIGHT, ORDERS, RAW_REQUESTS]
          interval:
            type: string
            enum: [SECOND, MINUTE, DAY]
          intervalNum:
            type: integer
          limit:
            type: integer
          count:
            type: integer