Schema
ClearMarket normalizes the Kalshi and Polymarket universe into one reference-data schema: four tables, stable identifiers, a cross-venue link, and a per-market resolution-clarity grade.
This page is the human-readable companion to the machine-readable /schema.json manifest and the per-table JSON Schema files (draft 2020-12) linked below. The grading model lives on /methodology. Last updated 2026-06-09.
The schema is defined in code and generated to JSON Schema; those files are the authoritative field-level spec.
| Table | One row per | JSON Schema |
|---|---|---|
| events | A venue's bundle of one or more markets under a canonical question. Single-venue. | events.schema.json |
| markets | One venue listing (one contract), with grade, named resolution source, provenance, question_id and also_on. | markets.schema.json |
| marks | A price/volume observation for a market at a point in time (hourly). | marks.schema.json |
| resolution_log | A settlement outcome for a market (when + YES/NO/PENDING), price-derived. | resolution_log.schema.json |
Three identifiers, because they name three different things. The cross-venue link is the question_id, never the event — every event is single-venue.
market_id(CM-MKT-…) — one contract on one venue. The atomic unit.event_id(CM-EVT-…) — a venue's bundle of one or more markets under a canonical question. Single-venue; one event can hold many distinct questions (a price ladder, a basket).question_id— the venue-independent identity of the bet. Markets sharing aquestion_idare the same question across Kalshi and Polymarket, and across events within a venue.also_on— on each market, an array of{ venue, market_id, price }for the same question priced on other venues, ornullwhen it trades on only one. The only field that asserts a cross-venue twin.
The ids are deterministic and stable — they are the citation unit. Persist them and a claim stays traceable to its source. Full reasoning on the three grains is in methodology §5.
Every market carries a Resolution Clarity Grade (per market, not per event) and a source status. The full 7-factor model is on /methodology.
Resolution Clarity Grade
- A — objective trigger and a named, committed resolution source.
- B — minor ambiguity, or a source gestured at but not committed to.
- C — discretionary trigger, contested reality, or no committed source.
source_status
platform_named— the venue names a concrete, resolvable authority.no_committed_source— a source is gestured at but not committed to (a placeholder or illustrative example).no_source_stated— no resolution-source language at all.
Controlled values on the records, each published as a versioned, citable DefinedTermSet with its own canonical URL:
settlement_style— touch · terminal · relative · occurrencedirection— above · below · reach · between · occurrencearbitration_model— uma_oracle · kalshi_staff · polymarket_staff · platform_auto · determinations_committee · otherresolution_proposer— permissionless · managed_whitelist · platform_staff · gov_agencysource_type— gov_stat_agency · central_bank · regulated_data_vendor · media_consensus · court_filing · issuer_announcement · scheduled_event · subjective · otherfield_provenance— platform_api · clearmarket_editorial · derived · imputed · null_by_venue_limitationcategory— economics · financials · crypto · companies · technology · health · politics · geopolitics · climate
Every public record ships in parallel formats: an HTML page (with embedded JSON-LD Dataset markup), a machine-readable .json twin, and a row in /llms.txt.
- REST —
https://api.clearmarket.fyi(open, no key, 1,000 req/day per IP; free key lifts to 10,000). - MCP —
https://api.clearmarket.fyi/mcp(streamable HTTP, read-only). See API · MCP. - Machine schema — /schema.json · per-table JSON Schema files above.
- Repository — github.com/JDSource/clearmarket.
Schema definitions and identifiers are licensed CC-BY-4.0; the populated dataset is open and free with attribution required (cite ClearMarket, clearmarket.fyi). Every API and MCP record carries a _provenance field.