Kalshi API — Mapped Kalshi Data With Cross-Venue IDs
Kalshi API via matchwire: query Kalshi markets with same-event IDs matched to Polymarket International and Polymarket US. Docs and MCP included.
Kalshi data, mapped
This Kalshi API returns Kalshi markets with matchwire mapped event IDs attached. Each listing carries venue, marketId, type, side, tier, confidence and the ready-made request: the Kalshi ticker stays native and request is the exact Kalshi GET that market answers. Mapping only, no prices. History depth is not published yet.
Same event on Polymarket International and Polymarket US
Each mapped Kalshi market carries the shared ID joining it to the same event on Polymarket International and Polymarket US. See the Polymarket venues for the sibling view.
KXNFLGAME-26OCT02PITCLE, with request pointing at https://external-api.kalshi.com/trade-api/v2/markets/<ticker>.Endpoints you will use
Every call is one endpoint with comma lists as filters: 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. Narrow with venue=kalshi, type=winner,total,handicap, league=MLB, status=scheduled|live|ended and since=SEQ for changes only.
Code sample
curl -H "x-api-key: YOUR_KEY" \
"https://api.matchwire.win/api/v1/rows?venue=kalshi&sport=nfl&status=scheduled"
DIY Kalshi wiring vs matchwire
DIY against the raw Kalshi API means your own client, your own schema, and a manual Polymarket join you maintain. matchwire means one client and a shared mapped ID. Full compare: Prediction Market API.
FAQ
- Does this replace direct Kalshi access?
- It is a mapping layer over Kalshi data, not execution. Rate limit: 60 requests a minute per key, and the
/api/v1/pushstream is not limited, so poll?since=SEQfor deltas instead of pulling the full set on a timer. - Tickers vs mapped ID?
- The venue ticker stays native; the mapped ID joins venues. Its format is
ev:<sport>:<team-a>:<team-b>:<YYYY-MM-DD>. - Freshness?
- Rows carry a
seq; ask for?since=SEQand changed games come back whole, with deletions as tombstones. A freshness figure is not published yet. - Auth?
- Send your key as the
x-api-keyheader 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. - How do the Polymarket venues look?
- Same event ID on Polymarket API: International + US, with parent coverage on Prediction Market API.