Skip to content
scrapeatlas.Dashboard

List Kalshi markets

Try in Playground

List Kalshi markets with prices, volume and settlement fields. Filter by event, series, tickers, status and close time. Auto-generated combo markets are excluded unless you set combos to include or only. Page with cursor.

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

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

Query parameters
9
eventstringquery

Optional event ticker, for example KXHIGHNY-26OCT13.

seriesstringquery

Optional series ticker, for example KXHIGHNY.

ExampleKXHIGHNY
tickersstringquery

Optional comma-separated market tickers, at most 20.

max 2100 chars

statusenumquery

Optional: unopened, open, paused, closed or settled. Records report Kalshi’s own status names (open returns active, settled returns finalized).

one of: unopened, open, paused, closed, settled

Exampleopen
closesAfternumber | stringquery

Only markets closing after this time, ISO 8601 or Unix seconds.

closesBeforenumber | stringquery

Only markets closing before this time, ISO 8601 or Unix seconds; later than closesAfter.

combosenumquery

exclude (default) leaves out auto-generated combo markets, include returns every market, only returns combo markets only.

one of: exclude, include, only

cursorstringquery

Optional cursor from the previous response’s nextCursor. Omit for the first page.

limitstringquery

Markets per page, 1–200; default 50.

Example20
Response fields
79
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

Optional: unopened, open, paused, closed or settled. Records report Kalshi’s own status names (open returns active, settled returns finalized).

one of: success, partial

sourceUrlstring

Kalshi public API URL the data was read from.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

order is source_order. 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.

coverage.orderenum

Always included.

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

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

Markets with Kalshi’s field names, as described for the market endpoint.

up to 200 items

markets.tickerstring

Always included.

markets.event_tickerstring

Always included.

markets.market_typestring

Always included.

markets.titlestringoptional

Optional.

markets.subtitlestringoptional

Optional.

markets.yes_sub_titlestring

Always included.

markets.no_sub_titlestring

Always included.

markets.created_timestring

Always included.

markets.updated_timestring

Always included.

markets.open_timestring

Always included.

markets.close_timestring

Always included.

markets.expected_expiration_timestringnullableoptional

Optional.

markets.expiration_timestringoptional

Optional.

markets.latest_expiration_timestring

Always included.

markets.settlement_timer_secondsinteger

Always included.

markets.statusstring

initialized, inactive, active, closed, determined, disputed, amended or finalized. Filter names differ: open returns active, settled returns finalized.

markets.yes_bid_dollarsstring

Always included.

markets.yes_bid_size_fpstring

Always included.

markets.yes_ask_dollarsstring

Always included.

markets.yes_ask_size_fpstring

Always included.

markets.no_bid_dollarsstring

Always included.

markets.no_ask_dollarsstring

Always included.

markets.last_price_dollarsstring

Always included.

markets.volume_fpstring

Always included.

markets.volume_24h_fpstring

Always included.

markets.resultstring

Always included.

markets.can_close_earlyboolean

Always included.

markets.open_interest_fpstring

Always included.

markets.notional_value_dollarsstring

Always included.

markets.previous_yes_bid_dollarsstring

Always included.

markets.previous_yes_ask_dollarsstring

Always included.

markets.previous_price_dollarsstring

Always included.

markets.settlement_value_dollarsstringnullableoptional

Optional.

markets.settlement_tsstringnullableoptional

Optional.

markets.settlement_bounds_typestringoptional

Optional.

markets.settlement_floor_dollarsstringnullableoptional

Optional.

markets.expiration_valuestring

Always included.

markets.occurrence_datetimestringnullableoptional

Optional.

markets.fee_waiver_expiration_timestringnullableoptional

Optional.

markets.early_close_conditionstringnullableoptional

Optional.

markets.strike_typestringoptional

Optional.

markets.floor_strikenumbernullableoptional

Optional.

markets.cap_strikenumbernullableoptional

Optional.

markets.functional_strikestringnullableoptional

Optional.

markets.custom_strikeobjectnullableoptional

Optional.

markets.rules_primarystring

Always included.

markets.rules_secondarystring

Always included.

markets.mve_collection_tickerstringoptional

Optional.

Optional.

up to 100 items

markets.mve_selected_legs.event_tickerstringoptional

Optional.

markets.mve_selected_legs.market_tickerstringoptional

Optional.

markets.mve_selected_legs.sidestringoptional

Optional.

markets.primary_participant_keystringnullableoptional

Optional.

markets.price_level_structurestring

Always included.

Always included.

up to 50 items

markets.price_ranges.startstring

Always included.

markets.price_ranges.endstring

Always included.

markets.price_ranges.stepstring

Always included.

markets.is_provisionalbooleanoptional

Optional.

markets.exchange_indexintegeroptional

Optional.

nextCursorstringnullable

Cursor for the next page, or null on the last page. Pass it back as cursor.

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.