Product
Historical Polymarket depth, as an API
Find a market, then pull prices, liquidity, and full order books from one archive. Built for research stacks that need real depth — not just the last tick.
Why PolyOrderbooks
Live data ends when the moment passes
Exchange APIs are built for now. PolyOrderbooks is built for later — what the book looked like at a time you choose.
Data layers
Three layers, one timeline
Markets, prices, metrics, and books share the same time window and resolution — so joins stay straightforward.
Find the market
Search markets, events, and series. Get the slug and outcome labels you need for history calls.
GET /markets · /events · /series · /tagsPull prices and liquidity
Request prices and metrics for the same time window so charts and filters stay in sync.
GET /markets/{slug}/prices · /metricsReplay the order book
Load historical bid/ask levels to estimate fills from real depth — not a single mid price.
GET /markets/{slug}/books
Data model
How markets are organized
A clear hierarchy: series → event → market → outcomes.
- 01Series
Optional parent theme (for example a recurring BTC up/down family).
- 02Event
A concrete question window. Markets always belong to an event.
- 03Market
The tradable contract: slug, status, volume, and resolution fields.
- 04Outcomes
Yes/No (or more). Prices and books are keyed by outcome label.
Resolutions you can request
Capture is every second on open markets. Starter can query down to 1m; paid plans unlock 1s. Coarser buckets are available on every plan. The API also accepts 60s as an alias for 1m.
Integration
A typical workflow
Four steps most clients repeat.
- 01
Discover
Search until you have a market slug.
- 02
Pick a window
Set start time, end time, and resolution. Reuse them on every history call.
- 03
Join the series
Fetch prices and metrics first if you need filters, then books for depth.
- 04
Replay
Walk ladders in time order. Keep resolved markets for later review.
Backtest AI
From a sentence to a replayed strategy
The live Polymarket API answers with now; replay needs an archive. PolyOrderbooks keeps the archive, and Backtest AI runs on it: describe a crypto up/down strategy in plain English and get a backtest over resolved markets.
Describe, don’t code
“Buy DOWN on BTC 15m below 0.40, take profit at 0.55, stop loss at 0.30” parses into entry and exit rules — no Python script, no CSV wrangling.
Fill simulation, not midpoints
The engine walks the historical bid/ask ladder at each tick, so entries and exits model available size, partial fills, and slippage — the depth a mid-price backtest cannot see.
Report + AI analysis
Net P&L, win rate, profit factor, max drawdown, exit reasons, and fill sources — then an AI readback with a Summary, Key Observations, and an Actionable Takeaway.
Keep what you learn
Save runs to your workspace, export the trade log to CSV or the full report to JSON, and revisit the same strategy conversation later.
Natural-language backtesting is available as a +$19/mo add-on on any data window or a standalone $29/mo plan, with 500 backtests a month. Starter stays free for the historical API. See the Polymarket backtesting guide for how replay and fill simulation work.
Response shape
What a books response looks like
Outcomes are keys in data. Each point is a timestamp plus bid and ask ladders as [price, size].
- Same query parameters as prices and metrics
- Token routes when you already have token IDs
- Cursors when you page a long window
GET /markets/bitcoin-all-time-high-by-december-31-2026/books
?start_ts=2026-04-01T00:00:00Z
&end_ts=2026-04-01T01:00:00Z
&resolution=1s
{
"market_id": "948958",
"resolution": "1s",
"tokens": {
"Yes": "10295989…404382",
"No": "28476986…384477"
},
"data": {
"Yes": [
{
"t": "2026-04-01T00:00:00Z",
"bids": [
[0.052, 5645.57],
[0.051, 411.09],
[0.05, 976.26],
...
],
"asks": [
[0.053, 1134.93],
[0.058, 1050.0],
[0.059, 6810.0],
...
]
},
{
"t": "2026-04-01T00:00:01Z",
"bids": [
[0.052, 5520.12],
[0.051, 428.5],
[0.05, 990.0],
...
],
"asks": [
[0.054, 1120.0],
[0.058, 1065.5],
[0.059, 6795.0],
...
]
},
...
],
"No": [
{
"t": "2026-04-01T00:00:00Z",
"bids": [
[0.947, 1134.93],
[0.942, 1050.0],
[0.941, 6810.0],
...
],
"asks": [
[0.948, 5645.57],
[0.949, 411.09],
[0.95, 976.26],
...
]
},
{
"t": "2026-04-01T00:00:01Z",
"bids": [
[0.946, 1120.0],
[0.942, 1065.5],
[0.941, 6795.0],
...
],
"asks": [
[0.948, 5520.12],
[0.949, 428.5],
[0.95, 990.0],
...
]
},
...
]
},
"metadata": {
"count": 100,
"limit": 100,
"next_cursor": "dDoyMDI2LTA0LTAxVDAwOjAxOjQwWg"
}
}Product boundaries
What you get
Clear limits — no surprise dependencies.
- Simple REST API
- Call the API over HTTPS from any language. Use the dashboard for API keys; reference docs at docs.polyorderbooks.com.
- MCP server for AI agents
- Install @polyorderbooks/mcp-server in Cursor or Claude Desktop to query historical books, prices, and metrics from chat. Same 1-second archive as the REST API — see the MCP setup guide on this site.
- Captured every second
- Open markets are snapshotted at 1s, and every plan can query at 1s — including the free tier. Coarser buckets (1m–1d) stay available throughout. Plans differ on history depth and request volume, not resolution.
- Resolved markets stay
- After a market settles, it remains queryable — including the winning outcome.
- We keep the archive
- We run the archive. Your apps only talk to our API, never to live Polymarket on the read path.
Prefer an AI client? The official MCP server wraps the same history endpoints as tools you can call from Cursor or Claude Desktop — no separate data product.
Endpoint map
Everything available through the REST APIs.
/series · /events · /markets · /tags/markets/{slug}/prices · /metrics · /books/tokens/{id}/prices · /books/usageFAQ
Common questions
Before you integrate.
Is this a live Polymarket proxy?
No. We collect data into our own archive. The API only serves that history — your clients do not call Polymarket live.
What do history endpoints need?
A start time, end time, and resolution on prices, metrics, and books. Using the same window everywhere keeps joins simple.
Why order books instead of mid prices only?
Mids are easy to chart. Books show how much size sat at each price — which is what you need to estimate fills and slippage.
How do I access the data?
Through the REST API with an API key from your dashboard (after email verification), via the official Python SDK on PyPI, or through the MCP server for Cursor and Claude. See the docs for markets, books, prices, and metrics.
Do you offer SDKs or bulk dumps?
Yes — an official Python SDK on PyPI (polyorderbooks) and an MCP server (@polyorderbooks/mcp-server) for AI clients. REST remains the core product; Enterprise customers can also arrange S3 bulk exports and custom delivery.
What does the MCP server expose?
Tools to search markets and pull historical L2 order books, outcome prices, and liquidity metrics from the same archive as the REST API. Install @polyorderbooks/mcp-server in your MCP client config — full setup at polyorderbooks.com/polymarket-mcp-server.
Do I need to write code to backtest a Polymarket strategy?
No. Backtest AI takes a strategy in plain English — 'Buy DOWN on BTC 15m below 0.40, take profit at 0.55, stop loss at 0.30' — turns it into entry and exit rules, then replays it over resolved Polymarket crypto up/down markets. No Python, no CSV wrangling.
What does Backtest AI replay on?
Real history from the PolyOrderbooks archive: 1-second L2 order books captured while each market was live. Fills walk the actual bid/ask ladder, so entries and exits reflect available size, partial fills, and slippage instead of an assumed mid price.
Which markets can I backtest?
Resolved crypto up/down markets across BTC, ETH, SOL, BNB, DOGE, HYPE, XRP, and ZEC at 5m, 15m, and 4h windows — more than 118,000 resolved markets in the archive today. Backtest AI is available as a standalone $29/mo plan with unlimited strategy backtests, ~500 AI backtests/month, 30-day market data for AI, and unlimited Strategy Builder access — or as a +$19/mo add-on on any data window.
How is Backtest AI different from other backtesting approaches?
Backtest AI runs on the same 1-second L2 archive your API key queries, reads every run back with a plain-English AI analysis, and prices it as a standalone $29/mo plan or a +$19/mo add-on on any data window.
Ready to call the API?
Create an account, open the docs, and start with markets → books.