Prediction Market data is currently in beta. It is actively being worked on and improved, but may be unreliable. Polymarket data is live, and Kalshi data will be added soon.At least for the time being, this endpoint requires a Growth or Enterprise plan. Learn more.
Kalshi has limited trade data. When querying Kalshi trades:
- No
traderIdfiltering: Individual trader information is not exposed - No BUY/SELL distinction: All trades show as
TRADEtype (no direction information) - No trader identity: The
makerandtraderIdfields will be null or unavailable
Example: Get recent trades for a market
Example Response (truncated)
Example: Get trades for a specific trader
Example: Get trades for an event
Example: Pagination
Usage Guidelines
- Required: You must provide at least one of
marketId,eventId, ortraderId(note:traderIdonly works for Polymarket) - ID formats:
marketId:- Polymarket:
<marketAddress>:Polymarket:<exchangeAddress>:<networkId>(e.g.,0x25aa90b3cd98305e849189b4e8b770fc77fe89bccb7cf9656468414e01145d38:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137) - Kalshi:
<marketSlug>:Kalshi(e.g.,KXMVECROSSCATEGORY-S2026A4A05B370DF-F1FBA451AA9:Kalshi)
- Polymarket:
eventId:- Polymarket:
<eventSlug>:Polymarket:<exchangeAddress>:<networkId>(e.g.,67284:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137) - Kalshi:
<eventSlug>:Kalshi(e.g.,KXMVESPORTSMULTIGAMEEXTENDED-S2026350C4EF9BCE:Kalshi)
- Polymarket:
traderId: Polymarket only -<address>:Polymarket(e.g.,0x742d35cc6634c0532925a3b844bc9e7595f0beb6:Polymarket)
- Use
cursorfor pagination to fetch additional results limitcontrols how many trades to return per request (max varies by plan)- Trades are returned in reverse chronological order (most recent first)
- Each trade includes both the trade details and associated market information
transactionHashis available for Polymarket (on-chain) but may be null for Kalshi
Understanding Trade Types
See thePredictionTradeType enum for all possible trade type values and their meanings.
Platform differences:
- Polymarket: Shows detailed trade types (
BUY,SELL,BUY_COUNTERPARTY,SELL_COUNTERPARTY) - each trade has two records for both sides - Kalshi: Only shows
TRADEtype with no buy/sell distinction due to privacy limitations on their regulated exchange
Troubleshooting Tips
Why do I see duplicate trades with different tradeType values?
Why do I see duplicate trades with different tradeType values?
Each trade has two sides - the original trader and the counterparty. If a trader buys, their record shows
BUY while their counterparty’s record shows BUY_COUNTERPARTY. This allows you to track both sides of every transaction.What's the difference between maker and traderId?
What's the difference between maker and traderId?
maker is the raw wallet address, while traderId is a composite ID that includes both the wallet address and the protocol. Use traderId for querying, and maker if you need just the wallet address.Can I filter trades by time range?
Can I filter trades by time range?
The API doesn’t support time range filtering directly. You’ll need to fetch trades and filter by
timestamp on your end. Trades are returned in reverse chronological order, so you can stop fetching once you reach your desired time range.How do I calculate the total volume for a trader?
How do I calculate the total volume for a trader?
Sum the
amountUsd values for all trades where tradeType is BUY or SELL (not the counterparty types) to avoid double-counting.What does the transactionHash represent?
What does the transactionHash represent?
The
transactionHash is the on-chain transaction ID. You can use it to look up the transaction on a block explorer like Polygonscan (for Polymarket, which runs on Polygon).