Place a market order
Handles the ingestion of a client-signed market order placement request.
Validates and rate-limits the PlaceMarketOrder request before submitting it to the exchange.
The exchange derives an effective limit price from the current mark price plus slippage and
submits an IOC limit order.
Endpoint
POST /api/v1/trading/order/place/market
Authentication
Requires a session-key signed request.
Returns
200 OKwith a Json-encoded acknowledgment on success.- Rejections surface as
success: falsein the response body, so callers should still read the body on a200 OK.
Body
Signed write request. The JSON body is a Base64SignedPayload; its base64 payload decodes to the binary layout [Header(8) || RequestId(16) || Body || Auth] the client signs — see spec/signing.md for the byte layout, signature types, and signing procedure. The decoded Body is:
PlaceMarketOrderwhenHeader.request_type=place_market_order(34).
JSON envelope for a signed request: the base64-encoded canonical payload plus the base64
signature and public_key of the signing credential. Session-key (Ed25519) endpoints accept
exactly these fields; master-key (Secp256k1 / Passkey) endpoints sign the same payload and may
carry additional signature material. Endpoints also accept the equivalent
application/octet-stream binary frame.
Base64-encoded bytes of the canonical request payload.
"AQABAAAAAAB4m2tQz9KvX1Yk2mN3oQ4rS5tU6vW7xZ8aB9cD0eF1gH2iJ3kL5mN7oP9qR1sT3uV5wX7yZ9a="
Base64-encoded public key of the signing credential.
"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="
Base64-encoded signature over the payload.
"AAcOFRwjKjE4P0ZNVFtiaXB3foWMk5qhqK+2vcTL0tng5+71/AMKERgfJi00O0JJUFdeZWxzeoGIj5adpKuyuQ=="
Response
Market order accepted
Synchronous acknowledgment returned when the exchange accepts a signed request.
Exchange processing timestamp, in nanoseconds since the Unix epoch.
1719158400000000000
Outcome status serialized in snake_case (e.g. request_completed, order_rejected_invalid).
request_completed, order_rejected_invalid, order_rejected_expired, duplicate_request_id, order_rejected_internal, order_rejected_invalid_market, rejected_unauthorized, rejected_invalid_portfolio_id, rejected_invalid_price, rejected_invalid_size, rejected_market_not_found, rejected_market_halted, rejected_market_reduce_only, rejected_market_post_only, rejected_market_cancel_only, market_closed, rejected_rate_limited, rejected_account_suspended, rejected_max_open_orders_exceeded, rejected_post_only_would_cross_book, rejected_size_zero, insufficient_margin_to_place, insufficient_margin_to_trade, rejected_size_not_equal, rejected_order_not_found, invalid_reduce_only_order, rejected_f_o_k_not_fully_filled_insufficient_margin, rejected_f_o_k_not_fully_filled_low_liquidity, rejected_insufficient_free_equity, self_trade_prevention, rejected_self_transfer, rejected_slippage_exceeds_maximum, rejected_invalid_uuid, rejected_mark_price_zero, rejected_invalid_order_flags, rejected_max_conditional_orders_exceeded, rejected_trigger_already_satisfied, conditional_order_on_books, conditional_order_not_found, rejected_conditional_order_expired, rejected_invalid_trigger, master_key_added, master_key_removed, master_key_rejected_invalid, master_key_rejected_unauthorized, master_key_rejected_self_removal, master_key_rejected_last_key, session_created, session_revoked, session_rejected, session_rejected_max_sessions, account_created_with_session, creation_rejected, account_created_session_failed, request_dropped, retry_required "request_completed"