v1
latestOpenAPI 3.1.02026-07-243035381.4 MBList prediction-market events
/v4/data/prediction/events
100 credits per API call
List prediction-market events across supported platforms. An event is a top-level grouping of one or more markets that share a common question or outcome set (e.g. "2028 US Presidential Election"). Each event row includes a roll-up of nested market counts, total volume, and total liquidity, with an opt-in to embed the full list of nested markets via includeMarkets=true.
Supported platforms (filter via platform or omit for a cross-platform feed):
- Polymarket — polymarket
- Kalshi — kalshi
Filtering, sorting and pagination
- The status, category, tag and search filters are only honoured by Polymarket. To use any of them you must also pin platform=polymarket — calling them without that pin returns 400 so the response is honest about what was filtered.
- sort accepts volume_desc, liquidity_desc, endingSoon, newest. When omitted on a cross-platform feed, results are interleaved so neither platform dominates the first page.
- Pagination is cursor-based. The first call returns a pagination.cursor; pass that value verbatim as ?cursor=… on the next call. Cursors are opaque, fingerprint-bound to the filter set, and expire when filters change — never construct or modify them by hand. The cursor field is omitted from pagination on the last page.
Other notes
- volumeUnit is usd on Polymarket events (dollar-denominated volume) and contracts on Kalshi events (number of contracts traded, not USD).
- totalLiquidity is null on Kalshi — quoted liquidity is not exposed at the event level on Kalshi; compute from per-market orderbook depth if you need it.
- status in the response is the verbatim upstream status string (richer than the status filter enum) — values can include paused, archived, settled, etc.
- markets is populated only when includeMarkets=true is passed; otherwise it is null. When populated, every nested market is returned (no internal cap).
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 event category. Polymarket-only — must be combined with platform=polymarket. Free-form string, max 64 characters.
Filter by event tag slug. Polymarket-only — must be combined with platform=polymarket. Free-form string, max 64 characters.
Free-text search across event titles. Polymarket-only — must be combined with platform=polymarket. Max 256 characters.
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 to balance the two platforms; otherwise sorted within the merged set.
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. Fingerprint-bound to the filter set — changing filters invalidates the cursor.
Page size. Defaults to 20 when omitted.
When true, each event includes its full nested markets[] array. Defaults to false to keep list payloads light — opt in when you need per-event market depth.
Response
OK
Example response
{
"data": [
{
"id": "KXELONMARS",
"platform": "polymarket",
"title": "Will Elon Musk land humans on Mars by 2030?",
"description": "Outcome resolves on confirmation of a successful crewed Mars landing.",
"category": "Science",
"tags": [
"space",
"spacex"
],
"imageUrl": "https://polymarket.com/images/elon-mars-event.png",
"status": "active",
"openTime": "2024-01-01T00:00:00Z",
"closeTime": "2030-12-31T23:59:59Z",
"marketCount": 3,
"totalVolume": 4823100.5,
"volumeUnit": "usd",
"totalLiquidity": 271800.3,
"markets": [
"KXELONMARS-99"
],
"source": {
"platform": "polymarket",
"platformId": "KXELONMARS-99",
"url": "https://kalshi.com/markets/kxelonmars"
}
}
],
"pagination": {
"cursor": "eyJwbUV2dEN1cnNvciI6IjIwMjUtMTEtMDFUMTI6MzQ6NTZaIn0=",
"pageSize": 20
}
}