Skip to main content
POST
Create order
Submit a new order.

Body

application/json

Input for create_order.

asset_id
string
required

The orderable asset — Kalshi market ticker or Polymarket CTF token id (e.g. "KXBTCD-25APR1517").

outcome
required

Outcome to trade. Options: yes, no, or label: "<name>" (Polymarket categorical markets only).

Available options:
yes,
no
price
number<double>
required

Limit price as YES probability in (0, 1) (e.g. 0.62).

side
enum<string>
required

Order direction. Options: buy, sell.

Available options:
buy,
sell
size
number<double>
required

Order size in contracts (e.g. 100.0).

order_type
enum<string>
default:gtc

Time-in-force; defaults to gtc (options: gtc, ioc, fok).

Available options:
gtc,
ioc,
fok

Response

Success.

An order on the unified surface.

created_at
string<date-time>
required

Order creation time (UTC) (e.g. "2026-04-25T12:00:00Z").

filled
number<double>
required

Cumulative filled size in contracts (e.g. 25.0).

id
string
required

Globally-unique exchange order id (e.g. "a1b2c3d4-...").

market_ticker
string
required

Unified market ticker the order belongs to (e.g. "KXBTCD-25APR1517").

outcome
string
required

Outcome label as published by the exchange (e.g. "Yes", "No", or a categorical label).

price
number<double>
required

Limit price as YES probability in (0, 1) (e.g. 0.62).

side
enum<string>
required

Order direction. Options: buy, sell.

Available options:
buy,
sell
size
number<double>
required

Order size in contracts (e.g. 100.0).

status
enum<string>
required

Order lifecycle state. Options: pending, open, filled, partially_filled, cancelled, rejected.

Available options:
pending,
open,
filled,
partially_filled,
cancelled,
rejected
fee
number<double> | null

Volume-weighted per-contract fee in quote dollars; null on Polymarket and on unfilled orders.

updated_at
string<date-time> | null

Last update time (UTC); null if untouched since creation.