↑ ↓ move · Enter open · Esc close

REST API / Discover / Markets

Markets

Browse and search all markets across platforms. Paginated by internal market id (stable order). Each market includes its latest price data. Pagination cursors are tied to the exact filter set: reuse next_cursor only with the same platform, status, category, and q parameters.

GET/v2/markets

Parameters

platformstring

Filter by platform: polymarket, polymarket_us, kalshi, predictit, prophetx, opinion, predictfun, novig (lowercase).

statusstring

Market status: active, closed, or all. Default: active.

categorystring

Category filter (e.g. 'sports', 'politics', 'economics').

qstring

Keyword search - matches the market title, the event/game phrasing (series_title, so a generic outcome title like "Bobby Witt Jr.: 1+" is findable by "home runs"), and the market_id.

limitinteger

Results per page, from 1 to 2000. Default: 50. Invalid values return 400.

cursorstring

Opaque cursor from a previous response. Must match the same filters (platform, status, category, q) as that response; otherwise the API returns 400.

includestring

Comma-separated optional sections to embed per market. Supported: rules (adds each market's resolution rules - primary, secondary, sources).

Response

marketsobject[]

List of markets matching the filters.

Show 12 fields
idinteger

Internal market ID.

market_idstring

Platform-native market identifier.

platformstring

Source platform (polymarket, kalshi, etc.).

titlestring

Market title - the outcome/contract label (e.g. a candidate name, or "Total over 9.5"), not the full question. Use event_title for that.

event_titlestring

Full event-level question this market belongs to (e.g. "2028 U.S. Presidential Election winner?"). Null when unavailable.

subtitlestring

Outcome qualifier (e.g. party or bracket). Null when unavailable.

categorystring

Market category (sports, politics, economics, etc.).

statusstring

Market status (active, closed).

expiration_datestring

ISO 8601 expiration timestamp.

source_urlstring

Direct link to the market on the platform.

priceobject

Latest price snapshot for this market.

Show 7 fields
yes_bidnumber

Best bid for YES.

yes_asknumber

Best ask for YES.

no_bidnumber

Best bid for NO.

no_asknumber

Best ask for NO.

last_pricenumber

Last traded price.

volumeinteger

Trading volume.

liquiditynumber

Current liquidity (USD).

rulesobject | null

Resolution rules for the market. Present only when the request passes include=rules; null when no usable rules exist.

Show 3 fields
primarystring

Primary resolution criterion.

secondarystring

Additional conditions / edge cases, when present.

sourcesobject[]

Resolution sources, each with name, url, and type.

next_cursorstring

Opaque cursor for the next page (null if none). Must be reused only with the same platform, status, category, and search query as the request that produced it; changing filters requires omitting the cursor and starting from the first page.

total_countinteger | null

Total number of markets matching the filters (across all pages). Null when no platform, category, or search query is applied (unfiltered count is omitted to avoid expensive full-table scans).

as_ofstring

ISO 8601 UTC timestamp for when this page was read. When mirroring the full market set, pin the first page's as_of, walk every page until next_cursor is null, then swap your state - the id-ordered cursor keeps existing rows from shifting between pages, so no cross-page reconciliation is needed.

Full API response