Skip to content
scrapeatlas.Dashboard

List Kalshi events

Try in Playground

List Kalshi events, the questions that group related markets, with title, category, series and settlement sources. Filter by series, tickers, status and close time, and set includeMarkets to embed each event’s markets. Page with cursor.

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

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

Query parameters
7
seriesstringquery

Optional series ticker.

ExampleKXHIGHNY
tickersstringquery

Optional comma-separated event tickers, at most 20.

max 2100 chars

statusenumquery

Optional: unopened, open, closed or settled.

one of: unopened, open, closed, settled

Exampleopen
closesAfternumber | stringquery

Only events with a market closing after this time, ISO 8601 or Unix seconds.

includeMarketsenumquery

true embeds each event’s markets in events[].markets. Default false.

one of: true, false

Exampletrue
cursorstringquery

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

limitstringquery

Events per page, 1–100; default 20.

Example5
Response fields
95
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, closed or settled.

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.

Events with Kalshi’s field names: event_ticker, series_ticker, title, sub_title, category, mutually_exclusive, strike_date, strike_period, settlement_sources and product_metadata.

up to 100 items

events.event_tickerstring

Always included.

events.series_tickerstring

Always included.

events.titlestring

Always included.

events.sub_titlestring

Always included.

events.categorystring

Always included.

events.collateral_return_typestring

Always included.

events.mutually_exclusiveboolean

Always included.

events.strike_datestringnullableoptional

Optional.

events.strike_periodstringnullableoptional

Optional.

Optional.

events.settlement_sources.namestring

Always included.

events.settlement_sources.urlstring

Always included.

events.product_metadataobjectnullableoptional

Optional.

events.last_updated_tsstringoptional

Optional.

events.exchange_indexintegeroptional

Optional.

With includeMarkets=true: the event’s markets, as described for the market endpoint.

up to 1000 items

events.markets.tickerstring

Always included.

events.markets.event_tickerstring

Always included.

events.markets.market_typestring

Always included.

events.markets.titlestringoptional

Optional.

events.markets.subtitlestringoptional

Optional.

events.markets.yes_sub_titlestring

Always included.

events.markets.no_sub_titlestring

Always included.

events.markets.created_timestring

Always included.

events.markets.updated_timestring

Always included.

events.markets.open_timestring

Always included.

events.markets.close_timestring

Always included.

events.markets.expected_expiration_timestringnullableoptional

Optional.

events.markets.expiration_timestringoptional

Optional.

events.markets.latest_expiration_timestring

Always included.

events.markets.settlement_timer_secondsinteger

Always included.

events.markets.statusstring

Always included.

events.markets.yes_bid_dollarsstring

Always included.

events.markets.yes_bid_size_fpstring

Always included.

events.markets.yes_ask_dollarsstring

Always included.

events.markets.yes_ask_size_fpstring

Always included.

events.markets.no_bid_dollarsstring

Always included.

events.markets.no_ask_dollarsstring

Always included.

events.markets.last_price_dollarsstring

Always included.

events.markets.volume_fpstring

Always included.

events.markets.volume_24h_fpstring

Always included.

events.markets.resultstring

Always included.

events.markets.can_close_earlyboolean

Always included.

events.markets.open_interest_fpstring

Always included.

events.markets.notional_value_dollarsstring

Always included.

events.markets.previous_yes_bid_dollarsstring

Always included.

events.markets.previous_yes_ask_dollarsstring

Always included.

events.markets.previous_price_dollarsstring

Always included.

events.markets.settlement_value_dollarsstringnullableoptional

Optional.

events.markets.settlement_tsstringnullableoptional

Optional.

events.markets.settlement_bounds_typestringoptional

Optional.

events.markets.settlement_floor_dollarsstringnullableoptional

Optional.

events.markets.expiration_valuestring

Always included.

events.markets.occurrence_datetimestringnullableoptional

Optional.

events.markets.fee_waiver_expiration_timestringnullableoptional

Optional.

events.markets.early_close_conditionstringnullableoptional

Optional.

events.markets.strike_typestringoptional

Optional.

events.markets.floor_strikenumbernullableoptional

Optional.

events.markets.cap_strikenumbernullableoptional

Optional.

events.markets.functional_strikestringnullableoptional

Optional.

events.markets.custom_strikeobjectnullableoptional

Optional.

events.markets.rules_primarystring

Always included.

events.markets.rules_secondarystring

Always included.

events.markets.mve_collection_tickerstringoptional

Optional.

Optional.

up to 100 items

events.markets.mve_selected_legs.event_tickerstringoptional

Optional.

events.markets.mve_selected_legs.market_tickerstringoptional

Optional.

events.markets.mve_selected_legs.sidestringoptional

Optional.

events.markets.primary_participant_keystringnullableoptional

Optional.

events.markets.price_level_structurestring

Always included.

Always included.

up to 50 items

events.markets.price_ranges.startstring

Always included.

events.markets.price_ranges.endstring

Always included.

events.markets.price_ranges.stepstring

Always included.

events.markets.is_provisionalbooleanoptional

Optional.

events.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.