Skip to main content
POST
cURL
Use this when you already hold several of Polymarket’s own market ids and want the flow on each of them. For a single market, or when the id you hold is a mkt_ id, use Market flow.

Parameters

An empty array, more than 25 ids, or a timeframe outside that list fails the whole request with 400 before any market is read. A body over 1048576 bytes answers 413 with error.reason payload_too_large. A body sent without Content-Type: application/json answers 415 with error.reason unsupported_media_type.

Key response fields

Item budget

This route spends from a second budget: 2,500 batch item units a minute per account, alongside the 100 requests a minute every authenticated route shares. 100 requests of 25 ids each comes to exactly 2,500, so a full batch is never the more expensive choice. Going over answers 429 with a Retry-After, before any market is read.

Example

What it does not return

  • A mkt_ id resolved to a market. Send market.condition_id from Search markets or Explore markets instead.
  • An ETag. This route has no conditional read.
  • Partial work after a bad request body. A 400 means no market was read at all.
  • A different shape per item. An ok item holds exactly what the single route returns.

Authorizations

Authorization
string
header
required

Legacy default or named integration API key, or OAuth 2.1 access token, in the Authorization header as Bearer oxi_sk_live_... or Bearer oxi_at_.... Default keys retain full access; integration keys are limited to their approved read, webhooks, export and usage scopes and expire within 90 days. All credentials share the owner's account limits. Data calls require an active Pro subscription and return live data. A 401 carries WWW-Authenticate: Bearer resource_metadata="https://api.0xinsider.com/.well-known/oauth-protected-resource" (RFC 6750 section 3, RFC 9728).

Headers

X-Query-Validation
enum<string>

Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.

Available options:
strict

Body

application/json

Batch market-flow request. Supply 1-25 condition IDs and an optional shared timeframe.

condition_ids
string[]
required

Market condition IDs to resolve in input order.

Required array length: 1 - 25 elements
timeframe
enum<string>
default:24h

Lookback window used for flow and trade-count context.

Available options:
1h,
4h,
24h,
7d

Response

Ordered batch market-flow results

object
string
required
Allowed value: "market_flow_batch"
data
object[]
required
meta
object
required