v1
latestOpenAPI 3.1.02026-07-243035381.4 MBList prediction markets
/v4/data/prediction/markets
100 credits per API call
List prediction markets across supported platforms. A market is a single binary or multi-outcome question (e.g. "Will candidate X win?"); it belongs to a parent event when one is defined upstream. Each row carries pricing-friendly roll-ups (volume, liquidity), the current outcome set, and on-chain references on platforms where they exist.
Supported platforms (filter via platform or omit for a cross-platform feed):
- Polymarket — polymarket
- Kalshi — kalshi
Filtering, sorting and pagination
- The status, category, tag, search and minVolume filters are only honoured by Polymarket. To use any of them you must also pin platform=polymarket — calling them without that pin returns 400.
- eventId accepts either a Polymarket numeric event id or a Kalshi event ticker. When omitted, results span all events on the targeted platform(s).
- endingBefore is an ISO-8601 timestamp; markets closing on or after that timestamp are excluded.
- sort accepts volume_desc, liquidity_desc, endingSoon, newest. When omitted on a cross-platform feed, results are interleaved between the two platforms.
- Pagination is cursor-based. The first call returns a pagination.cursor; pass it back verbatim as ?cursor=… on the next call. Cursors are opaque, fingerprint-bound, and expire when filters change — never construct or modify them by hand.
Other notes
- volumeUnit is usd on Polymarket (dollar-denominated notional) and contracts on Kalshi (contract count — not USD).
- liquidity is null on Kalshi — quoted liquidity is not exposed by the upstream markets feed; aggregate orderbook depth client-side if you need it.
- chain is populated for Polymarket markets (Polygon CTF) and null on Kalshi which has no on-chain footprint.
- status in the response is the verbatim upstream status string (richer than the ?status= filter enum) — values can include paused, archived, settled, etc.
Query parameters
Prediction-market platform identifier.
Filter to a single platform. Omit for a cross-platform feed.
Coarse lifecycle filter used by the ?status= query parameter. The response field status carries a richer, platform-native string (e.g. paused, archived, settled); this enum is used only for filtering.
Filter by lifecycle status. Polymarket-only — must be combined with platform=polymarket.
Filter by category. Polymarket-only — must be combined with platform=polymarket.
Filter by tag slug. Polymarket-only — must be combined with platform=polymarket.
Scope the listing to a single parent event. Polymarket numeric event id (e.g. 12345) or Kalshi event ticker (e.g. KXELONMARS).
Free-text search across market questions. Polymarket-only — must be combined with platform=polymarket.
Exclude markets closing on or after this ISO-8601 timestamp.
Minimum volume threshold in volumeUnit units. Polymarket-only — must be combined with platform=polymarket.
Sort order for event and market listings. When omitted on a cross-platform feed, results are interleaved between platforms instead.
Sort order. When omitted on a cross-platform feed, results are interleaved between platforms instead.
Opaque base64-encoded pagination token. Returned in pagination.cursor on responses that have more pages. Pass back verbatim as ?cursor=… to fetch the next page. Cursors are fingerprint-bound to the filter set — modifying any filter between calls invalidates the cursor and returns 400. The field is omitted from pagination on the last page.
Opaque cursor returned by the previous response's pagination.cursor. Omit on the first call.
Page size. Defaults to 20 when omitted.
Response
OK
Example response
{
"data": [
{
"id": "KXELONMARS-99",
"platform": "polymarket",
"eventId": "KXELONMARS",
"question": "Will Elon Musk land humans on Mars by 2030?",
"description": "Resolves YES if SpaceX confirms a successful crewed Mars landing by 2030-12-31.",
"category": "Science",
"tags": [
"space",
"spacex"
],
"imageUrl": "https://polymarket.com/images/elon-mars.png",
"status": "active",
"openTime": "2024-01-01T00:00:00Z",
"closeTime": "2030-12-31T23:59:59Z",
"settleTime": "2031-01-15T00:00:00Z",
"outcomes": [
{
"name": "YES",
"price": 0.42,
"tokenId": "71321045679252212594626385532706912750332728571942612009397583165281712267356"
}
],
"volume": 1542300.12,
"volumeUnit": "usd",
"liquidity": 89400.5,
"resolution": {
"outcome": "YES",
"resolvedAt": "2026-04-12T18:00:00Z",
"txHash": "0x9c1f…",
"source": "uma"
},
"createdAt": "2023-11-21T10:42:00Z",
"source": {
"platform": "polymarket",
"platformId": "KXELONMARS-99",
"url": "https://kalshi.com/markets/kxelonmars"
},
"chain": {
"chainId": 137,
"conditionId": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
"tokenIds": {
"yes": "7132104567925221259…",
"no": "5239841276582930182…"
},
"resolutionSource": "https://uma.app/"
}
}
],
"pagination": {
"cursor": "eyJwbUV2dEN1cnNvciI6IjIwMjUtMTEtMDFUMTI6MzQ6NTZaIn0=",
"pageSize": 20
}
}