Skip to main content
POST
/
v1
/
clob
/
order
Clob Order
curl --request POST \
  --url https://api.polysimulator.com/v1/clob/order \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "token_id": "<string>",
  "price": "<string>",
  "quantity": "<string>",
  "order_type": "GTC",
  "fee_rate_bps": 1,
  "nonce": "<string>",
  "taker": "<string>",
  "client_order_id": "<string>",
  "expiration": "<string>",
  "post_only": false
}
'
{
  "orderID": "<string>",
  "status": "<string>",
  "price": "<string>",
  "size": "<string>",
  "side": "<string>",
  "success": true,
  "transactID": "<string>",
  "errorMsg": "<string>",
  "takingAmount": "<string>",
  "makingAmount": "<string>"
}

Authorizations

X-API-Key
string
header
required

Issue from /v1/keys (or admin-issued for enterprise tier).

Headers

X-API-Key
string | null

Your PolySimulator API key

POLY_API_KEY
string | null

Polymarket-CLOB-compat alias for X-API-Key (underscore form). SDK clients ported from Polymarket can authenticate without changing header names. X-API-Key takes precedence when both are provided.

Poly-API-Key
string | null

PM-CLOB-compat dashed-form alias for X-API-Key. Same value semantics as POLY_API_KEY but with HTTP-conventional dash separators. Audit P1 (staging audit 2026-05-16 0817 PR #1296): the per-tier middleware accepts both spellings but the auth dependency originally only matched the underscore form — now both work end-to-end.

authorization
string | null

PM-CLOB-compat: Authorization: Bearer ps_live_... (or ps_test_...) is accepted as an alias for X-API-Key so py-clob-client and other ported SDKs authenticate without header name changes. Bearer JWTs are NOT accepted here — use the dashboard-auth endpoints for those.

Body

application/json

CLOB-compatible order request using token_id instead of condition_id.

Mirrors the real Polymarket CLOB API POST /order schema so clients can switch to live trading with a single URL change.

token_id
string
required

CLOB token ID

side
enum<string>
required
Available options:
BUY,
SELL
price
string
required

Limit price as decimal string (0.01-1.00)

quantity
string
required

Number of shares as decimal string

order_type
enum<string>
default:GTC
Available options:
GTC,
FOK,
IOC,
GTD
fee_rate_bps
integer | null

Fee rate in basis points (ignored in virtual mode)

Required range: x >= 0
nonce
string | null

Optional nonce (ignored in virtual mode)

taker
string | null

Optional taker address (ignored in virtual mode)

client_order_id
string | null
Maximum string length: 256
expiration
string | null

Unix-seconds expiration for order_type=GTD (PM convention). Honored while ORDER_SEMANTICS_PM_V2_ENABLED is rolling out; otherwise advisory (GTD routes through GTC).

post_only
boolean | null
default:false

PM's postOnly: reject (don't execute) when marketable at placement; GTC/GTD only. Rolling out behind ORDER_SEMANTICS_PM_V2_ENABLED; advisory until then.

Response

Successful Response

Response matching Polymarket CLOB order response shape.

orderID
string
required
status
string
required
price
string
required
size
string
required
side
string
required
success
boolean
default:true
transactID
string | null
errorMsg
string | null
takingAmount
string | null
makingAmount
string | null