trade-scope key. Keys you create from Settings have it.
Prices are ticks
A binary contract settles at 100¢ if the outcome happens and 0¢ if it does not. Prices are integers from 1 to 99, in cents, representing the market’s implied probability. Buying YES at47 costs 47¢ per contract and pays 100¢ if YES wins.
Quantities are whole contracts.
Place a limit order
201 the
order has really rested or filled:
status is one of resting, partially_filled, executed, or canceled
(with a reason).
Balance and fee changes are deliberately absent from this response. Placement
runs on a lane that excludes ledger events. Read
GET /v1/portfolio/balance afterwards, or subscribe to the
private WebSocket channel.client_order_id is your idempotency key
You choose it, and it must be unique per order. It is what makes retries safe.
Order types
For market buys,
max_cost (in cents) is required — it bounds what you
can spend, since a market order has no price limit. Market orders also accept
worst_tick to bound the price you will accept; it defaults to 99 for buys and
1 for sells.
Time in force for limit orders: gtc (rest until cancelled), gtt (needs
expiry_ts in nanoseconds), ioc (fill what you can, cancel the rest), fok
(all or nothing).
Useful flags, all default false: post_only (never take), reduce_only (only
shrink a position), cancel_on_pause.
Cancel
cancel_on_pause is worth setting if you do not want orders
surviving a pause.
Unknown fields are rejected
The request schema is closed: an unrecognised field returns400 unknown_field
rather than being ignored. A typo’d post_onlyy fails loudly instead of
silently not applying.