Skip to main content

Place Multiple Orders

Type: TRADE

Weight: 5

POST /fapi/v1/batchOrders

Place up to 5 orders in one request.

Request

POST /fapi/v1/batchOrders?batchOrders=<url-encoded JSON array>&timestamp=<ms>&signature=<hex>

Query params

NameTypeRequiredNotes
batchOrdersstringyesJSON-encoded array of New Order body objects, max 5. Sent in the query string (Binance convention) — sign batchOrders=<json>&timestamp=.... Percent-encode the JSON; the verifier accepts both raw and URL-encoded signing (see Signing).

Response — 200

[
{ "orderId": "…", "symbol": "BTCUSDT", "status": "NEW", "clientOrderId": "a1", "price": "60000.00", "origQty": "0.010", "…": "…" },
{ "code": -2019, "msg": "Margin is insufficient." }
]

Orders are dispatched sequentially through the same path as POST /fapi/v1/order; one failure does not abort the batch. Each element is either a full order response or a {code, msg} object, in request order.

Sharding caveat: the batch is pinned to the receiving pod; symbols owned by another shard run as the degraded local fallback rather than being forwarded. Keep a batch to one symbol when sharding is enabled.

Errors

HTTPcodemsg
400-1102batchOrders missing, not valid JSON, empty, or more than 5 entries.

Per-order errors are the same as New Order. Authentication failures (INVALID_API_KEY, API_KEY_DISABLED, IP_NOT_ALLOWED, SIGNATURE_INVALID) apply to every signed endpoint and use Sparky's {"success":false,"error":{...}} envelope; see Error Codes.