KacDataDocs
Data Schemas

Markets catalog

A free Parquet file listing every Kalshi market KacData has recorded, with the UTC dates it has L2 data for.

The markets catalog is one Parquet file that lists the Kalshi markets KacData has recorded, and the UTC dates it has L2 data for each one. It needs no API key, uses no download quota and is updated once a day.

Use it to find a market's market_ticker and dates, then download the data with the API reference.

GEThttps://api.kacdata.com/v1/kalshi/markets.parquet

Schema

Columns are listed in file order.

#FieldTypeDescription
1exchangestringExchange: kalshi.
2event_tickerstringKalshi event ticker. One event can contain many markets.
3market_tickerstringKalshi market ticker. Use it as {market_ticker} in the API.
4record_starttimestamp (UTC)First UTC date KacData has L2 data for the market.
5record_endtimestamp (UTC)Last UTC date KacData has L2 data for the market. Updated daily while the market is still being recorded.
6market_starttimestamp (UTC)Market open time set by Kalshi.
7market_endtimestamp (UTC)Market close time set by Kalshi.
8titlestring | nullMarket question.
9event_titlestringEvent title.
10yes_sub_titlestring | nullKalshi's yes_sub_title. It is not an outcome name, and is usually the same as no_sub_title.
11no_sub_titlestring | nullKalshi's no_sub_title.
12seriesstringKalshi series ticker, e.g. KXBTC15M.
13categorystringKalshi category, e.g. Elections.

Dates

  • record_start and record_end are UTC dates, the same dates as in the download URL /{YYYY}/{MM}/{DD}/.
  • A date between record_start and record_end can still have no file. The API then returns 404 Not Found, which uses no download quota.

Example

Find markets in a series, then see which dates KacData recorded:

import pandas as pd

url = "https://api.kacdata.com/v1/kalshi/markets.parquet"
catalog = pd.read_parquet(url)

matches = catalog[catalog["series"] == "KXBTC15M"]

# Or search the market question
# matches = catalog[catalog["title"].str.contains("House", case=False, na=False)]

print(matches[["market_ticker", "title", "record_start", "record_end"]])

Then download a date in that range:

https://api.kacdata.com/v1/kalshi/l2/{YYYY}/{MM}/{DD}/{market_ticker}.parquet

The catalog covers L2. A market can have L2 on a day with no trades file; see API reference.

On this page