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.
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: 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
Response
Successful Response
Compact pending order representation for list endpoint.