Resolved Markets logoResolved Markets logo
GET/v1/markets/history

List Historical Markets (full)

All distinct markets ever stored, including closed and expired. Filter by crypto, timeframe, category, or subcategory. Cached 30s. Use this for backfills and dataset builds; for an always-fresh paginated UI feed, prefer /v1/markets/history/recent.

Query Parameters

formatstringdefault:json
Response encoding. csv and tsv return the row array as a flat file instead of a JSON envelope — the envelope moves to X-* response headers and nulls render as \N. REQUIRES SCALE OR ENTERPRISE (json is available on every tier). Works with includebook=true — the bids/asks ladders come through as compact JSON inside their cell, complete and parseable (pandas: df["bids"].apply(json.loads)).
cryptostringdefault:all
Cryptocurrency to query
timeframestringdefault:all
Filter by timeframe. NOT just crypto cadences — it is a per-category discriminator: crypto 5m/15m/1h/4h/1d plus hit-price, sports game, economics rates, social weekly, weather daily-high/daily-low/event/seasonal, equities annual/monthly/daily/event/earnings/quarterly/valuation/comparison/leaderboard.
categorystring
Filter by category
subcategorystring
Filter by subcategory (BTC, NBA, FOMC, NYC, Elon, SPX, etc.)

Response

200401403404500

Successful Response

Code Snippet
curl -X GET "https://api.resolvedmarkets.com/v1/markets/history" \
  -H "X-API-Key: YOUR_API_KEY"
200
{
  "total_markets": 55816,
  "total_snapshots": 223752161,
  "live_count": 1,
  "closed_count": 55815,
  "markets": [
    {
      "crypto": "BTC",
      "timeframe": "5m",
      "market_id": "0x...",
      "category": "crypto",
      "subcategory": "BTC",
      "first_seen": "2026-03-01 10:00:00",
      "last_seen": "2026-03-02 15:30:00",
      "snapshot_count": "5400",
      "is_live": false,
      "end_date": "2026-03-02 15:30:00.000",
      "question": "Bitcoin Up or Down - March 2, 10:25AM-10:30AM ET"
    }
  ]
}
List Historical Markets — API Docs | Resolved Markets