Batch Orders
Place multiple orders in one request.
Each order is processed independently — individual failures don’t block the rest. The batch size is limited by your API tier.
HFT optimisation: CLOB midpoint prices are pre-fetched in parallel for all unique markets in the batch before orders are processed. This collapses N sequential HTTP round-trips into one parallel burst, warming the Redis midpoint cache so each order hits the sub-ms HFT fast-path during execution.
D1 — wrap the whole batch in the per-user advisory lock so a
concurrent batch + cancel from the same user serialize at the
application layer. The batch internally calls _execute_market_order
/ _create_limit_order directly (NOT _place_order_single) so
there is no re-entrant lock acquisition.
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.
Body
1 - 100 elements