API + MCP
Open JSON over HTTPS, and a live MCP server for agents. ~3,860 events / ~39,200 markets across Kalshi and Polymarket, each with a Resolution Clarity Grade — the named resolution source where one is committed, and a graded source_status when it isn't. No key required.
Every event is single-venue; the same question priced on both venues is linked by a shared question_id, and each market's also_on lists its cross-venue twins. Prices refresh hourly (price_as_of on every market). Catalyst dates (CPI, FOMC, jobs, earnings) are joined per event. Read-only.
Machine-readable spec: api.clearmarket.fyi/openapi.json (OpenAPI 3.1) — the complete endpoint inventory for codegen and agents.
Open by default. Full universe, no key, 1,000 requests/day per IP. Drop your email for a free key and 10,000/day — issued instantly, no confirmation step:
Send it as Authorization: Bearer <key> or ?key=<key>. 10,000 requests/day, resets 00:00 UTC. Save it now — for your records; you can always request a new one.
Prefer the API? Request a key with curl
curl -s -X POST https://api.clearmarket.fyi/v1/keys \
-H 'content-type: application/json' \
-d '{"email":"[email protected]"}' Anonymous access works too — just omit the key. CORS open.
Query and filter the universe directly. Every response is the canonical schema with derived fields added at serve time.
limit caps at 100 per page — page through with offset.
curl -s 'https://api.clearmarket.fyi/v1/events?category=economics&grade=A&limit=5' \
| jq '.events[] | {slug, grade, question}' Full event: linked markets, grades, windowed catalysts. ?detail=concise trims each market to the essentials (grade, price, source) for large multi-market events.
curl -s https://api.clearmarket.fyi/v1/events/kxgdpyear-26 \
| jq '{question, catalyst_dates, markets: (.markets | length)}' Single market: price, Resolution Clarity Grade, resolution provenance.
Scheduled catalysts across all events, cross-event view.
curl -s 'https://api.clearmarket.fyi/v1/catalysts/upcoming?days=14' | jq '.catalysts' Bulk and incremental pull. Without since: the whole universe, 1,000 per page via next_cursor. With since (the as_of of your last pull): only markets whose price, volume or status changed after it. Every row carries two clocks: price_as_of (last price change) and last_checked_at (last seen in a live venue feed; null means not seen since the last reload, so treat the price as historical).
curl -s 'https://api.clearmarket.fyi/v1/marks?since=2026-09-17T13:00:00Z' | jq '.count, .marks[0]' Feed integrity. One object with an overall state (ok, degraded, stale) and a per-pipeline check for prices, daily history, status reconcile, sweep apply and the eligibility screen, each with as_of, age and threshold. Poll it before trusting a pull.
Largest day-over-day price moves on volume, across the open universe.
The CM Signal wire: cross-venue divergence, benchmark drift, news-cycle and volume-spike bulletins.
Reference spot prices (crypto) used by benchmark-drift signals.
Eligibility screens ship as site artifacts, not /v1 routes: HTML · JSON · CSV — join to the API on cm_market_id = market_id. Index at /screens/.
The agent-first surface. Same data, spoken as tools an agent calls directly. No HTML to crawl, no REST to compose. Streamable HTTP at https://api.clearmarket.fyi/mcp. Open, read-only.
Note: the endpoint is the path /mcp on the API domain — api.clearmarket.fyi/mcp, not an mcp. subdomain. POST JSON-RPC (application/json is enough; text/event-stream is only needed if you consume the SSE stream).
q)detail=concise trims each market to grade + price + source (much smaller for many-market events)CM-MKT-…), a venue-native id / Kalshi ticker, or a market URL (best-effort — Kalshi URLs resolve; Polymarket needs the conditionId) — returns the canonical CM-MKT-… idConnect your agent
One step on most platforms — the server is open, read-only, no auth, so there is nothing to configure beyond the URL.
Claude Code
claude mcp add clearmarket --transport http https://api.clearmarket.fyi/mcp Claude Desktop
Settings → Connectors → Add custom connector, then paste https://api.clearmarket.fyi/mcp.
ChatGPT
Turn on Developer Mode, then Settings → Apps → Create app and paste https://api.clearmarket.fyi/mcp.
Codex CLI
codex mcp add clearmarket --url https://api.clearmarket.fyi/mcp Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"clearmarket": { "url": "https://api.clearmarket.fyi/mcp" }
}
} Grok
In a chat: + → Add connector → Custom, then paste https://api.clearmarket.fyi/mcp.
Other platforms / stdio-only clients
Any MCP client that takes a remote URL works with https://api.clearmarket.fyi/mcp directly. Clients that only speak stdio can bridge via mcp-remote:
{
"mcpServers": {
"clearmarket": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.clearmarket.fyi/mcp"]
}
}
} Verify (raw JSON-RPC)
curl -s -X POST https://api.clearmarket.fyi/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
| jq '.result.tools[].name' A plain-text surface engineered for LLM context windows. Zero markup, token-optimized, enumerates every endpoint and tool.
JSON Schema (draft 2020-12). API responses are the schema with derived fields added at serve time.
Repository: github.com/JDSource/clearmarket