Skip to main content
POST
Place an order directly

Authorizations

x-app-id
string
header
required

Your application ID. Required for all app-tier and user-tier routes.

Authorization
string
header
required

JWT access token returned by POST /auth/verify. Required for user-tier routes.

Body

application/json
venue
enum<string>
required

The venue to trade on. Singular by design — this endpoint never splits an order.

Available options:
kalshi,
polymarket,
limitless,
opinion,
predict,
probable,
myriad,
hyperliquid,
novig
venueMarketOutcomeId
string
required

The outcome to trade. May be the outcome on another venue: it is resolved through matched-outcome links to the equivalent outcome on venue. Passing the id that already lives on venue is the unambiguous form.

Minimum string length: 1
side
enum<string>
required

Trade direction. sell closes an existing position on venue.

Available options:
buy,
sell
externalId
string
required

Idempotency key. Your own id for this trade — required, and unique within your app: two different users of the same app cannot share one. A repeat is rejected with 409 rather than trading twice, so it is safe to retry a request that timed out using the same value.

Required string length: 1 - 36
maxSpend
number

Buy only. Maximum all-in USD spend, inclusive of app fee.

Required range: x > 0
sellShares
number

Sell only. Number of contracts to sell.

Required range: x > 0
slipCapBps
number

Slippage cap in basis points. Defaults to 500 (5%) when omitted. On sells set this explicitly: sellShares bounds the shares sold, not the proceeds.

Required range: x >= 0

Response

200

orderId
string
required

The single order this call created.

externalId
string
required

Echoed back so a webhook or socket event can be tied to this response.

venue
enum<string>
required

The venue the order was placed on.

Available options:
kalshi,
polymarket,
limitless,
opinion,
predict,
probable,
myriad,
hyperliquid,
novig
status
enum<string>
required

Always pending: the order is accepted and queued for execution, not yet filled. Poll GET /execution/orders or listen for order events for the terminal state.

Available options:
pending
quoteId
string
required

Server-minted quote backing this order. Useful for support, not required.

quotedPriceRaw
string | null
required

Quoted price, decimal string (e.g. "0.53"). null if the order row does not carry a quoted price — the order is still live; re-fetch it from GET /execution/orders rather than treating this as zero.

quotedCostRaw
string | null
required

Quoted cost, 6-decimal atomic USDC. null under the same conditions as quotedPriceRaw.

quotedSharesRaw
string | null
required

Quoted shares, 6-decimal atomic. null under the same conditions as quotedPriceRaw.