Guide

Kalshi API: how to get real-time Kalshi data

20 June 2026 · 6 min read

If you want live Kalshi data — prices, order-book depth, market movers, or event contract flow — you have two paths: Kalshi's own APIs, or a layer that normalises and enriches them for you. This guide covers both honestly, so you can pick the right one for your use case.

Does Kalshi have an API?

Yes — Kalshi is a US, CFTC-regulated prediction-market exchange and it provides a documented API. There are two interfaces you'll use:

Both require authentication. You authenticate with an API key, and requests are signed — so there's a bit more setup than a purely open API. If you just need to read a market or place a trade, go straight to Kalshi's own API and documentation — you don't need anything else for that.

What's actually hard?

The API itself is the easy part. The harder work shows up when you try to turn raw data into something useful in production:

Reading Kalshi data directly (the quick version)

Once you have an API key, a basic authenticated REST call looks like this (exact endpoint paths may vary — check Kalshi's current documentation):

# Illustrative only — Kalshi authenticates with signed requests
# (an API key + a request signature), not a simple bearer token.
# See Kalshi's API docs for the exact signing scheme and endpoints.
GET https://trading-api.kalshi.com/trade-api/v2/markets?limit=5

That works fine for a script or a one-off read. It stops being the right approach when you need live streaming, normalised signals, and reliable resolution labels — which is where most serious builders end up.

The shortcut: a normalised intelligence layer

Idmon sits on top of the raw markets and gives you the part you'd otherwise build: normalised real-time signals (whale flow, movers, mispricing), calibrated resolution labels, and one schema across Kalshi and Polymarket — delivered by REST, WebSocket, or signed webhooks.

Because Kalshi is an off-exchange venue and not on-chain, Idmon's resolution labels for Kalshi markets are calibrated from multiple sources rather than anchored to a public ledger. You get the same trustworthy label format as for Polymarket, without building that sourcing yourself.

# recent signals across Kalshi and Polymarket, one authenticated call
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.idmon.io/api/alerts/recent?limit=20"

There are code examples in curl, Python, and Node, and the full API docs cover the WebSocket and webhook-signature details.

Which should you use?

If you…Use
Need to read a Kalshi market or place an orderKalshi's own REST API directly
Want live signals without building ingestion or auth plumbingIdmon (REST / WebSocket)
Want events pushed into Discord or your appIdmon (signed webhooks)
Need calibrated resolution + Kalshi and Polymarket in one schemaIdmon

There's no shame in starting with Kalshi's API directly — many builds do. You reach for a layer like Idmon when the auth setup, ingestion, signal derivation, and resolution work starts costing you more time than the data itself.

Try it free, no signup. Idmon's /public/* endpoints serve most of the data at 60 requests/min with no key — see the docs. When you want real-time push, headroom, calibrated resolution, and a commercial licence, request a key and you'll be live within a business day.

FAQ

Does Kalshi have an API?

Yes — Kalshi provides a REST API and a WebSocket API. Both require authentication with an API key. They're the right choice for reading markets or placing orders directly on the exchange, but they're lower-level: you build and maintain the pipeline, and they don't provide normalised signals or calibrated resolution labels.

How do I get real-time Kalshi market data?

Kalshi's WebSocket API streams live prices and order-book updates. You'll need to authenticate, manage reconnects, and parse the message format yourself. Alternatively, Idmon delivers normalised real-time signals across Kalshi and Polymarket by REST, WebSocket, or signed webhooks — without the plumbing work.

Is the Kalshi API free to use?

Kalshi's API is available to registered users and does not charge per call, though you must agree to their terms and authenticate. Idmon adds free public endpoints (60 requests/min, no signup) plus paid tiers for real-time push, higher limits, calibrated resolution, and a commercial licence.

Can I get Kalshi data alongside Polymarket data in one feed?

Not from either exchange directly — they use different schemas, auth systems, and message formats. Idmon normalises both into one schema and delivers them together by REST, WebSocket, or signed webhooks, so you don't have to maintain two separate pipelines.

Related: Polymarket API guide · Webhooks vs REST vs WebSocket · API documentation · Idmon overview