WhiteBIT · AsyncAPI Specification

WhiteBit Place Spot Limit Order

Version 1.0.0

Place a spot limit order over the WebSocket connection. A limit order rests in the order book at the specified price until it is matched or canceled. This method accepts the full spot execution-flag set, including `rpi`. The connection must be authorized before any order method is called — see [Authorize](/websocket/account-streams/authorize).

View Spec View on GitHub CompanyCryptocurrencyExchangeTradingWebSocketAsyncAPIEventsWebSockets

Channels

/ws
Spot limit order placement channel

Messages

✉
orderLimitPlaceRequest
Place limit order
Place a spot limit order
✉
orderLimitPlaceResponse
Place Limit Order Response
Accepted order object (status OPEN)

Servers

wss
production
WhiteBIT Global Server
wss
eu
WhiteBIT EU Server

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: WhiteBit Place Spot Limit Order
  version: 1.0.0
  description: |
    Place a spot limit order over the WebSocket connection.

    A limit order rests in the order book at the specified price until it is matched or
    canceled. This method accepts the full spot execution-flag set, including `rpi`.

    The connection must be authorized before any order method is called — see
    [Authorize](/websocket/account-streams/authorize).
  x-auth-required: true
  x-rate-limits:
    connections-per-minute: 1000
    order-placements-per-10-seconds: 10000
  x-error-codes:
    - code: 1
      message: invalid argument
      description: "A required parameter is missing, an enum value is invalid, or the execution flags conflict. The message names the offending field. `ioc` cannot be combined with `post_only` or `rpi`."
    - code: 10
      message: balance not enough
      description: "The available spot balance does not cover the order."
    - code: 11
      message: amount too small
      description: "The order is below the market `minAmount` or `minTotal`. Check both via `GET /api/v4/public/markets`."
    - code: 12
      message: not enough traders
      description: "The order book is too thin to execute the order."
    - code: 13
      message: order by taker price
      description: "A post-only order would cross the spread and take liquidity. Lower the price for a buy, or raise it for a sell."
    - code: 40
      message: order is not post only
      description: "The market is in post-only mode and the order does not carry the post-only flag."
    - code: 51
      message: trading in the market is not allowed
      description: "Trading on the market is suspended, or the market status blocks this method."
    - code: 154
      message: price is outside spread
      description: "The price falls outside the allowed spread."
    - code: 250
      message: price must be >= X / <= Y
      description: "The price falls outside the market price band. The message states the accepted boundary."

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 limit order placement channel
    messages:
      orderLimitPlaceRequest:
        $ref: '#/components/messages/orderLimitPlaceRequest'
      orderLimitPlaceResponse:
        $ref: '#/components/messages/orderLimitPlaceResponse'

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

  receiveOrderLimitPlaceResponse:
    action: send
    channel:
      $ref: '#/channels/~1ws'
    messages:
      - $ref: '#/channels/~1ws/messages/orderLimitPlaceResponse'

components:
  messages:
    orderLimitPlaceRequest:
      name: OrderLimitPlaceRequest
      title: Place limit order
      summary: Place a spot limit order
      payload:
        $ref: '#/components/schemas/OrderLimitPlaceRequest'
      examples:
        - name: orderLimitPlaceBuy
          summary: |
            Place a buy limit order with parameters:
            - params[0]: order object with market, side, amount, and price
          payload:
            id: 500002
            method: order_limit_place
            params:
              - market: ETH_USDT
                side: buy
                amount: "0.00108"
                price: "1859.75"
                stp: "no"

    orderLimitPlaceResponse:
      name: OrderLimitPlaceResponse
      title: Place Limit Order Response
      summary: Accepted order object (status OPEN)
      payload:
        $ref: '#/components/schemas/OrderLimitPlaceResponse'
      examples:
        - name: orderLimitPlaceAccepted
          summary: Order accepted and resting in the order book
          payload:
            id: 500002
            result:
              id: 2423735868673
              market: ETH_USDT
              type: 1
              side: 2
              post_only: false
              ioc: false
              ctime: 1786452689.828402
              mtime: 1786452689.828402
              price: "1859.75"
              amount: "0.00108"
              left: "0.00108"
              deal_stock: "0"
              deal_money: "0"
              deal_fee: "0"
              client_order_id: ""
              stp: "no"
              status: OPEN
            error: null

  schemas:
    OrderLimitPlaceRequest:
      type: object
      required:
        - id
        - method
        - params
      properties:
        id:
          type: integer
          description: Unique request identifier. The response echoes this value.
        method:
          type: string
          const: order_limit_place
          description: "Method name. Fixed value: `order_limit_place`."
        params:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/OrderLimitPlaceParams'
          description: Array containing exactly one order parameter object

    OrderLimitPlaceParams:
      type: object
      required:
        - market
        - side
        - amount
        - price
      properties:
        market:
          type: string
          description: "Spot market name. A futures market is rejected with error `1`."
          example: ETH_USDT
        side:
          type: string
          enum: ["buy", "sell"]
          description: "Order side. The response reports the side numerically: `1` for sell, `2` for buy."
        amount:
          type: string
          description: "Order size in stock, at the market stock precision. Must clear both `minAmount` and `minTotal`."
          example: "0.00108"
        price:
          type: string
          description: "Limit price in money, at the market money precision. Validated against the maker and taker price bands for the given side."
          example: "1859.75"
        client_order_id:
          type: string
          description: "Custom client order id, echoed on every response for the order. Must be unique among active orders — a collision returns error `43`."
        stp:
          type: string
          enum: ["no", "co", "cn", "cb"]
          description: "Self-trade prevention mode: `no`=No Prevention, `co`=Cancel Oldest, `cn`=Cancel Newest, `cb`=Cancel Both. Defaults to `no` when omitted."
        post_only:
          type: boolean
          description: "Reject the order instead of taking liquidity. Cannot be combined with `ioc`."
        ioc:
          type: boolean
          description: "Immediate-or-cancel — cancel the unmatched remainder instead of resting it. Cannot be combined with `post_only` or `rpi`."
        rpi:
          type: boolean
          description: "Retail Price Improvement order. Implies `post_only`; cannot be combined with `ioc`."

    OrderLimitPlaceResponse:
      type: object
      required:
        - id
        - result
        - error
      properties:
        id:
          type: integer
          description: Request identifier matching the request
        result:
          type: object
          description: "Accepted order. Returns the standard order object. A limit order reports `type` `1`."
        error:
          type: "null"
          description: Error object (null on success)

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-order-limit-place-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.