- ~5 minutesSetup
- X-API-Key headerAuth
- 300 req /
minFree tier - 5,000 /
moFree credits
You do not need a paid plan or a Polymarket wallet to start reading this data. Create an account, generate a key, and send one header, and the same order-book snapshots the rest of the platform is built on are yours to query. This is the shortest path from zero to your first authenticated response.
Resolved Markets is a read-only data platform: at its core it captures Polymarket’s order book as historical snapshots and serves that archive back over a plain REST API, with the current book on active markets available as a convenience on top. There is no trading, no wallet connection, no on-chain step. Getting started is just three things, an account, a key, and a header.
The three steps to your first call
- 1Create an account and open /api-keys, the key-management page lists your keys, their usage, and a button to mint a new one.
- 2Generate a key. It is shown once, in full, at creation; copy it then, because only a masked prefix is shown afterwards. Treat it like a password and keep it server-side.
- 3Send it as the X-API-Key header on every request to a protected endpoint. No query-string key, no bearer dance, one header is the whole handshake.
One header, every request
Authentication is a single X-API-Key header. The public endpoints, /health and /v1/public-stats, need no key at all, so you can confirm the API is reachable before you even mint one. Everything under /v1/markets expects the header.
What the Free tier actually gives you
The Free tier is not a crippled demo. It covers every crypto coin, BTC, ETH, SOL and XRP, at full order-book depth, with unlimited history reach, and it never meters credits. It is a genuine working surface for building and testing.
All crypto, full depth
Every crypto market across the 5m, 15m, 1h and 1d timeframes, with the complete bid and ask ladder, not a truncated top-of-book preview.
- BTC · ETH · SOL · XRP
- Full bid/ask arrays
- All four timeframes
Unlimited history reach
Closed markets stay queryable, so you can pull months-old windows the same way you pull today’s, no survivorship bias in the archive.
- No 24-hour wall
- Closed markets persist
- Reproducible pulls
MCP included
Every tier, Free included, gets the full MCP server, so an AI assistant can query the same data through the same key.
- 12 MCP tools
- 2 live resources
- Same key, same limits
Your first call, without writing code
The natural first request is /v1/markets/live. It returns the set of currently active markets, each with its 0x conditionId, its slug, the coin and timeframe, and the touch prices. Pick any market from that list and note its conditionId; that id is the handle every other endpoint expects.
Then call /v1/markets/:id/orderbook with that conditionId. The response carries both sides of the market, the UP token and the DOWN token, each with its own best bid, best ask, mid price and resting depth. Read it as a probability: a UP mid of 0.62 means the book is pricing roughly a 62% chance, and the DOWN side mirrors it. That is the full round trip, list, then read one market, and it is everything the rest of the platform builds on.
The numbers that bound the Free tier
- 300 req /
minFree-tier rate limit - 5,000 creditsMonthly metered allowance (Free is metered, not exempt)
- 5 keysDistinct keys you can hold at once
- 0 ws connsWebSocket streaming starts on paid tiers
One honest note on credits: every tier spends credits per request, cheap for simple reads, more for long paginated time-series pulls. The Free tier is metered too, against a 5,000-credit monthly allowance (you get a 402 once it is exhausted); it is not exempt. Both the 300 req/min ceiling and that monthly allowance are the things to design around on Free; batch your reads and cache what does not change tick to tick.
- Confirm reachability first with /v1/public-stats, no key needed, so you separate “API is up” from “my key works”.
- Keep the key server-side; a key in client JavaScript is a key anyone can lift from the network tab.
- Start from /v1/markets/live to get a real conditionId rather than guessing one, slugs and ids change as markets roll over.
- When you outgrow polling, the same key unlocks the WebSocket stream on a paid tier, no re-auth model to learn.
No wallet, no on-chain step, no trading. An account, a key, and one header, that is the entire distance from nothing to Polymarket order-book data, archive and current book alike, in your terminal.
Mint your key and make the first call
Generate a key on the key page, then follow the REST reference for the exact endpoints and parameters.
Frequently asked questions
How do I authenticate requests to the Polymarket data API?
Send your key as the X-API-Key header on every request to a protected endpoint. There is no OAuth flow and no wallet connection, one header is the whole handshake. The public endpoints /health and /v1/public-stats need no key, so you can test reachability before you mint one.
Is the Free tier good enough to build on?
Yes. Free gives you full order-book depth, unlimited history reach, and full MCP access. It is metered, not exempt: a 5,000-credit monthly allowance covers everyday reads (simple queries cost 1 credit each), and you get a 402 once it is exhausted. The limits to design around are that allowance and the 300 requests-per-minute rate cap; WebSocket streaming is what starts on paid tiers.
What is the first endpoint I should call?
Call /v1/markets/live to list active markets and grab a real conditionId, then call /v1/markets/:id/orderbook with that id to read the live book. The orderbook response returns both the UP and DOWN tokens, each with best bid, best ask, mid price and resting depth.
I lost my API key, can I see it again?
No. The full key is shown once, at creation; afterwards only a masked prefix is displayed for identification. If you lose it, revoke the old key on /api-keys and generate a new one, you can hold several keys at once on the Free tier.



