Unified Prediction Market Data with Tatum: One API for Polymarket and Kalshi


%20(71).jpg)
A practical guide to building on prediction market data using a single unified API.
If you've ever tried to build an app on top of prediction markets, you know the problem. Polymarket has one API. Kalshi has another. Different authentication, different data schemas, different endpoint structures. You end up writing and maintaining two integrations that do essentially the same thing fetch market data just in two completely different ways.
There's a simpler path. Tatum's Prediction Markets API gives you a single, unified interface to both Polymarket and Kalshi. One API key, one base URL, one consistent response format across 38 endpoints. No more juggling platform-specific quirks.
In this guide, I'll walk through what the API covers, how the endpoints work, and how to use them with practical code examples you can run today.
A prediction market is a platform where participants trade on the outcome of real-world events. Instead of buying shares in a company, you buy shares in a question: "Will Bitcoin hit $100K by December?" or "Which party wins the Senate in 2026?"
Prices represent probabilities. If "Yes" shares on a market trade at $0.72, the market collectively assigns a 72% probability to that outcome. If you think it's higher, you buy. If lower, you sell.
The two leading platforms right now are:
Polymarket: Decentralized, built on the Polygon blockchain. Markets cover crypto, politics, sports, entertainment, and more. All trading activity is on-chain, meaning wallet and transaction data is publicly accessible.
Kalshi: A CFTC-regulated exchange based in the U.S. Markets focus on regulated events like economics, weather, and politics. It operates like a traditional exchange with centralized clearing.
Both platforms are growing fast, which is creating demand for developer tooling: trading bots, dashboards, portfolio trackers, and social trading platforms.
.png)
You could integrate Polymarket and Kalshi directly. Some teams do. But here's what that actually looks like:
Two authentication systems: Polymarket uses blockchain-based auth. Kalshi uses traditional API keys with different header conventions. You're maintaining two auth flows from day one.
Different data schemas: An "event" on Polymarket doesn't have the same field names or nesting as a Kalshi event. You need to write normalization layers to merge data into a consistent format.
Different endpoint structures: Wallet analytics? Only available on Polymarket (because it's on-chain). Regulated market compliance data? Only on Kalshi. Your app needs conditional logic for every platform-specific feature.
Double the maintenance: When either platform changes their API, you have a separate codebase to update and test.
Think of it like building a stock trading app that has to integrate NYSE and NASDAQ through completely separate APIs, then stitch the data together yourself. It works, but it's a lot of overhead for what should be a read operation.
Tatum's Prediction Markets API abstracts this away. You query one API, get one consistent response format, and the platform handles the normalization, routing, and platform-specific edge cases.
Every request goes through a single base URL: https://api.tatum.io/v4/data/prediction
Authentication is a single header:
curl -X GET "https://api.tatum.io/v4/data/prediction/events?platform=polymarket&status=active&limit=5" \
-H "x-api-key: your-tatum-api-key"
Response:
{
"events": [
{
"id": "event_abc123",
"title": "Will BTC hit $100K by December 2026?",
"platform": "polymarket",
"status": "active",
"markets": [
{
"id": "market_xyz789",
"question": "Yes or No",
"yesPrice": 0.72,
"noPrice": 0.28
}
]
}
]
}
All responses are JSON with a consistent structure. If you have a Tatum API key, you can start querying both platforms immediately.
Prediction markets are organized hierarchically. An event (e.g., "2026 U.S. Midterm Elections") contains one or more markets (e.g., "Will Party X win the Senate?"). The API gives you several ways to navigate this structure.
Pull events filtered by platform, status, and count:
curl -X GET "https://api.tatum.io/v4/data/prediction/events?platform=polymarket&status=active&limit=10" \
-H "x-api-key: your-tatum-api-key"
You can filter by category CRYPTO, POLITICS, SPORTS, FINANCE and sort markets by volume, liquidity, or closing time. Want only Kalshi markets? Swap the `platform` parameter. Want both? Omit it entirely.
Drill into a specific event to see all its nested markets:
curl -X GET "https://api.tatum.io/v4/data/prediction/events/{eventId}" \
-H "x-api-key: your-tatum-api-key"
This returns the event metadata along with every market under it, their current prices, and status.
This is where the unified API really shines. A single search endpoint queries events, markets, and trader profiles across both platforms:
curl -X GET "https://api.tatum.io/v4/data/prediction/search?q=bitcoin&limitPerType=5" \
-H "x-api-key: your-tatum-api-key"
The schema is identical regardless of whether the data originated from Polymarket or Kalshi. No conditional parsing.
Once you've found a market, the API provides three layers of real-time data.
Current Price and Spread
curl -X GET "https://api.tatum.io/v4/data/prediction/markets/{marketId}/price" \
-H "x-api-key: your-tatum-api-key"
Response:
{
"midPrice": 0.72,
"spread": 0.02,
"yesPrice": 0.73,
"noPrice": 0.27,
"lastUpdated": "2026-06-09T14:30:00Z"
}
The mid-price is the midpoint between the best bid and ask. The spread tells you how tight the market is a $0.02 spread indicates good liquidity, while $0.10+ suggests a thin market where large orders will move the price.
curl -X GET "https://api.tatum.io/v4/data/prediction/markets/{marketId}/orderbook?side=yes&depth=10" \
-H "x-api-key: your-tatum-api-key"
Pull the full orderbook for either the "yes" or "no" side. The `depth` parameter controls how many price levels to return.
This is essential for:
- Assessing liquidity before placing large trades
- Building orderbook visualizations showing bid/ask depth
- Detecting whale activity by spotting large resting orders
curl -X GET "https://api.tatum.io/v4/data/prediction/markets/{marketId}/trades" \
-H "x-api-key: your-tatum-api-key"
Trade history includes timestamps, amounts, and sides. Useful for tracking market sentiment shifts and building volume-weighted analytics.
This trips up developers coming from traditional finance, so let's be explicit.
In prediction markets, prices are bounded between $0.00 and $1.00. A "Yes" share at $0.72 and a "No" share at $0.28 always sum to ~$1.00 (minus the spread).
Price = Implied Probability. A Yes price of $0.72 means the market thinks there's a 72% chance the event happens. If you believe the true probability is 85%, buying at $0.72 is a value trade.
Settlement is binary. When the event resolves, winning shares pay $1.00 and losing shares pay $0.00. If you bought "Yes" at $0.72 and the event happens, you profit $0.28 per share.
Spread matters. A market with a $0.02 spread (best bid $0.71, best ask $0.73) has healthy liquidity. A market with a $0.15 spread is thin you'll pay more to enter and receive less when exiting. Always check spread and orderbook depth before building strategies around a market.
The API provides historical price data in the standard OHLCV format (Open, High, Low, Close, Volume) the same format used by stock and crypto trading platforms.
curl -X GET "https://api.tatum.io/v4/data/prediction/markets/{marketId}/history?interval=1d&startDate=2026-01-01&endDate=2026-06-01" \
-H "x-api-key: your-tatum-api-key"
Configurable intervals include `1h` (hourly) and `1d` (daily), with custom date ranges. If you've built candlestick charts for crypto or equities, the integration is identical.
What you can do with historical data:
Backtesting: Evaluate how a trading strategy would have performed on past market movements. Did the market consistently underprice certain event types? Run the numbers.
Charting: Build candlestick or line charts for market trend visualization. Show how a market's implied probability shifted as an event approached its resolution date.
Pattern recognition: Identify how markets behave in their final days before resolution. Do they converge smoothly to $0 or $1, or do they experience late volatility?
Since Polymarket operates on the Polygon blockchain, all trading activity is on-chain and publicly accessible. The API lets you track any wallet's prediction market activity using its address.
curl -X GET "https://api.tatum.io/v4/data/prediction/wallets/{address}/portfolio?period=30d" \
-H "x-api-key: your-tatum-api-key"
Returns PnL, ROI, and a breakdown of realized vs. unrealized gains over a configurable time period. The `period` parameter accepts values like `7d`, `30d`, `90d`.
curl -X GET "https://api.tatum.io/v4/data/prediction/wallets/{address}/positions" \
-H "x-api-key: your-tatum-api-key"
See every active market a wallet is participating in, along with their entry prices and current exposure.
curl -X GET "https://api.tatum.io/v4/data/prediction/wallets/{address}/trades" \
-H "x-api-key: your-tatum-api-key"
curl -X GET "https://api.tatum.io/v4/data/prediction/wallets/{address}/value" \
-H "x-api-key: your-tatum-api-key"
Important: Wallet analytics are available for Polymarket only. Kalshi operates as a traditional regulated exchange and does not expose individual account data through public interfaces. The API makes this clear in the response you won't get misleading empty results; Kalshi wallet endpoints will return an appropriate platform-not-supported indicator.
The API includes social features built on top of Polymarket's on-chain data.
curl -X GET "https://api.tatum.io/v4/data/prediction/top-traders?category=CRYPTO&period=30d" \
-H "x-api-key: your-tatum-api-key"
Returns ranked traders with performance metrics: PnL, ROI, and trading volume. Filter by category (CRYPTO, POLITICS, SPORTS) and time period to surface the most profitable participants in specific market segments.
The same `/search` endpoint covered earlier also returns trader profiles. Search by username or wallet address to pull up a specific trader's public activity.
These endpoints are the foundation for building social trading platforms, copy-trading interfaces, or community leaderboards. If you want to show your users who the best prediction market traders are and what they're betting on, this is the data layer.
Not every feature is available on both platforms. This matters when building cross-platform applications you need to know where to expect data and where to handle graceful fallbacks.
| Feature | Polymarket | Kalshi | Notes |
|---------|-----------|--------|-------|
| Market Data | Yes | Yes | Unified schema across both |
| Orderbooks | Yes | Yes | Real-time depth on both |
| Historical Candles | Yes | Yes | OHLCV format, same intervals |
| Wallet Analytics | Yes | No | Polymarket is on-chain; Kalshi is centralized |
| Top Traders | Yes | No | Requires public blockchain data |
| Profile Search | Yes | No | Polymarket profiles only |
| Category Filtering | Yes | Limited | Kalshi has fewer event categories |
24 endpoints cover Polymarket's full feature set including wallets, social, and search. 14 endpoints cover Kalshi's market data, orderbooks, and historical data. The API handles these differences transparently you get a unified response format regardless of the source platform.
Here are the most common applications teams are building with this data:
Trading Bots: Automated strategies using real-time orderbook depth, price movements, and cross-platform arbitrage detection. Poll price and orderbook endpoints on a schedule, compare across platforms, and execute when conditions are met.
Analytics Dashboards: Market trend visualizations, top trader rankings, and portfolio performance displays. Combine historical candles with live prices for comprehensive market views.
Portfolio Trackers: Monitor any Polymarket wallet's positions, PnL, ROI, and trade history. Build notifications when portfolio value crosses thresholds or positions change significantly.
Social Trading Platforms: Leaderboards, trader profiles, and copy-trading features. Show who's profiting in which categories and what positions they hold.
Market Research Tools: Academic and commercial analysis of prediction market accuracy, liquidity dynamics, and volume patterns across event types.
Use the API reference for request schemas, platform filter rules, and error codes — or connect the Tatum docs MCP server to query endpoint details in AI workflows.
Add your API key and pull live markets from GET /v4/data/prediction/markets — filter by platform, status, and sort by volume.
| # | Market | Platform | Status | Yes | Volume | Liquidity |
|---|---|---|---|---|---|---|
| 1 | Will BTC reach $150k in 2026? 0xe06a…c61 | polymarket | active | 0.42 | 1.2M | 84k |
| 2 | Fed cuts rates before July? KXRATEJUL-26 | kalshi | open | 0.61 | 420k | — |
Explorer locked
Get your API key and click Unlock & fetch to load live Polymarket and Kalshi markets.
1. Get a Tatum API key from the Tatum Dashboard
2. Make your first call list active events to verify authentication
3. Explore the market endpoints pull a price, check an orderbook
4. Try wallet tracking look up a known Polymarket wallet
5. Check the full API documentation for response schemas and all the endpoints
6. For enterprise requirements, contact sales@tatum.io
Building on prediction markets shouldn't mean maintaining two separate API integrations with different schemas, auth systems, and data formats. The Prediction Markets API collapses Polymarket and Kalshi into a single interface 38 endpoints, consistent JSON responses, and sub-second latency.
Whether you're building a trading bot that needs real-time orderbook data, a dashboard that visualizes market trends, or a social platform that ranks top traders, the data layer is the same: one API key, one base URL, and a response format you only need to parse once.
The prediction market space is growing fast. The tooling for developers building in it should keep up.
Building something with prediction market data? I'd love to hear about your use case. Drop a comment or connect with me.
Build blockchain apps faster with a unified framework for 60+ blockchain protocols.