Resolved Markets logoResolved Markets logo
Showcase

See What's Possible with
Multi-Category Orderbook Data

High-frequency capture of prediction market microstructure across crypto, sports, economics, and weather. Full bid/ask depth, millisecond timestamps, and cross-category coverage — data that doesn't exist anywhere else.

API Reference
—Live Markets
—Snapshots
6Categories
51Cities
Use Cases

What you can build

Six ways teams turn high-fidelity prediction market data into research, signals, and automated agents.

Market Making Simulation

Backtest market-making strategies across crypto, sports, and weather prediction markets with orderbook data at up to 10 Hz per crypto book

Learn more

Sports Odds Analytics

Track live NBA, NFL, EPL, and FIFA World Cup game outcome probabilities. Analyze how odds shift as events approach

Learn more

Weather Derivatives

Monitor daily temperature prediction markets across 51 cities. Build weather-based trading models with historical orderbook depth

Learn more

Economic Indicator Forecasting

Track FOMC decision probabilities and nonfarm payroll predictions. Capture market sentiment before data releases

Learn more

AI Agent Research

Feed live prediction market data to AI agents via MCP. Enable autonomous research across crypto, sports, and macro markets

Learn more

Cross-Category Arbitrage

Detect mispricing across 114+ markets spanning 4 categories. Analyze spread patterns and liquidity dynamics

Learn more
Data Quality

Why Data Fidelity Matters

Category-appropriate capture rates, sent to ClickHouse in batches every 2 seconds.

100ms
Crypto Capture
Up to 10 Hz per book
500ms
Sports Capture
Up to 2 Hz per book
2s
Economics Capture
Indicator markets
2-5s
Weather Capture
51 cities tracked
2s
Batch Interval
Snapshots sent to ClickHouse

Event-Driven Capture vs Polling

Traditional data providers poll APIs at fixed intervals (1s, 5s, 30s), missing critical microstructure events between samples. Our pipeline reads WebSocket event streams and stores a snapshot when the book changes: up to 10 Hz for each crypto up/down order book (one every 100ms), up to 2 Hz for sports and up to 0.5 Hz for economic indicators. The writer sends the snapshots to ClickHouse in batches: every 2 seconds, or sooner when 800 rows are waiting. ClickHouse buffers each batch and makes it queryable up to about 30 seconds later.

MCP Integration

AI Agents Meet Orderbook Data

Connect Claude, GPT, or custom agents to live market state over the Model Context Protocol.

Claude + Orderbook MCP
You

What are the current NBA championship odds and NYC weather market?

Claude
Tool Call
{
  "tool": "list_markets",
  "params": {
    "category": ["sports", "weather"],
    "filter": "NBA championship, NYC temperature"
  }
}

I found 6 active NBA championship markets and 1 NYC daily temperature market. NBA Championship: The current frontrunner shows bid 0.32 / ask 0.34 with deep liquidity (18,500 contracts on the bid side). Three other teams are trading between 0.08-0.15. NYC Weather: The "above 72F" outcome for today is at mid price 0.61, with a tight spread of 0.02. Weather markets typically see increased volume closer to settlement time (6 PM ET).

claude_desktop_config.json
{
  "mcpServers": {
    "polymarket-orderbook": {
      "command": "node",
      "args": ["mcp-server/index.js"],
      "env": {
        "API_KEY": "rm_your_key",
        "API_URL": "https://api.resolvedmarkets.com"
      }
    }
  }
}
Quick Start

Three steps to live data

From signup to a live orderbook stream in your application — no boilerplate.

1

Get Your API Key

Sign up and generate an API key from the dashboard. Free tier available.

Navigate to /api-keys and click "Generate Key"
2

Make Your First Request

Query live markets with a single HTTP request.

curl -H "X-API-Key: rm_your_key" \
  https://api.resolvedmarkets.com/v1/markets/live
3

Stream Live Data

Connect via WebSocket for the live orderbooks of one coin, sent every 2 seconds.

const ws = new WebSocket(
  "wss://api.resolvedmarkets.com/ws/orderbook"
);
ws.onopen = () => ws.send(JSON.stringify(
  { type: "auth", apiKey: "rm_your_key" }));
ws.onmessage = (e) => {
  const msg = JSON.parse(e.data);
  if (msg.type === "auth") ws.send(JSON.stringify(
    { type: "subscribe", crypto: "BTC" }));
  if (msg.type === "orderbook")
    for (const m of msg.markets)
      console.log(m.timeframe, m.up?.bestBid);
};

Ready to Get Started?

Access prediction market orderbook data across every category at a resolution nobody else offers.