Prediction markets API
Which prediction-market categories carry the most volume on each venue?
Per venue, each category tag with its market count and all-time volume, highest first. Volume is in the venue's own unit: contracts on kalshi, USD on polymarket.
/api/external/prediction/prediction-category-volumeWhat it returns
One row per category tag per venue: how many markets the venue files under it and their all-time volume, highest first. Unlike GET /prediction/prediction-categories, which is a fixed taxonomy with no counts, these are the venues' own tags, flat, with figures. `totalVolume` is in each venue's own unit, named by `volumeUnit`: contracts on `kalshi`, USD on `polymarket`. Without venue, rows from both venues are ranked together by that raw figure, which compares contracts with dollars; pass venue for a ranking within one venue. A market can sit under several tags, so rows overlap and do not add up to a venue total. category is a display name; it is not a filter value for any other endpoint. 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-category-volume"
| Parameter | Description |
|---|---|
venuequery · string · optional | Only this venue's categories: kalshi or polymarket. Omitted: both venues. |
limitquery · integer · optional | How many rows to return. Defaults to 50; at most 200. kalshi has fewer than 20 categories in all. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
categories | object[] | Highest totalVolume first. Never empty. |
categories[].category | string | The category's display name on its venue, e.g. "Sports" or "democratic presidential nominee 2028". |
categories[].venue | string | The venue, lowercase, e.g. kalshi or polymarket. Open set: new venues can appear. |
categories[].marketCount | integer | How many markets the venue files under this category. |
categories[].totalVolume | number | All-time traded volume of those markets, in volumeUnit. Not comparable across venues. |
categories[].volumeUnit | string | null | The unit of totalVolume: contracts (contracts traded, each priced between $0 and $1, so the dollars traded are at most this figure) on kalshi, usd on polymarket; null for a venue whose unit is not known. |
categories[].icon | string | null | The category's icon URL, or null when it has none. |
categories[].image | string | null | A representative image URL, often of a high-volume event in the category, or null. |
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