Prediction markets API
One prediction-market trader: lifetime totals, labels and recent results
How one prediction-market trader has performed — lifetime and day, week and 30-day volume, realized profit, wins, losses and win rate — and whether it is labelled a bot or market maker.
/api/external/prediction/prediction-trader/{id}What it returns
How a trader has done: lifetime volume and profit, biggest win and loss, active-market count, the labels the trader carries (e.g. market-maker, high-frequency-bot) and, for about the last day, week and 30 days, volume, realized profit, trades, wins, losses and win rate. The id is a traderId from prediction-trades or prediction-market-traders rows — copy it as given; only venues that settle on-chain have trader ids. A window with no trading answers zero volume and trades, not null. The market-by-market breakdown is prediction-trader-markets; what the trader holds right now is prediction-trader-positions. An unknown id is a 404.
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-trader/<id>"
| Parameter | Description |
|---|---|
idpath · string · required | A prediction-market trader id, e.g. "<walletAddress>:Polymarket", as traderId in prediction-trades and prediction-market-traders rows — not a bare wallet address, and not scoped to any chain this API otherwise supports. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
traderId | string | null | The trader id, as passed to the other prediction trader endpoints. |
wallet | string | null | The trader's EVM wallet address. Null when the venue exposes none. |
alias | string | null | The public name the trader chose. Null when they set none. |
labels | string[] | null | Behaviour labels, e.g. market-maker or high-frequency-bot. An open set. Empty when the trader carries none; null only when the trader's profile is missing. |
totalTrades | number | null | Every trade the trader ever made. |
totalVolumeUsd | number | null | Lifetime volume, in USD. |
allTimeProfitUsd | number | null | Lifetime profit, in USD. Negative for a net loss. |
biggestWinUsd | number | null | The largest profit on one market, in USD. |
biggestLossUsd | number | null | The largest loss, in USD, as a positive amount. |
activeMarkets | number | null | How many markets the trader is currently counted as active in. |
firstTradeTimestamp | number | null | Unix seconds. |
lastTradeTimestamp | number | null | Unix seconds. |
windows | object | |
windows.day1 | object | null | The trader's activity over about the last day. |
windows.day1.start | number | null | Unix seconds. The window is aligned to whole periods, so it can reach a little further back than its name. |
windows.day1.end | number | null | Unix seconds. Can lie slightly in the future: the window ends at the close of its current period. |
windows.day1.volumeUsd | number | null | Bought plus sold, in USD. 0 when the trader did not trade in the window. |
windows.day1.buyVolumeUsd | number | null | |
windows.day1.sellVolumeUsd | number | null | |
windows.day1.realizedPnlUsd | number | null | Profit realized in the window, in USD. Negative for a loss. |
windows.day1.averageTradeUsd | number | null | The average size of one trade, in USD. Null when the window has no trade. |
windows.day1.trades | number | null | |
windows.day1.buys | number | null | |
windows.day1.sells | number | null | |
windows.day1.markets | number | null | How many different markets the trader traded in the window. |
windows.day1.wins | number | null | Results counted as won. Not every trade is counted as a win or a loss. |
windows.day1.losses | number | null | Results counted as lost. |
windows.day1.winRate | number | null | wins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss. |
windows.day1.lastTradeTimestamp | number | null | Unix seconds of the last trade inside the window. Null when there was none. |
windows.week1 | object | null | The trader's activity over about the last week. |
windows.week1.start | number | null | Unix seconds. The window is aligned to whole periods, so it can reach a little further back than its name. |
windows.week1.end | number | null | Unix seconds. Can lie slightly in the future: the window ends at the close of its current period. |
windows.week1.volumeUsd | number | null | Bought plus sold, in USD. 0 when the trader did not trade in the window. |
windows.week1.buyVolumeUsd | number | null | |
windows.week1.sellVolumeUsd | number | null | |
windows.week1.realizedPnlUsd | number | null | Profit realized in the window, in USD. Negative for a loss. |
windows.week1.averageTradeUsd | number | null | The average size of one trade, in USD. Null when the window has no trade. |
windows.week1.trades | number | null | |
windows.week1.buys | number | null | |
windows.week1.sells | number | null | |
windows.week1.markets | number | null | How many different markets the trader traded in the window. |
windows.week1.wins | number | null | Results counted as won. Not every trade is counted as a win or a loss. |
windows.week1.losses | number | null | Results counted as lost. |
windows.week1.winRate | number | null | wins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss. |
windows.week1.lastTradeTimestamp | number | null | Unix seconds of the last trade inside the window. Null when there was none. |
windows.day30 | object | null | The trader's activity over about the last 30 days. |
windows.day30.start | number | null | Unix seconds. The window is aligned to whole periods, so it can reach a little further back than its name. |
windows.day30.end | number | null | Unix seconds. Can lie slightly in the future: the window ends at the close of its current period. |
windows.day30.volumeUsd | number | null | Bought plus sold, in USD. 0 when the trader did not trade in the window. |
windows.day30.buyVolumeUsd | number | null | |
windows.day30.sellVolumeUsd | number | null | |
windows.day30.realizedPnlUsd | number | null | Profit realized in the window, in USD. Negative for a loss. |
windows.day30.averageTradeUsd | number | null | The average size of one trade, in USD. Null when the window has no trade. |
windows.day30.trades | number | null | |
windows.day30.buys | number | null | |
windows.day30.sells | number | null | |
windows.day30.markets | number | null | How many different markets the trader traded in the window. |
windows.day30.wins | number | null | Results counted as won. Not every trade is counted as a win or a loss. |
windows.day30.losses | number | null | Results counted as lost. |
windows.day30.winRate | number | null | wins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss. |
windows.day30.lastTradeTimestamp | number | null | Unix seconds of the last trade inside the window. Null when there was none. |
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