Prediction markets API

Recent prediction trades brief: the newest fills across venues

The newest 20 trades across every prediction market, optionally one venue, with the count per venue.

GET/api/external/prediction/prediction-trades-recent-brief

What it returns

The brief of prediction-trades-recent; prefer it unless you need more than the newest 20 trades. The same query: limit and exchange. It lists the newest 20 of the rows prediction-trades-recent answers, each exactly as it lists it, with how many rows that answer holds and how many per venue; a limit above 20 still lists 20.

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-trades-recent-brief"
Parameters
ParameterDescription
limit

query · integer · optional

How many rows to return, after the exchange filter. Defaults to 50; at most 1000 — the source's own page ceiling.
exchange

query · string · optional

Keep only one venue's trades, e.g. "polymarket" or "kalshi". Case-insensitive. A venue with no matching trades on the current page answers an empty list.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Recent prediction trades brief: the newest fills across venues
FieldTypeDescription
rowCountintegerRows in the full answer, after exchange and limit.
exchangesobject[]Rows in the full answer per venue, in the order the venues first appear.
exchanges[].exchangestringThe venue, as the rows name it.
exchanges[].tradeCountintegerThe venue's rows in the full answer.
rowsobject[]The newest 20 rows, newest first, each exactly as prediction-trades-recent lists it.
rows[].exchangestring | nullThe venue that filled this trade, e.g. polymarket or kalshi. Open set: new venues can appear.
rows[].idstring | nullThis trade's id on its venue.
rows[].marketIdstring | nullThe market traded, in its venue's own id space.
rows[].timestampnumber | nullUnix seconds, when the trade filled.
rows[].sidestring | nullThe side filled, e.g. yes, no, sell. Open set: new values can appear.
rows[].pricenumber | nullPrice per share/contract, 0 to 1.
rows[].quantitynumber | nullShares/contracts traded.
rows[].outcomeIndexnumber | nullWhich outcome of the market this trade is on (0-indexed).
rows[].outcomeLabelstring | nullThe outcome traded, e.g. Yes, MOUZ.
rows[].groupItemTitlestring | nullThe sub-market label inside a multi-outcome event, e.g. "75+", "Tie". Null when the market has none.
rows[].marketTitlestring | nullThe market's title, resolved from this page's own side-loaded market directory. Null when this trade's market did not appear in it.
rows[].eventTitlestring | nullThe event's title grouping this market, when known. Null when it cannot be resolved.
rows[].traderAddressstring | nullThe trader's wallet address. Populated on polymarket only; null elsewhere.
rows[].traderUsernamestring | nullThe trader's chosen display name, when they set one. Populated on polymarket only; null elsewhere, including a polymarket trader who set none.
rows[].txHashstring | nullThe on-chain transaction hash. Populated on polymarket only; null elsewhere.
rows[].eventIdstring | nullThe event id this trade's market belongs to. Populated on polymarket only; null elsewhere.
rows[].eventSlugstring | nullThe event's URL slug. Populated on polymarket only; null elsewhere.
rows[].imagestring | nullAn image representing the market or event. Populated on polymarket only; null elsewhere.
rows[].yesPricenumber | nullThe Yes side's implied price, 0 to 1. Populated on kalshi only; null elsewhere.
rows[].noPricenumber | nullThe No side's implied price, 0 to 1. Populated on kalshi only; null elsewhere.
rows[].yesPriceDollarsstring | nullyesPrice as a decimal-string dollar amount. Populated on kalshi only; null elsewhere.
rows[].noPriceDollarsstring | nullnoPrice as a decimal-string dollar amount. Populated on kalshi only; null elsewhere.
rows[].yesPriceE6number | nullyesPrice scaled by 1e6 (fixed-point). Populated on kalshi only; null elsewhere.
rows[].quantityE2number | nullquantity scaled by 1e2 (fixed-point). Populated on kalshi only; null elsewhere.
rows[].countFpstring | nullThe fill count, as this venue's own fixed-point decimal string. Populated on kalshi only; null elsewhere.

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