/v1/markets/:id/snapshotsGet Market Snapshots
Paginated time-series orderbook snapshots for a specific market. Rows carry category/subcategory/label for identity; crypto and crypto_price appear only on crypto-category markets (omitted on sports/weather/equities — the underlying spot price only exists for crypto). Raw rows (default and includebook modes) also carry four data-fidelity fields — event_timestamp (Polymarket emit time), capture_timestamp (our store time; the difference is ingestion latency), sequence_number (per-token count of orderbook events APPLIED by the collector — capture keeps ~1 row per 50ms and drops unchanged books, so gaps between adjacent rows are the normal case, not dropped data; it also resets on re-subscribe and is 0 on backfilled rows, so do not build gap detection on it) and crypto_price_age_ms (spot-price staleness, -1 when untracked) — matching /api/snapshot?includebook=true. These are NOT present on interval (OHLC candle) rows. LONG-LIVED markets (months of data): unwindowed queries can take ~25s, 500 on timeout, or return total:null when only the count sub-query times out (data rows still valid) — pass explicit from/to windows or use interval= candles for those.
Path Parameters
idstringrequiredQuery Parameters
formatstringdefault:jsonsidestringfromstringtostringintervalstringlimitnumberdefault:500offsetnumberdefault:0includebookbooleandefault:falsetouchsizebooleandefault:falseorderstringdefault:desccontextstringResponse
Successful Response
curl -X GET "https://api.resolvedmarkets.com/v1/markets/:id/snapshots" \ -H "X-API-Key: YOUR_API_KEY"
{
"market_id": "0x...",
"total": 5400,
"limit": 100,
"offset": 0,
"data": [
{
"timestamp": "2026-03-02 15:30:00.123",
"token_side": "UP",
"best_bid": 0.52,
"best_ask": 0.53,
"event_timestamp": "2026-03-02 15:30:00.081",
"capture_timestamp": "2026-03-02 15:30:00.123",
"sequence_number": "148213",
"crypto_price_age_ms": 42
}
]
}
