New Order
Type: TRADE · Weight: 1 · counted against the order buckets
Status: Implemented.
POST /api/v3/order
Place a LIMIT (good-till-cancelled) or MARKET (immediate-or-cancel) spot order. The response is an acknowledgement, not a fill report: executedQty is always 0 even when the order fills immediately. Read fills from myTrades and final state from allOrders.
Request — all parameters in the query string, signature last, empty body (see Request conventions)
POST /api/v3/order?symbol=CBTC-USDCB&side=BUY&type=LIMIT&quantity=0.001&price=50000×tamp=1756600000000&signature=...
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
symbol | string | yes | e.g. CBTC-USDCB. |
side | string | yes | BUY or SELL. |
type | string | yes | LIMIT or MARKET. |
quantity | string | yes | Base-asset quantity, a positive decimal. stepSize / minQty are not validated at order entry; round client-side. |
price | string | LIMIT only | Limit price, a positive decimal (tickSize is not validated at order entry). Must be absent for MARKET (-1100 otherwise). |
newClientOrderId | string | no | Idempotency key; a random UUID is generated if omitted. Echoed as clientOrderId. A repeat with the same value within 15 minutes returns the original orderId instead of placing a new order. |
timestamp, recvWindow, signature | See Authentication. |
timeInForce, quoteOrderQty, icebergQty, stopPrice, newOrderRespType, selfTradePreventionMode are ignored.
Execution semantics
LIMITrests as GTC. Spot is always 1x: a BUY locksprice × quantityof the quote asset, a SELL locksquantityof the base asset, at order entry.MARKETis IOC with a 5 % protective band: a BUY may take asks up tobestAsk × 1.05, a SELL may hit bids down tobestBid × 0.95; the unfilled remainder is cancelled. The band price is also the amount locked for a BUY. An empty opposite side is rejected with-2010 Market order rejected: no counterparty liquidity.- Self-trade prevention is always on: the matcher skips your own resting orders and continues to the next counterparty; the resting order is neither filled nor cancelled.
- Wallet-funded accounts (see On-chain Settlement):
price × quantity(for MARKET, band price × quantity) must be at least the symbol'sminNotional(-1013); the account must have completed MemberAuth (-2012) and must not be frozen (-2010). These gates run before anything else is validated.
Response — 200 (values illustrative)
{
"symbol": "CBTC-USDCB",
"orderId": "019910a4-9f21-7b34-8c56-1d2e3f4a5b6c",
"orderListId": -1,
"clientOrderId": "mm-quote-1756600000-17",
"transactTime": 1756600000123,
"price": "50000",
"origQty": "0.001",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
| Field | Notes |
|---|---|
orderId | UUID string. Use it for GET / DELETE /api/v3/order. |
orderListId | Always -1 (no OCO). |
clientOrderId | Your newClientOrderId, or the generated UUID. Not stored for later lookup — see Query Order. |
price | Echo of price for LIMIT; "0" for MARKET in this acknowledgement (GET /api/v3/order and allOrders report the band price as price). |
origQty | Echo of quantity, unnormalized. |
executedQty, cummulativeQuoteQty | Always "0.00000000" in this acknowledgement. |
status | Always "NEW". |
timeInForce | "GTC" for LIMIT, "IOC" for MARKET. |
Errors
| HTTP | code | msg / cause |
|---|---|---|
400 | -1100 | Bad side or type; price sent with MARKET; the trading service rejected a parameter (unknown symbol, non-numeric or non-positive price / quantity). |
400 | -1102 | symbol, quantity, or (LIMIT) price missing or empty. |
400 | -1013 | Filter failure: NOTIONAL — below minNotional (wallet-funded accounts). |
422 | -2010 | Insufficient balance to lock (same msg when the market is inactive or order entry is paused by the risk gate); or MARKET with no liquidity; or account frozen. Distinguish by msg. |
422 | -2012 | Wallet enrollment (MemberAuth) required. |
429 | -1003 | Weight or order-count bucket exhausted. |
500 | -1000 | Trading service unavailable. |
Authentication errors (-1021, -1022, -2014, -2015) as in Error codes.
Differences from Binance
- Only
LIMIT/GTC andMARKET/IOC. NoLIMIT_MAKER, stop orders,quoteOrderQty, ornewOrderRespType=FULL(the response never carriesfills). orderIdis a UUID string;clientOrderIdis not queryable.- Parameters must be in the query string.