Submit an order creation request.
The order is queued for processing and will be matched against the orderbook.
Both limit and market orders are rejected with self_cross when they cross your
own opposite-side resting orders for the same symbol and there are no matchable
other-user resting orders. For limits, equal prices count as crossing; markets
cross at any price. Even a partial potential fill against another user passes this
self-cross check. Pending creation requests are not considered. Cancel-pending
other-user orders do not count as liquidity; your own resting orders still count.
Rejections are audited as order.request_denied. This is a database snapshot:
the engine rechecks its live book and may cancel your existing resting orders
reached by its quantity-aware matching walk (self_cross_cancelled). Orders
beyond that walk stay untouched. The API itself does not cancel orders or
guarantee fills; other engine checks, including post-only enforcement, still apply.
Rate Limit: This endpoint is subject to two independent rate limits. Either failure returns HTTP 429:
- The General per-second rate limit (default 10/sec) — caps burst rate
- A per-minute order creation limit (default 30/minute) — caps sustained throughput
Both can be customized per API key. See the Rate Limiting section in the API description for details.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
429Rate limit exceeded. Either the general per-second limit or the
per-minute order creation limit was tripped.

