Skip to main content
POST
Create orders
Making and taking are the same request with a different timeInForce — there is no separate fill endpoint. EIP-712 order signing covers the eight signed fields and the domain.
A deployed proxy wallet is required before any order is accepted
This endpoint is asynchronous by default. A success response means the order was submitted to the matching engine, not that it rested or matched. Each order comes back as PENDING — the terminal outcome (rested as ACTIVE, matched, or gone) arrives later on account:orders_v3_#{address}. Subscribe to that channel before you submit and treat it as the source of truth.
Optional synchronous mode. Set waitForOutcome: true to have the call wait up to maxWaitTime and return each accepted order’s terminal outcome inline.

Authorizations

x-sx-api-key
string
header
required

API key, sent as the x-sx-api-key header. Generate one from the API keys section of your account page on sx.bet.

Body

application/json
orders
object[]
required

1 to limits.maxCreateOrders signed orders — 10 today. An empty array is a 400. All orders in a batch must share one maker.

waitForOutcome
boolean
default:false

When true, wait for each order's matching outcome and return it inline as outcome on every accepted (PENDING) result. Defaults to false. See Async operations.

maxWaitTime
integer

Max time in ms to wait for outcomes when waitForOutcome is true. Omitted uses the server default (10s today); capped server-side (15s today). Ignored when waitForOutcome is not true.

Response

status
string

success or failure if the request succeeded or not

data
object
Last modified on August 13, 2026