Skip to main content
Market data is one normalized plane across Kalshi and Polymarket: prices are probabilities in (0, 1), books are unified, and one mkt_ ID maps the same event on both venues.

Search markets

Discovery is search-driven. Pass a query (and optional limit):
Each result (MarketView) in the data array:

Read the orderbook

The orderbook gives you a tradable token_id (which outcome you’re buying) plus live depth:
The orderbook (OrderbookView) — bids and asks are {price, size} levels:

Prices and history

GET /v1/markets/{id}/prices returns a PricesView:
POST /v1/markets/match takes { "exchange": "kalshi", "exchange_market_id": "..." } and returns the unified mkt_ market, creating the mapping on first sight.
Market data today is served over REST. If you need the freshest book, poll the orderbook endpoint; the smart execution engine reads live depth for you when working an order.

Next: Guardrails

Set the limits every order is checked against before you place one.