Skip to main content
POST
Submit your externally-signed order signature (step 2 of 2)

Authorizations

X-Client-Id
string
header
required

Credential client id (kairos_ck_...). Must be sent together with X-Api-Key and X-Api-Secret.

X-Api-Key
string
header
required

64-char hex API key.

X-Api-Secret
string
header
required

64-char hex API secret.

Body

application/json

Body for POST /v2/orders/submit.

payload_id
string<uuid>
required

The payload_id returned by POST /v2/orders/intent. Single-use — claimed atomically on the first /submit call.

signature_hex
string
required

0x-prefixed 65-byte secp256k1 signature (r || s || v) over eip712_digest_hex.

Example:

"0x1234...1b"

Response

Venue's synchronous placement result.

Response for POST /v2/orders/submit (and the equivalent one-RTT WSS submit_signed_order command).

order_id
string<uuid>
required

Internal Kairos order id — usable for GET /orders/{order_id} and the cancel endpoints.

status
string
required

The venue's immediate result string, passed through verbatim — Kairos does not normalize or validate it. Polymarket's observed values are matched, live and delayed; unmatched appears on the fill-polling path. Treat this as an open string, not a closed enum.

Example:

"matched"

exchange_order_id
string | null

Venue-assigned order handle. An EMPTY venue id is treated as a failed submission and returned as 400 venue returned an empty order id; order not tracked, so on a 200 this is in practice always populated; it is null only on the idempotent-replay response path.