Skip to main content
GET
/
search
/
markets
Search markets
curl --request GET \
  --url https://api.oddpool.com/search/markets

Documentation Index

Fetch the complete documentation index at: https://docs.oddpool.com/llms.txt

Use this file to discover all available pages before exploring further.

You must pass either q or series_id (or both). Requests with neither return 400. Use q for free-text search and series_id to scope results to one series. If you don’t have a series_id yet, find one via Search series. To list every outcome under a single known event, use Event markets instead.

Parameters

q
string
Full-text search on question. Required when series_id is not provided.
series_id
string
Filter to one series. Examples: KXBTC15M, btc-up-or-down-15m, KXFEDDECISION. Required when q is not provided.
exchange
string
kalshi or polymarket.
status
string
default:"active"
active (still trading) or closed (settled with a result).
category
string
Exact category match.
min_volume
integer
Minimum volume.
min_liquidity
integer
Minimum liquidity.
settled_after
string
ISO timestamp. Returns markets with settled_at >= settled_after. Pair with status=closed for backtest workflows.
settled_before
string
ISO timestamp. Returns markets with settled_at <= settled_before.
discovered_after
string
ISO timestamp filter on discovered_at. For polling new listings.
sort_by
string
default:"relevance"
relevance, newest, volume, or liquidity. relevance requires q; without q the default is newest.
limit
integer
default:"20"
1-100.
offset
integer
default:"0"
Pagination offset. The response is a bare JSON array — increment offset by limit until you receive an empty array.

Examples

Settled-window discovery for a backtest

List the closed markets that resolved in a window for a known series. The returned market_id values feed directly into the Kalshi historical endpoints.
curl -H "X-API-Key: your_api_key" \
  "https://api.oddpool.com/search/markets?series_id=KXBTC15M&status=closed&settled_after=2026-04-25T00:00:00Z&limit=100"
Filter markets across series by keyword. Sort by volume to surface the most active.
curl -H "X-API-Key: your_api_key" \
  "https://api.oddpool.com/search/markets?q=fed+rate&exchange=kalshi&sort_by=volume"

Response

[
  {
    "market_id": "KXBTC15M-26MAY020000-00",
    "exchange": "kalshi",
    "series_id": "KXBTC15M",
    "question": "BTC price up in next 15 mins?",
    "category": null,
    "status": "closed",
    "volume": 375089,
    "liquidity": 119393,
    "last_yes_price": "0.9990",
    "last_no_price": "0.0000",
    "event_id": "KXBTC15M-26MAY020000",
    "event_title": "BTC 15 min · $78,396.72 target",
    "slug": null,
    "discovered_at": "2026-05-01T03:50:00Z",
    "settled_at": "2026-05-02T04:00:26Z"
  }
]

Errors

CodeReason
400Neither q nor series_id provided.