Prediction markets API
How much is trading on prediction venues, per venue and combined?
Per venue and combined: 24-hour and all-time volume (contracts on kalshi, USD on polymarket), trade count, active and total markets, and unique traders where reported. No open interest.
/api/external/prediction/prediction-overviewWhat it returns
One row per prediction venue with its market counts, trade count, traded volume on record and over the last 24 hours, and its unique trader count, plus the same figures for every venue together. Volume is in each venue's own unit, named by volumeUnit: contracts on kalshi, USD on polymarket; the …Usd fields are null where the volume is not USD, and the combined USD volume is null while the venues' units differ. uniqueTraders is null for a venue that does not report it; there is no combined trader count, because the same trader cannot be matched across venues. Open interest is not published: no figure for it is available. activeMarkets is counted differently from the one in the prediction venue schedule, so the two do not match. No chain and no subject.
Chains
This endpoint is not tied to a chain: it takes no chain in its request.
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/prediction/prediction-overview"
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
venues | object[] | One row per venue. The set is open: a new venue appears as a new row. |
venues[].venue | string | The venue, lowercase, e.g. kalshi or polymarket. |
venues[].activeMarkets | integer | Markets the venue counts as active. |
venues[].totalMarkets | integer | Every market the venue has listed, open or settled. |
venues[].totalTrades | integer | Every trade on record. |
venues[].totalVolume | number | Traded volume on record, in volumeUnit. |
venues[].volume24h | number | Traded volume over the last 24 hours, in volumeUnit. |
venues[].volumeUnit | string | null | The unit of totalVolume and volume24h: contracts (number of contracts traded, one contract settling at $1) on kalshi, usd on polymarket. Null for a venue whose unit is not known yet. |
venues[].totalVolumeUsd | number | null | Traded volume on record in USD. Null when the venue's volume is not in USD. |
venues[].volume24hUsd | number | null | Traded volume over the last 24 hours in USD. Null when the venue's volume is not in USD. |
venues[].uniqueTraders | integer | null | Distinct traders on record. Null when the venue does not report it, never a fake 0. |
combined | object | Every venue together. activeMarkets is the sum of the venue counts. |
combined.activeMarkets | integer | Markets the venue counts as active. |
combined.totalMarkets | integer | Every market the venue has listed, open or settled. |
combined.totalTrades | integer | Every trade on record. |
combined.totalVolumeUsd | number | null | Traded volume on record across every venue, USD. Null unless every venue's volume is in USD. |
combined.volume24hUsd | number | null | Traded volume over the last 24 hours across every venue, USD. Null unless every venue's volume is in USD. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key