Get a single order by ID (polysim-shape row).
Returns one order row in the same Polysimulator shape as GET /v1/orders. The order_id path param is the integer ID returned by POST /v1/orders / POST /v1/clob/order.
ID space caveat: PendingOrder.id (limit orders) and Order.id (pure-market fills) are independent auto-increment sequences — the same integer can refer to different rows in each table. The default lookup precedence is PendingOrder first (matches DELETE semantics and the common limit-order polling case), then Order on miss. Pass ?source=filled to force the Order table for market-order pollers; ?source=pending to force PendingOrder. The response carries the matched table in order_type (limit/market) so callers can verify.
For unambiguous lookups use GET /v1/orders?status=PENDING&market_id=... and filter client-side by client_order_id.
Audit PR #1303 P1: this endpoint previously 405’d.
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.
Path Parameters
Query Parameters
Disambiguate the table lookup: pending forces the PendingOrder table (limit orders), filled forces the Order table (pure-market fills). Default None tries PendingOrder first, falls back to Order on miss (same precedence as list_orders). Audit PR #1303 Copilot review.
Optional wallet scope — when supplied, only returns the row if it belongs to this wallet. Mirrors the list_orders wallet_id pattern so per-wallet pollers stay consistent. Audit PR #1303 Copilot review.
Response
Successful Response
Compact pending order representation for list endpoint.