Prediction Market API: one API for Polymarket International, Polymarket US, Kalshi, and PredictFun

One prediction market API with the same events matched across Polymarket International, Polymarket US, Kalshi, and PredictFun. Docs, mapping, and MCP included.

One call, every venue

This prediction market API covers Polymarket International, Polymarket US, Kalshi, and PredictFun. Query once, get venue-native fields plus a shared mapped event ID. One endpoint serves it all: GET /api/v1/rows, GET /api/v1/rows?since=SEQ, GET /api/v1/sports, GET /api/v1/status, GET /api/v1/push and GET /health.

Same markets, matched

The same real-world event lists differently on each book. matchwire returns one mapped event ID tying the venue markets together.

Worked exampleOne game is one row, keyed ev:ncaaf:alabama:south-carolina:2026-09-26, with each venue's own market ID attached as a listing and request giving the exact call that venue answers.

Coverage

Polymarket International and Polymarket US via Polymarket API, Kalshi via Kalshi API. Every response carries a seq, so ?since=SEQ returns what changed. Refresh rates and coverage depth are not published as figures yet. The rate limit is 60 requests a minute per key; the /api/v1/push stream is not limited.

PredictFun

PredictFun is covered here rather than on a page of its own, with the same mapped event IDs attached. It is served like every other venue (venue, marketId, type, side, tier, confidence and the ready-made request); its own request needs your Predict.fun key, which the listing states. A key's plan sets which venues and sports it may read, and asking outside it returns a 403 naming what is allowed.

What you can build

Trading bots, research screens, cross-venue odds comparison. Read prices from the venue with the listing's request, never from matchwire. Latency figures and history depth are not published yet.

Code sample

curl -H "x-api-key: YOUR_KEY" \
  "https://api.matchwire.win/api/v1/rows?sport=nfl&status=scheduled"

matchwire vs wiring multiple APIs yourself

DIY against the raw Polymarket International API or the raw Kalshi API means N clients, N schemas, manual joins. matchwire means one client and one mapped ID.

FAQ

Which venues?
Polymarket International, Polymarket US, Kalshi, PredictFun. Polymarket International and Polymarket US share one page here; PredictFun has no standalone page yet.
What is the mapped ID?
The shared key joining the same event across venues. Its format is ev:<sport>:<team-a>:<team-b>:<YYYY-MM-DD>.
Freshness?
Responses are served stale-while-revalidate and every one carries a seq. A latency figure is not published yet.
Auth?
Send your key as the x-api-key header on every call. Your key's plan decides which venues and sports it may read. Asking for anything outside it returns a 403 that names what is not allowed.
Agents?
Yes. See MCP and llms.txt.