Kalshi Data API

Kalshi API for Pre-Match & Live Sports Odds

Access sports odds from Kalshi, the CFTC-regulated US prediction market exchange, across 15 sports. Market-driven prices with last trade, best bid/ask, open interest, and liquidity per selection — normalized markets, paginated REST endpoints, a 30-day results archive, and a real-time WebSocket feed. One API key for all bookmakers.

What a Kalshi API Response Looks Like

GET /api/kalshi/soccer/events?page=1&limit=5
{
  "total": 1053,
  "page": 1,
  "limit": 5,
  "totalPages": 211,
  "hasNextPage": true,
  "events": [
    {
      "sport": "soccer",
      "league": "English Premier League",
      "eventId": "soccer|26AUG24FULCFC",
      "home": "Fulham",
      "away": "Chelsea",
      "live": false,
      "startTime": "2026-08-24T19:00:00.000Z",
      "endTime": "2026-08-24T22:00:00.000Z",
      "openInterest": 100848.62,
      "liquidity": 0,
      "markets": [
        {
          "canonicalMarket": "MATCH_RESULT",
          "rawName": "Match Result",
          "period": "FULL_TIME",
          "isActive": true,
          "marketTicker": "ml_soccer|26AUG24FULCFC",
          "openInterest": 96620.52,
          "selections": [
            {
              "canonicalOutcome": "HOME",
              "rawName": "Fulham",
              "odds": 2.33,
              "lastPrice": 0.43,
              "bestBid": 0.37,
              "bestAsk": 0.43,
              "isActive": true
            },
            {
              "canonicalOutcome": "DRAW",
              "rawName": "Draw",
              "odds": 4.0,
              "lastPrice": 0.25,
              "bestBid": 0.24,
              "bestAsk": 0.25,
              "isActive": true
            },
            {
              "canonicalOutcome": "AWAY",
              "rawName": "Chelsea",
              "odds": 1.64,
              "lastPrice": 0.61,
              "bestBid": 0.55,
              "bestAsk": 0.61,
              "isActive": true
            }
          ]
        }
      ]
    }
  ]
}

Why Use PulseScore for Kalshi Data

15 Sports Priced by a Real Market

Pre-match odds from Kalshi across 15 sports — Soccer, Tennis, Cricket, American Football, Esports, and more, including niche verticals like Darts, Lacrosse, and Australian Rules. Every price comes from real traders putting money on the line on a regulated exchange, not a bookmaker's margin.

Order-Book Signal: Last Price, Bid/Ask & Open Interest

Each selection carries decimal odds derived from the last traded price plus the current best bid and best ask. Markets and events include open interest and available liquidity — signal you simply cannot get from a classic sportsbook feed.

Live Events + WebSocket Streaming

In-play events via REST and a real-time WebSocket push, broadcast roughly every second for the chosen sport. WebSocket streaming is available on PRO, MAX, and ULTRA plans — connect once and receive each update as it happens.

30-Day Results Archive

Query finished events from the last 30 days — filter by sport, league, or team (exact name, case-insensitive). Kalshi settles outcomes on-exchange, so results carry the event metadata and final open interest of each contract.

Canonical Markets, Zero Mapping

All markets use canonical naming (MATCH_RESULT, OVER_UNDER) with explicit periods, alongside the raw Kalshi market ticker for on-exchange cross-referencing. The same structure is used across all sports and bookmakers, so there are no mapping headaches.

One Key, All Bookmakers

A single API key unlocks every odds source included in your plan — Kalshi, Polymarket, Bet365, Betfair, BetOnline, and more. Compare regulated prediction-market prices against classic bookmaker odds with no separate accounts or rotation logic.

Frequently Asked Questions

What data does the Kalshi API provide?

PulseScore provides pre-match and live sports odds from Kalshi, the CFTC-regulated US prediction market exchange, across 15 sports. Each event includes normalized market data with canonical market types, selections with decimal odds, last traded price, best bid/ask, and per-market open interest and liquidity. Finished events are also stored as results for 30 days.

How do Kalshi odds differ from bookmaker odds?

Kalshi is a regulated exchange where traders buy and sell yes/no contracts on event outcomes, so prices are set by the market, not by a bookmaker. The decimal odds are derived from the last traded price (odds = 1 / price), and each selection also exposes the current best bid and best ask so you can see the spread. Open interest and liquidity fields tell you how much conviction is behind a price.

What sports are covered?

The 15 sports Kalshi publishes markets for: Soccer, Basketball, Tennis, Table Tennis, Cricket, American Football, Australian Rules, Baseball, Boxing, Darts, Esports, Golf, Lacrosse, MMA, and Rugby Union. Each sport exposes /leagues, /leagues/:league/events, /events (paginated), and /events/:eventId.

How are leagues handled?

Kalshi has no separate league feed, so /api/kalshi/<sport>/leagues derives the league list (with event counts) from the current events on the fly. Use /leagues/:league/events to pull all events for one league by name.

How are the markets structured?

All markets use a canonical format: each market has a type (e.g., MATCH_RESULT, OVER_UNDER), period (FULL_TIME), and selections with decimal odds, last traded price, and best bid/ask. Markets also carry their Kalshi market ticker, so you can cross-reference the contract on the exchange. The same canonical structure is used across all sports and bookmakers.

Does the Kalshi API support live in-play data?

Yes. Live in-play events are available via REST (/api/kalshi/live-events, /live-events/sports, /live-events/events/:eventId) and via WebSocket at wss://api.pulsescore.net/api/kalshi/ws/live. The WebSocket pushes every in-play event for the subscribed sport roughly every second. PRO, MAX, and ULTRA plans only.

Does the API include historical results?

Yes. Finished events are retained for 30 days and served from /api/kalshi/results, with optional sport, league, and team filters (exact names, case-insensitive) plus /results/sports and /results/events/:eventId. Kalshi settles outcomes on-exchange, so results carry the event metadata and final open interest rather than a score.

Is there a free tier?

Yes. The BASIC plan is free and includes 500 API requests per month. Upgrade to PRO, MAX, or ULTRA for unlimited requests.

Can I access Kalshi alongside other bookmakers with the same API key?

Yes. A single API key gives you access to every odds source included in your plan — Kalshi, Polymarket, Bet365, Betfair Sportsbook, BetOnline, and more. That makes bookmaker-vs-prediction-market comparisons trivial. No need for separate keys or accounts.

Start Using the Kalshi API Today

Free tier available. No credit card required. Get your API key in 30 seconds.