Skip to main content
POST
Clob Order

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. Both spellings are accepted 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 a bot written for Polymarket's order fields can be tested here. Orders are only simulated; PolySimulator never forwards them to Polymarket.

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.

magic
integer | null

Bot / strategy identifier (MetaTrader 5 style magic number), 0..9223372036854775807. Not unique: every order a bot places can share it, so the bot can later filter GET /v1/orders, export trades and cancel-all with ?magic= without touching other bots on the same account. Omitted: the API key's default_magic applies, if configured.

Required range: 0 <= x <= 9223372036854776000
magic_label
string | null

Optional human-readable bot name shown next to the magic number (max 32 printable characters, trimmed; blank means none), e.g. 'arb-v1'. Omitted: the API key's default_magic_label applies, if configured.

Maximum string length: 32

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