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.
/api/external/prediction/prediction-trades-recent-briefWhat 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"
| Parameter | Description |
|---|---|
limitquery · integer · optional | How many rows to return, after the exchange filter. Defaults to 50; at most 1000 — the source's own page ceiling. |
exchangequery · 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.
| Field | Type | Description |
|---|---|---|
rowCount | integer | Rows in the full answer, after exchange and limit. |
exchanges | object[] | Rows in the full answer per venue, in the order the venues first appear. |
exchanges[].exchange | string | The venue, as the rows name it. |
exchanges[].tradeCount | integer | The venue's rows in the full answer. |
rows | object[] | The newest 20 rows, newest first, each exactly as prediction-trades-recent lists it. |
rows[].exchange | string | null | The venue that filled this trade, e.g. polymarket or kalshi. Open set: new venues can appear. |
rows[].id | string | null | This trade's id on its venue. |
rows[].marketId | string | null | The market traded, in its venue's own id space. |
rows[].timestamp | number | null | Unix seconds, when the trade filled. |
rows[].side | string | null | The side filled, e.g. yes, no, sell. Open set: new values can appear. |
rows[].price | number | null | Price per share/contract, 0 to 1. |
rows[].quantity | number | null | Shares/contracts traded. |
rows[].outcomeIndex | number | null | Which outcome of the market this trade is on (0-indexed). |
rows[].outcomeLabel | string | null | The outcome traded, e.g. Yes, MOUZ. |
rows[].groupItemTitle | string | null | The sub-market label inside a multi-outcome event, e.g. "75+", "Tie". Null when the market has none. |
rows[].marketTitle | string | null | The 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[].eventTitle | string | null | The event's title grouping this market, when known. Null when it cannot be resolved. |
rows[].traderAddress | string | null | The trader's wallet address. Populated on polymarket only; null elsewhere. |
rows[].traderUsername | string | null | The trader's chosen display name, when they set one. Populated on polymarket only; null elsewhere, including a polymarket trader who set none. |
rows[].txHash | string | null | The on-chain transaction hash. Populated on polymarket only; null elsewhere. |
rows[].eventId | string | null | The event id this trade's market belongs to. Populated on polymarket only; null elsewhere. |
rows[].eventSlug | string | null | The event's URL slug. Populated on polymarket only; null elsewhere. |
rows[].image | string | null | An image representing the market or event. Populated on polymarket only; null elsewhere. |
rows[].yesPrice | number | null | The Yes side's implied price, 0 to 1. Populated on kalshi only; null elsewhere. |
rows[].noPrice | number | null | The No side's implied price, 0 to 1. Populated on kalshi only; null elsewhere. |
rows[].yesPriceDollars | string | null | yesPrice as a decimal-string dollar amount. Populated on kalshi only; null elsewhere. |
rows[].noPriceDollars | string | null | noPrice as a decimal-string dollar amount. Populated on kalshi only; null elsewhere. |
rows[].yesPriceE6 | number | null | yesPrice scaled by 1e6 (fixed-point). Populated on kalshi only; null elsewhere. |
rows[].quantityE2 | number | null | quantity scaled by 1e2 (fixed-point). Populated on kalshi only; null elsewhere. |
rows[].countFp | string | null | The 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