GET /api/v1/markets
Returns a flat array of UnifiedMarket objects from the specified exchanges with filtering and pagination.
Modes
The endpoint operates in two modes:
- Exchanges mode — pass
exchanges to browse markets with optional filters.
- Parsec IDs mode — pass
parsec_ids for direct lookup. No other filters allowed.
Parameters
Comma-separated exchange IDs: polymarket, kalshi, limitless, opinion, predictfun. Required unless parsec_ids is provided.
Comma-separated parsec IDs for direct lookup (format: {exchange}:{market_id}). When provided, no other filters are allowed.
Filter by market status: active, closed, or resolved.
Case-insensitive keyword search across title, description, and question.
Minimum liquidity filter.
Pagination cursor from a previous response.
Response
Whether the request succeeded.
Flat array of markets from all queried exchanges.Show UnifiedMarket properties
Primary key: {exchange}:{native_id}.
Group/event ID for related markets.
Native exchange market ID.
Market question (may differ from title).
active, closed, or resolved.
Market type (e.g., binary, categorical).
Condition ID for CTF markets.
Outcome labels (e.g., ["Yes", "No"]).
Outcome-to-token mapping for orderbook subscriptions.
Total markets matching filters.
Whether more results are available.
Cursor for the next page.
Exchanges that were queried.
Exchanges that returned data.
Map of exchange ID to error message (omitted when empty).
# Browse active Polymarket markets
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.parsecapi.com/api/v1/markets?exchanges=polymarket&status=active&limit=10"
# Search across multiple exchanges
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.parsecapi.com/api/v1/markets?exchanges=polymarket,kalshi&search=bitcoin&min_volume=1000"
# Direct lookup by parsec IDs
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.parsecapi.com/api/v1/markets?parsec_ids=polymarket:0x1234,kalshi:KXBTC-25DEC"
{
"success": true,
"data": {
"markets": [
{
"parsec_id": "polymarket:0x1234abcd",
"exchange": "polymarket",
"group_id": "group_123",
"id": "0x1234abcd",
"slug": "will-btc-reach-100k",
"title": "Will BTC reach $100k?",
"question": "Will BTC reach $100k by end of 2025?",
"description": "Resolves Yes if Bitcoin reaches $100,000...",
"status": "active",
"market_type": "binary",
"token_id_yes": "token_yes_123",
"token_id_no": "token_no_456",
"condition_id": "0xcond123",
"volume": 500000,
"liquidity": 75000,
"close_time": "2025-12-31T23:59:59Z",
"open_time": "2025-01-01T00:00:00Z",
"outcomes": ["Yes", "No"],
"outcome_tokens": [
{ "outcome": "Yes", "token_id": "token_yes_123" },
{ "outcome": "No", "token_id": "token_no_456" }
]
}
],
"pagination": {
"count": 1,
"total": 150,
"has_more": true,
"next_cursor": "1"
},
"meta": {
"exchanges_queried": ["polymarket"],
"exchanges_succeeded": ["polymarket"]
}
}
}
- Make an initial request without a cursor
- Check
pagination.has_more — if true, pass pagination.next_cursor as cursor in the next request
- Repeat until
has_more is false