GET /api/v1/markets
Returns markets from the gold layer with filtering and pagination. Use this endpoint to search across exchanges, fetch exact markets, or pull every market in one event. Start here when you do not yet know the IDs you need.
Find the IDs You Need
Use a discovery query first:parsec_id— Parsec’s standard market IDexchange— source exchangeexchange_market_id— native market ID on that exchangeparsec_group_id/exchange_group_id— event identifiers
parsec_id or exchange + exchange_market_id on
/orderbook, /price,
/trades, and /execution-price.
Scopes
/markets supports four scopes:
| Scope | Use it for | Required selector |
|---|---|---|
list | discovery, search, filters, pagination | exchanges optional |
market | one exact market lookup | parsec_id or exchange + exchange_market_id |
market_batch | many exact lookups in one request | parsec_ids or external_market_keys |
event | all markets for one event | event_id or exchange + exchange_group_id |
scope and pass parsec_ids, the server automatically treats the
request as scope=market_batch.
Most Common Request Shapes
| Task | Scope | What to send |
|---|---|---|
| Search and filter markets | list | search, exchanges, status, limit |
| Fetch one exact market | market | parsec_id or exchange + exchange_market_id |
| Fetch many exact markets | market_batch | parsec_ids or external_market_keys |
| Fetch all markets in one event | event | event_id or exchange + exchange_group_id |
Query Reference
Discovery: scope=list (default)
Common
Query scope:
list, market, market_batch, or event.When true, each market includes a
matched_markets array with cross-exchange same-market relations.When true, each market includes a
related_markets array with co-dependent market relations.scope=list
Comma-separated exchange IDs:
polymarket, kalshi, limitless, opinion, predictfun. Omit to search across all exchanges.Filter by market status:
active, closed, resolved, or archived. scope=list defaults to active when omitted.Case-insensitive keyword search across question and description fields.
Minimum volume filter (USDC).
Minimum liquidity filter (USDC).
Results per page (max 100).
Cursor from the previous response.
scope=market
Single canonical parsec ID (format:
{exchange}:{native_id}). Mutually exclusive with exchange + exchange_market_id.Exchange identifier for external-ID lookup. Must be paired with
exchange_market_id.Exchange-native market ID. Must be paired with
exchange.scope=market_batch
Comma-separated parsec IDs (format:
{exchange}:{native_id}). Max 100. Mutually exclusive with external_market_keys. If scope is omitted, the server auto-infers market_batch.Comma-separated external keys (format:
{exchange}:{exchange_market_id}). Max 100. Mutually exclusive with parsec_ids.scope=event
Stored Parsec event-group ID (exact match). The
ev:{event_id} alias form is
also accepted. Mutually exclusive with exchange + exchange_group_id.Exchange identifier. Must be paired with
exchange_group_id.Exchange-native event/group ID. Must be paired with
exchange.Cross-Exchange Relation Expansions
Use relation expansions when you want cross-exchange links returned alongside each market row:include_matches=truereturnsmatched_markets, which represent publishedsame_marketlinksinclude_related=truereturnsrelated_markets, which represent publishedco_dependentlinks- you can request both in the same call