Unified Orderbook
Live unified orderbook for a market match group across all platforms. Aggregates bid/ask depth from Kalshi, Polymarket, and Opinion into a single combined view. Use the group_id from the matching-markets or events endpoints.
/v2/unified-orderbookQuery Parameters
Market match group ID (required). Get this from /v2/matching-markets, /v2/events, or /v2/search.
Response Schema
Event name for the matched group.
Candidate / group title.
Per-platform orderbook data.
Kalshi orderbook (if available).
Platform-native identifier.
Platform market ID.
Unix timestamp in milliseconds.
Bid levels [price, size], sorted descending.
Price in cents (0-10000).
Size (contracts) at this level.
Ask levels [price, size], sorted ascending.
Price in cents (0-10000).
Size (contracts) at this level.
Polymarket orderbook (if available).
Platform-native identifier.
Platform market ID.
Unix timestamp in milliseconds.
Bid levels [price, size], sorted descending.
Price in cents (0-10000).
Size (contracts) at this level.
Ask levels [price, size], sorted ascending.
Price in cents (0-10000).
Size (contracts) at this level.
Opinion orderbook (if available).
Platform-native identifier.
Platform market ID.
Unix timestamp in milliseconds.
Bid levels [price, size], sorted descending.
Price in cents (0-10000).
Size (contracts) at this level.
Ask levels [price, size], sorted ascending.
Price in cents (0-10000).
Size (contracts) at this level.
Unified orderbook aggregated across all platforms.
Aggregated bid levels across all platforms.
Price in cents (0-10000).
Size (contracts) at this level.
Aggregated ask levels across all platforms.
Price in cents (0-10000).
Size (contracts) at this level.
Error Responses
All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →
Always `false` on error responses.
Short, human-readable title (e.g. 'Invalid API Key.').
Human-readable explanation for the error. Safe to surface in UIs.
Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.
Link to this code's entry in the Error Reference.
Optional. Present only on validation failures with field-level detail.
Name of the offending parameter.
Field-level machine code.
Human-readable explanation.
Authentication
API Key
To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.
X-API-Key: pmx_test_5e8f...Rate Limits
API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.
Usage is returned on responses via headers such as:
X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.
Request
Live API Key
Parameters
Response
—Click EXECUTE to send a request →