Skip to content
scrapeatlas.Dashboard

Get Kalshi price history

Try in Playground

Get price candles for one Kalshi market, or for every market of an event in one call: traded price open, high, low, close and mean, Yes bid and ask, volume and open interest per minute, hour or day. Periods without trades carry only the previous price.

GET/v1/kalshi/price-historyx-api-key
x-api-keystringrequiredheader

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

Query parameters
5
tickerstringquery

Market ticker. Provide ticker or eventTicker.

ExampleKXWC-30-ESP
eventTickerstringquery

Event ticker: returns aligned candles for each market of the event.

intervalenumquery

1m, 1h (default) or 1d.

one of: 1m, 1h, 1d

Example1d
sincenumber | stringquery

Start time, ISO 8601 or Unix seconds. Defaults to 6 hours (1m), 7 days (1h) or 180 days (1d) before until.

untilnumber | stringquery

End time, ISO 8601 or Unix seconds; defaults to now. A market request covers at most 5,000 periods, an event request at most 500. Kalshi returns up to 5,000 candles per event read across all its markets; a longer event window keeps its latest periods and reports window_truncated.

Response fields
45
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.

order is oldest_first; window echoes since/until, or gives the period actually returned when an event window was shortened. complete is false with window_truncated or candle_limit when an event response was shortened.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

coverage.orderenum

Always included.

one of: newest_first, oldest_first, ranked, relevance, source_order

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

intervalenum

1m, 1h (default) or 1d.

one of: 1m, 1h, 1d

tickerstringoptional

Market ticker. Provide ticker or eventTicker.

eventTickerstringoptional

Event ticker: returns aligned candles for each market of the event.

archivedboolean

true when the market was read from Kalshi’s archive of settled markets.

adjusted_end_tsintegeroptional

For an event: the end time Kalshi applied, Unix seconds.

One entry per market: market_ticker and candlesticks, oldest first.

up to 1000 items

markets.market_tickerstring

Always included.

Candles: end_period_ts (Unix seconds), volume_fp, open_interest_fp, price (open/high/low/close/mean_dollars when traded, previous_dollars), yes_bid and yes_ask (open/high/low/close_dollars). Archived candles are returned in the same shape.

up to 5000 items

markets.candlesticks.end_period_tsinteger

Always included.

markets.candlesticks.open_interest_fpstringoptional

Optional.

markets.candlesticks.volume_fpstringoptional

Optional.

Always included.

markets.candlesticks.price.open_dollarsstringoptional

Optional.

markets.candlesticks.price.high_dollarsstringoptional

Optional.

markets.candlesticks.price.low_dollarsstringoptional

Optional.

markets.candlesticks.price.close_dollarsstringoptional

Optional.

markets.candlesticks.price.mean_dollarsstringoptional

Optional.

markets.candlesticks.price.previous_dollarsstringoptional

Optional.

Always included.

markets.candlesticks.yes_bid.open_dollarsstringoptional

Optional.

markets.candlesticks.yes_bid.high_dollarsstringoptional

Optional.

markets.candlesticks.yes_bid.low_dollarsstringoptional

Optional.

markets.candlesticks.yes_bid.close_dollarsstringoptional

Optional.

Always included.

markets.candlesticks.yes_ask.open_dollarsstringoptional

Optional.

markets.candlesticks.yes_ask.high_dollarsstringoptional

Optional.

markets.candlesticks.yes_ask.low_dollarsstringoptional

Optional.

markets.candlesticks.yes_ask.close_dollarsstringoptional

Optional.

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.