Skip to main content
POST
/
v1
/
orders
/
batch
Batch Orders
curl --request POST \
  --url https://api.polysimulator.com/v1/orders/batch \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "orders": [
    {
      "market_id": "<string>",
      "outcome": "<string>",
      "quantity": "<string>",
      "amount": "<string>",
      "order_type": "market",
      "price": "<string>",
      "time_in_force": "GTC",
      "client_order_id": "<string>",
      "expiration": "<string>",
      "post_only": false,
      "wallet_id": 123
    }
  ]
}
'
{
  "results": [
    {
      "order_id": 123,
      "status": "<string>",
      "order_type": "<string>",
      "side": "<string>",
      "outcome": "<string>",
      "price": "<string>",
      "quantity": "<string>",
      "notional": "<string>",
      "fee": "<string>",
      "filled_at": "<string>",
      "cancelled_reason": "<string>",
      "price_source": "<string>",
      "slippage_bps": 123,
      "quote_age_ms": 123,
      "spread_bps": 123,
      "impact_bps": 123,
      "book_walk_levels": 123,
      "account_balance": "<string>",
      "position": {},
      "client_order_id": "<string>",
      "error": "<string>",
      "error_message": "<string>",
      "amount_interpreted_as": "<string>",
      "is_replay": true,
      "warnings": [
        "<string>"
      ]
    }
  ],
  "succeeded": 123,
  "failed": 123
}

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. 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.

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
orders
PlaceOrderRequest · object[]
required
Required array length: 1 - 100 elements

Response

Successful Response

results
OrderResponse · object[]
required
succeeded
integer
required
failed
integer
required