Resolved Markets logoResolved Markets logo
Abstract blue gradient background with a soft light streakAbstract blue gradient background with a soft light streak
Tutorial

Your first Polymarket data call

Sign up, generate a key on /api-keys, and make your first authenticated request, a quickstart that gets you reading Polymarket order-book data, historical snapshots plus the current book, in about five minutes.

7 min read · Updated Jun 22, 2026

  • ~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

  1. 1Create an account and open /api-keys, the key-management page lists your keys, their usage, and a button to mint a new one.
  2. 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.
  3. 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.
Where the key goes

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