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.

GET/api/external/prediction/prediction-category-volume

What 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"
Parameters
ParameterDescription
venue

query · string · optional

Only this venue's categories: kalshi or polymarket. Omitted: both venues.
limit

query · 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.

Response fields of Which prediction-market categories carry the most volume on each venue?
FieldTypeDescription
categoriesobject[]Highest totalVolume first. Never empty.
categories[].categorystringThe category's display name on its venue, e.g. "Sports" or "democratic presidential nominee 2028".
categories[].venuestringThe venue, lowercase, e.g. kalshi or polymarket. Open set: new venues can appear.
categories[].marketCountintegerHow many markets the venue files under this category.
categories[].totalVolumenumberAll-time traded volume of those markets, in volumeUnit. Not comparable across venues.
categories[].volumeUnitstring | nullThe 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[].iconstring | nullThe category's icon URL, or null when it has none.
categories[].imagestring | nullA 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