Skip to content
scrapeatlas.Dashboard

Get a Kalshi order book

Try in Playground

Get the order book of a Kalshi market: resting Yes and No bids by price with their sizes, plus the best bid and ask on each side. Kalshi books hold bids only; a Yes ask is one dollar minus the best No bid.

GET/v1/kalshi/orderbookx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
tickerstringrequiredquery

Market ticker.

ExampleKXWC-30-ESP
depthstringquery

Price levels per side, 1–100; 0 or omitted returns every level.

Example10
Response fields
21
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Kalshi public API URL the data was read from.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

complete is false when a warning names an omission. order states the record order.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

tickerstring

Market ticker.

Kalshi’s book: yes_dollars and no_dollars, each a list of [price in dollars, size in contracts] bids in ascending price order, so the best bid is last. Empty lists when no bids rest.

orderbook_fp.yes_dollarsstring[][]

Always included.

up to 10000 items

orderbook_fp.no_dollarsstring[][]

Always included.

up to 10000 items

bestYesBidDollarsstringnullable

Highest Yes bid, or null when there is none.

bestYesAskDollarsstringnullable

Lowest Yes ask (1 minus the highest No bid), or null.

bestNoBidDollarsstringnullable

Highest No bid, or null.

bestNoAskDollarsstringnullable

Lowest No ask (1 minus the highest Yes bid), or null.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
11
HTTPfailure.codeMeaning
200partialUsable data with market_limit, metadata_unavailable, candle_limit, window_truncated, comment_limit or metrics_unavailable warnings.
400invalid_requestMissing, duplicate, malformed or unsupported parameters, a link outside kalshi.com/markets, a price-history window above its period limit, or parameters Kalshi rejected.
401unauthorizedMissing or invalid worker API key.
404not_foundUnknown market, event, series, post or trader.
429upstream_rate_limitedKalshi rate limited the request.
502upstream_challengedKalshi refused the public request.
502unsupported_pageMalformed, mismatched or non-JSON source data.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots and the waiting queue are occupied.
504timeoutTotal request deadline expired.