Place a limit order
place_limit_orderPlace a limit order. Default timeInForce=GTT (long-term, durable, broadcast-commit so errors return synchronously). Use SHORT_TERM only for latency-sensitive orders (expire within ~20 blocks, broadcast async). NOTE: stateful (GTT) orders are rate-limited to 2/block and 20 per 100 blocks — pace placements. Returns confirmation with the REAL outcome verified via the indexer (filled / partially_filled / resting / unfilled / pending) — broadcast code: 0 only means the tx was accepted, NOT that it filled. Report from confirmation.outcome; if it is pending, the indexer is lagging — re-check shortly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | Size in base units | |
| price | Yes | ||
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | Verify the real outcome via the indexer after broadcast (default true). | |
| clientId | No | ||
| postOnly | No | Reject if it would cross (maker-only). Defaults to server config. | |
| reduceOnly | No | ||
| timeInForce | No | GTT | |
| goodTilBlockOffset | No | SHORT_TERM blocks ahead (default 10) | |
| goodTilTimeSeconds | No | GTT lifetime (default 3600) |