Kalshi + Polymarket · one schema

One API for every prediction market.

Markets, prices, and cross-venue arbitrage candidates from Kalshi and Polymarket — normalized into a single clean schema. REST or MCP.

Independent, developer-first — built after Polymarket absorbed the only cross-platform feed.

Three endpoints, both venues

List markets

GET /markets

Search & filter open markets across both venues with one consistent shape.

Market detail

GET /markets/{venue}/{id}

Full normalized detail: outcomes, prices, volume, close time, status.

Matching markets

GET /matching-markets

Same real-world event on both venues, with the price spread — your arbitrage radar.

# the whole point, in one call
curl https://api.bellwether.markets/matching-markets

# → [{ event, kalshi:{yes:0.62}, polymarket:{yes:0.58}, spread:0.04 }, ...]

Why Bellwether

The fragmentation tax

Kalshi speaks RSA-signed REST; Polymarket speaks on-chain CLOB with a Polygon wallet. Two auth models, two schemas, two sets of edge cases. We normalize all of it.

Cross-venue is the use case

The reason to build on a unified feed is the same contract priced differently on each venue. We surface those matches and spreads directly — no stitching required.

Open lane

The one YC-backed cross-platform API was acquired and pulled in-house in early 2026. Independent builders need a feed that stays independent.

REST and MCP

Same data as plain JSON for your app, or as native MCP tools so an AI agent can query markets and spreads directly.

Pricing

Free

$0
  • 120 requests / hour
  • Both venues, every endpoint
  • Radar + MCP access
Read the docs

Dev

$49/mo
  • API key — no hourly limit
  • Cross-venue matching
  • Email support
Subscribe

Pro

$199/mo
  • Everything in Dev
  • Priority support
  • Early access to new venues
Subscribe

After subscribing, your API key is emailed within 24h. Send it as the X-API-Key header.

Use it from your AI (MCP)

Bellwether is a remote MCP server — Claude and other AI agents can query markets and cross-venue spreads directly. One line, no install:

# Claude Code
claude mcp add --transport http bellwether https://api.bellwether.markets/mcp

# tools exposed: list_markets · get_market · matching_markets

Start

# run locally
pip install -r requirements.txt
uvicorn bellwether.api:app --reload

# or as an MCP server
python -m bellwether.mcp_server
Public market data — no account needed for Polymarket reads. See the repo README to run it.