List user orders (Polymarket-shape — recommended for SDK clients).
Recommended endpoint for SDK clients ported from Polymarket. Mirrors Polymarket’s exact GET /data/orders envelope: {limit, count, next_cursor, data} with PM-shape rows (id hex string, market, asset_id, original_size, size_matched, price, ORDER_STATUS_* enum, unix-int created_at).
Default scope matches PM: OPEN (resting) orders only. Pass the polysim-extension status param (ORDER_STATUS_MATCHED, ORDER_STATUS_CANCELED, ALL, …) to read history.
Filters: id, market, asset_id (token id), status, before / after (unix-seconds timestamps). Paginate by passing the response’s next_cursor back as the next_cursor query param (PM’s request param — what py-clob-client sends); cursor is accepted as an alias. End of list is signalled by next_cursor == "LTE=".
The polysim-native GET /v1/orders endpoint reads from the same underlying table but emits the legacy {orders, has_more, ...} envelope with snake_case row fields. Use that one for back-compat with pre-PM-parity polysim SDKs; use this one (/v1/data/orders) for new integrations and anything ported from Polymarket. PR #1033 — PM parity.
Authorizations
Issue from /v1/keys (or admin-issued for enterprise tier).
Headers
Your PolySimulator API key
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.
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.
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.
Query Parameters
PM's documented pagination REQUEST param — pass the next_cursor value from the previous response here (py-clob-client does this automatically). cursor is accepted as a polysim alias; when both are present cursor wins. The SDK's initial sentinel MA== (base64 of 0) means 'start from the beginning'.
Polysim extension (real PM has no status filter — its /data/orders returns open orders only, which is also our default). Values: ORDER_STATUS_LIVE (default — open/resting), ORDER_STATUS_MATCHED (filled), ORDER_STATUS_CANCELED (cancelled/expired/reset-archived), ORDER_STATUS_INVALID, or ALL for the full history. Friendly aliases accepted: open/live/PENDING → LIVE, matched/FILLED → MATCHED, canceled/CANCELLED/EXPIRED → CANCELED. Unrecognised values return 400.