Developer Guide

How to access Polymarket historical orderbook data

Polymarket exposes live market state, but researchers often need the orderbook as it looked yesterday, last week, or during a specific event. Resolved Markets stores point-in-time Polymarket orderbook snapshots with full bid/ask depth and exposes them through REST, OpenAPI, CLI export, and MCP.

Last updated:

  • Full depthSnapshot contents
  • MillisecondsTimestamp precision
  • Up to 500REST page size
  • CLI parquet exportBulk workflow

Three-step REST workflow

  1. Find a market. Use /v1/markets/live for active markets or /v1/markets/history for previously tracked markets.
  2. Query snapshots. Use /v1/markets/:id/snapshots with from, to, side, and limit.
  3. Analyze the book. Use best_bid, best_ask, mid, spread, bids, asks, and sequence_number for replay or backtesting.
# 1. Find active BTC markets
curl -s "https://api.resolvedmarkets.com/v1/markets/live?category=crypto&subcategory=BTC" \
  -H "X-API-Key: rm_your_key" | jq '.markets[] | {condition_id, slug, question}'

# 2. Pull historical snapshots
curl -s "https://api.resolvedmarkets.com/v1/markets/<condition_id>/snapshots?from=2026-05-01T00:00:00Z&to=2026-05-01T01:00:00Z&limit=500" \
  -H "X-API-Key: rm_your_key" | jq '.snapshots[0]'

# 3. Export with the CLI for larger research jobs
rm-api download --category crypto --subcategory BTC --from 2026-05-01 --to 2026-05-02 --format parquet --out ./btc/

Snapshot fields that matter

  • Full depth: bids and asks arrays, not just top-of-book.
  • Derived prices: best_bid, best_ask, mid, and spread.
  • Replay safety: sequence_number for gap detection.
  • Timing: event and capture timestamps for latency-sensitive research.
  • Context: paired spot crypto fields where applicable.

Frequently asked questions