Skip to main content
Place orders, cancel them, and read your order history. Three order types are supported — LIMIT, MARKET, and STOP_LIMIT. Order placement is idempotent — safe to retry — and every order is scoped to the authenticated client.

Placing an order

Fields

All decimal fields are positive decimal strings (e.g. "0.50", "3000.00") — no sign, no scientific notation.

Fields by order type

Examples

Buys/sells a fixed base quantity at a set price or better.
base_quantity is a base-asset amount, not a cash amount. For a BUY of BTC-USD, it’s in BTC, and the order costs base_quantity × price in the quote currency (plus fees). To spend a cash amount instead, use a MARKET BUY with quote_value (e.g. "100.00" USD) — don’t put a dollar figure in base_quantity.

Example request

Build the signed headers as shown in Authentication, then send the body:

Idempotency

client_order_id is your idempotency key. If you submit the same client_order_id again, the API returns the original order instead of creating a duplicate. Generate a fresh UUID per intended order, and reuse it verbatim when retrying after a network error.

Result types

The response wraps an outcome — always inspect type:
A 2xx HTTP status means the request was understood — it does not by itself mean the order was placed. Check type.

Cancelling

Cancel is the only mutating action on an existing order — all other fields are exchange-owned and read-only. Cancelling an already-finished order is a no-op.

Reading orders

/order/search supports standard list query params (filter, sort, limit, page, …) in addition to the typed filters. All results are scoped to your client automatically — you can never read another client’s orders. See the API Reference for exact request/response schemas, and Errors & Rate Limits for failure handling.