Resolved Markets logoResolved Markets logo

For AI agents: the documentation index is at /llms.txt. This page is also available as Markdown at /docs/endpoints/get-market-metadata.md, or send Accept: text/markdown.

GET/v1/markets/metadata

Get Market Metadata

Durable descriptive metadata, including for CLOSED markets: question, end_date, slug, event_title and neg_risk_id. Once a market resolves the row also carries its SETTLED RESULT: `resolution_status` (resolved/unresolved), `resolved_outcome` (the WINNING outcome label, e.g. "Up"/"Yes"/"No"), `outcome_prices` (settled prices aligned to `outcomes` — ["1","0"] means outcomes[0] won) and `resolved_at`. Note `outcomes` is the list of CHOICES; `resolved_outcome` is which one won. `neg_risk_id` is the key shared by every leg of one event — the three legs of a football fixture (TeamA / TeamB / Draw), the temperature buckets of one weather event, the strike ladder of one equities event — so you can reassemble an event long after it settled. For sports, `end_date` is the scheduled KICKOFF, which anchors in-game time windows. Pass group_by_event=true to get one row per event with its legs nested.

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)).
market_idstring
One or more conditionIds (repeat the param, or comma-separate)
neg_risk_idstring
Return every leg of one event (the match/event key)
slugstring
Exact market slug
categorystring
Filter by category (crypto, sports, weather, equities, …)
subcategorystring
Filter by subcategory
cryptostring
Filter by coin (crypto markets)
timeframestring
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.
resolution_statusstring
Only settled (resolved) or still-open (unresolved) markets
group_by_eventboolean
Group legs under their event via neg_risk_id
limitinteger
Max rows (1–1000, default 100)

Response

200401403404500

Successful Response

Code Snippet
curl -X GET "https://api.resolvedmarkets.com/v1/markets/metadata" \
  -H "X-API-Key: YOUR_API_KEY"
200
{
  "count": 1,
  "events": [
    {
      "neg_risk_id": "0x6dfb9f38...",
      "event_title": "France vs. Spain",
      "slug": "fifwc-fra-esp-2026-07-14",
      "category": "sports",
      "subcategory": "FIFA",
      "end_date": "2026-07-14 19:00:00.000",
      "legs": [
        { "market_id": "0x20fac1c9...", "label": "France", "question": "Will France win on 2026-07-14?",
          "outcomes": ["Yes", "No"], "token_ids": ["6982...", "1198..."],
          "resolution_status": "resolved", "resolved_outcome": "Yes",
          "outcome_prices": ["1", "0"], "resolved_at": "2026-07-14 21:04:11.000" },
        { "market_id": "0xaa23528a...", "label": "Spain", "question": "Will Spain win on 2026-07-14?",
          "outcomes": ["Yes", "No"], "token_ids": ["8827...", "3341..."],
          "resolution_status": "resolved", "resolved_outcome": "No",
          "outcome_prices": ["0", "1"], "resolved_at": "2026-07-14 21:04:11.000" },
        { "market_id": "0x3b9204e0...", "label": "Draw (France vs. Spain)", "question": "Will France vs. Spain end in a draw?",
          "outcomes": ["Yes", "No"], "token_ids": ["5510...", "9925..."],
          "resolution_status": "resolved", "resolved_outcome": "No",
          "outcome_prices": ["0", "1"], "resolved_at": "2026-07-14 21:04:11.000" }
      ]
    }
  ]
}
Get Market Metadata — API Docs | Resolved Markets