Skip to main content
All URIs are relative to https://api.elections.kalshi.com/trade-api/v2
MethodHTTP requestDescription
getEventGET /events/Get Event
getEventForecastPercentilesHistoryGET /series//events//forecast_percentile_historyGet Event Forecast Percentile History
getEventMetadataGET /events//metadataGet Event Metadata
getEventsGET /eventsGet Events
getMarketCandlesticksByEventGET /series//events//candlesticksGet Event Candlesticks
getMultivariateEventsGET /events/multivariateGet Multivariate Events

getEvent

GetEventResponse getEvent()
Endpoint for getting data about an event by its ticker. An event represents a real-world occurrence that can be traded on, such as an election, sports game, or economic indicator release. Events contain one or more markets where users can place trades on different outcomes. All events are accessible through this endpoint, even if their associated markets are older than the historical cutoff.

Parameters

NameTypeDescriptionNotes
eventTicker[string]Event tickerdefaults to undefined
withNestedMarkets[boolean]If true, markets are included within the event object. If false (default), markets are returned as a separate top-level field in the response. Historical markets settled before the historical cutoff will not be included.(optional) defaults to false

Return type

GetEventResponse

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Event retrieved successfully-
400Bad request-
404Event not found-
401Unauthorized-
500Internal server error-

getEventForecastPercentilesHistory

GetEventForecastPercentilesHistoryResponse getEventForecastPercentilesHistory()
Endpoint for getting the historical raw and formatted forecast numbers for an event at specific percentiles.

Parameters

NameTypeDescriptionNotes
ticker[string]The event tickerdefaults to undefined
seriesTicker[string]The series tickerdefaults to undefined
percentilesArray<number>Array of percentile values to retrieve (0-10000, max 10 values)defaults to undefined
startTs[number]Start timestamp for the rangedefaults to undefined
endTs[number]End timestamp for the rangedefaults to undefined
periodInterval[**01601440**]Array<0 | 1 | 60 | 1440>Specifies the length of each forecast period, in minutes. 0 for 5-second intervals, or 1, 60, or 1440 for minute-based intervals.defaults to undefined

Return type

GetEventForecastPercentilesHistoryResponse

Authorization

kalshiAccessSignature, kalshiAccessKey, kalshiAccessTimestamp

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Event forecast percentile history retrieved successfully-
400Bad request-
401Unauthorized-
500Internal server error-

getEventMetadata

GetEventMetadataResponse getEventMetadata()
Endpoint for getting metadata about an event by its ticker. Returns only the metadata information for an event.

Parameters

NameTypeDescriptionNotes
eventTicker[string]Event tickerdefaults to undefined

Return type

GetEventMetadataResponse

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Event metadata retrieved successfully-
400Bad request-
404Event not found-
401Unauthorized-
500Internal server error-

getEvents

GetEventsResponse getEvents()
Get all events. This endpoint excludes multivariate events. To retrieve multivariate events, use the GET /events/multivariate endpoint. All events are accessible through this endpoint, even if their associated markets are older than the historical cutoff.

Parameters

NameTypeDescriptionNotes
limit[number]Parameter to specify the number of results per page. Defaults to 200. Maximum value is 200.(optional) defaults to 200
cursor[string]Parameter to specify the pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.(optional) defaults to undefined
withNestedMarkets[boolean]Parameter to specify if nested markets should be included in the response. When true, each event will include a &#39;markets&#39; field containing a list of Market objects associated with that event. Historical markets settled before the historical cutoff will not be included.(optional) defaults to false
withMilestones[boolean]If true, includes related milestones as a field alongside events.(optional) defaults to false
status[**‘unopened''open''closed''settled’**]Array<‘unopened’ | ‘open’ | ‘closed’ | ‘settled’>Filter by event status. Possible values are &#39;unopened&#39;, &#39;open&#39;, &#39;closed&#39;, &#39;settled&#39;. Leave empty to return events with any status.(optional) defaults to undefined
seriesTicker[string]Filter by series ticker(optional) defaults to undefined
minCloseTs[number]Filter events with at least one market with close timestamp greater than this Unix timestamp (in seconds).(optional) defaults to undefined
minUpdatedTs[number]Filter events with metadata updated after this Unix timestamp (in seconds). Use this to efficiently poll for changes.(optional) defaults to undefined

Return type

GetEventsResponse

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Events retrieved successfully-
400Bad request-
401Unauthorized-
500Internal server error-

getMarketCandlesticksByEvent

GetEventCandlesticksResponse getMarketCandlesticksByEvent()
End-point for returning aggregated data across all markets corresponding to an event.

Parameters

NameTypeDescriptionNotes
ticker[string]The event tickerdefaults to undefined
seriesTicker[string]The series tickerdefaults to undefined
startTs[number]Start timestamp for the rangedefaults to undefined
endTs[number]End timestamp for the rangedefaults to undefined
periodInterval[**1601440**]Array<1 | 60 | 1440>Specifies the length of each candlestick period, in minutes. Must be one minute, one hour, or one day.defaults to undefined

Return type

GetEventCandlesticksResponse

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Event candlesticks retrieved successfully-
400Bad request-
401Unauthorized-
500Internal server error-

getMultivariateEvents

GetMultivariateEventsResponse getMultivariateEvents()
Retrieve multivariate (combo) events. These are dynamically created events from multivariate event collections. Supports filtering by series and collection ticker.

Parameters

NameTypeDescriptionNotes
limit[number]Number of results per page. Defaults to 100. Maximum value is 200.(optional) defaults to 100
cursor[string]Pagination cursor. Use the cursor value returned from the previous response to get the next page of results.(optional) defaults to undefined
seriesTicker[string]Filter by series ticker(optional) defaults to undefined
collectionTicker[string]Filter events by collection ticker. Returns only multivariate events belonging to the specified collection. Cannot be used together with series_ticker.(optional) defaults to undefined
withNestedMarkets[boolean]Parameter to specify if nested markets should be included in the response. When true, each event will include a &#39;markets&#39; field containing a list of Market objects associated with that event.(optional) defaults to false

Return type

GetMultivariateEventsResponse

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Multivariate events retrieved successfully-
400Bad request - invalid parameters-
401Unauthorized-
500Internal server error-