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.

GET/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>"
Parameters
ParameterDescription
id

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

Response fields of One prediction-market trader: lifetime totals, labels and recent results
FieldTypeDescription
traderIdstring | nullThe trader id, as passed to the other prediction trader endpoints.
walletstring | nullThe trader's EVM wallet address. Null when the venue exposes none.
aliasstring | nullThe public name the trader chose. Null when they set none.
labelsstring[] | nullBehaviour 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.
totalTradesnumber | nullEvery trade the trader ever made.
totalVolumeUsdnumber | nullLifetime volume, in USD.
allTimeProfitUsdnumber | nullLifetime profit, in USD. Negative for a net loss.
biggestWinUsdnumber | nullThe largest profit on one market, in USD.
biggestLossUsdnumber | nullThe largest loss, in USD, as a positive amount.
activeMarketsnumber | nullHow many markets the trader is currently counted as active in.
firstTradeTimestampnumber | nullUnix seconds.
lastTradeTimestampnumber | nullUnix seconds.
windowsobject
windows.day1object | nullThe trader's activity over about the last day.
windows.day1.startnumber | nullUnix seconds. The window is aligned to whole periods, so it can reach a little further back than its name.
windows.day1.endnumber | nullUnix seconds. Can lie slightly in the future: the window ends at the close of its current period.
windows.day1.volumeUsdnumber | nullBought plus sold, in USD. 0 when the trader did not trade in the window.
windows.day1.buyVolumeUsdnumber | null
windows.day1.sellVolumeUsdnumber | null
windows.day1.realizedPnlUsdnumber | nullProfit realized in the window, in USD. Negative for a loss.
windows.day1.averageTradeUsdnumber | nullThe average size of one trade, in USD. Null when the window has no trade.
windows.day1.tradesnumber | null
windows.day1.buysnumber | null
windows.day1.sellsnumber | null
windows.day1.marketsnumber | nullHow many different markets the trader traded in the window.
windows.day1.winsnumber | nullResults counted as won. Not every trade is counted as a win or a loss.
windows.day1.lossesnumber | nullResults counted as lost.
windows.day1.winRatenumber | nullwins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss.
windows.day1.lastTradeTimestampnumber | nullUnix seconds of the last trade inside the window. Null when there was none.
windows.week1object | nullThe trader's activity over about the last week.
windows.week1.startnumber | nullUnix seconds. The window is aligned to whole periods, so it can reach a little further back than its name.
windows.week1.endnumber | nullUnix seconds. Can lie slightly in the future: the window ends at the close of its current period.
windows.week1.volumeUsdnumber | nullBought plus sold, in USD. 0 when the trader did not trade in the window.
windows.week1.buyVolumeUsdnumber | null
windows.week1.sellVolumeUsdnumber | null
windows.week1.realizedPnlUsdnumber | nullProfit realized in the window, in USD. Negative for a loss.
windows.week1.averageTradeUsdnumber | nullThe average size of one trade, in USD. Null when the window has no trade.
windows.week1.tradesnumber | null
windows.week1.buysnumber | null
windows.week1.sellsnumber | null
windows.week1.marketsnumber | nullHow many different markets the trader traded in the window.
windows.week1.winsnumber | nullResults counted as won. Not every trade is counted as a win or a loss.
windows.week1.lossesnumber | nullResults counted as lost.
windows.week1.winRatenumber | nullwins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss.
windows.week1.lastTradeTimestampnumber | nullUnix seconds of the last trade inside the window. Null when there was none.
windows.day30object | nullThe trader's activity over about the last 30 days.
windows.day30.startnumber | nullUnix seconds. The window is aligned to whole periods, so it can reach a little further back than its name.
windows.day30.endnumber | nullUnix seconds. Can lie slightly in the future: the window ends at the close of its current period.
windows.day30.volumeUsdnumber | nullBought plus sold, in USD. 0 when the trader did not trade in the window.
windows.day30.buyVolumeUsdnumber | null
windows.day30.sellVolumeUsdnumber | null
windows.day30.realizedPnlUsdnumber | nullProfit realized in the window, in USD. Negative for a loss.
windows.day30.averageTradeUsdnumber | nullThe average size of one trade, in USD. Null when the window has no trade.
windows.day30.tradesnumber | null
windows.day30.buysnumber | null
windows.day30.sellsnumber | null
windows.day30.marketsnumber | nullHow many different markets the trader traded in the window.
windows.day30.winsnumber | nullResults counted as won. Not every trade is counted as a win or a loss.
windows.day30.lossesnumber | nullResults counted as lost.
windows.day30.winRatenumber | nullwins / (wins + losses), from 0 to 1. Null when nothing was counted as a win or a loss.
windows.day30.lastTradeTimestampnumber | nullUnix 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