Create Limit Order
The endpoint creates a limit trading order. The order remains on the order book until filled, cancelled, or expired. Minimum and maximum values for amount and price are market-dependent — query GET /api/v4/public/markets for per-market constraints.
Order validation rules (per-market, from GET /api/v4/public/markets):
- amount must have at most stockPrec decimal places
- price must have at most moneyPrec decimal places
- amount must be ≥ minAmount
- amount × price must be ≥ minTotal
- amount × price must be ≤ maxTotal (when maxTotal is not "0")
<Warning>
Rate limit: 10000 requests/10 sec.
</Warning>
<Note>
- RPI orders do not appear in public order book feeds (`depth`, `bookTicker`). RPI orders are visible only in private active orders and in the exchange UI order book (web/mobile).
- RPI orders are post-only by design and cannot be used with the IOC flag. The API returns error code `40` when both `rpi=true` and `ioc=true` are used.
- `retail=true` marks the order as a retail-source taker eligible to match RPI-maker liquidity. The Retail flag must be enabled on the account; contact the account manager to enable it.
- `retail=true` and `rpi=true` cannot be combined. The API returns error code `41` when both flags are set.
- `retail=true` has no effect on a `postOnly=true` order. Post-only orders are makers and cannot be retail takers.
</Note>
<Accordion title="Error Codes">
- `30` - default validation error code
- `31` - market validation failed
- `32` - amount validation failed
- `33` - price validation failed
- `36` - clientOrderId validation failed
- `37` - `ioc=true` cannot be combined with `postOnly=true`
- `40` - `ioc=true` cannot be combined with `rpi=true`
- `41` - `retail=true` cannot be combined with `rpi=true`
- `42` - `retail=true` is not allowed for the account
- `43` - `rpi=true` is not allowed for the account
</Accordion>
<Accordion title="Errors">