Kalshi Settlement Calendar & Order Book Depth avatar

Kalshi Settlement Calendar & Order Book Depth

Pricing

Pay per event

Go to Apify Store
Kalshi Settlement Calendar & Order Book Depth

Kalshi Settlement Calendar & Order Book Depth

Kalshi markets ranked by when they settle, with the order book depth, spread and settlement source of each one.

Pricing

Pay per event

Rating

0.0

(0)

Developer

datagrit

datagrit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

What does Kalshi Settlement Calendar & Order Book Depth do?

It lists the open Kalshi prediction markets that are expected to settle inside a time window you choose, for example the next 24 hours, and returns one flat row per market: expected settlement time, hours to settle, the sources Kalshi settles on, YES bid, ask and spread, 24-hour volume, open interest and the contracts resting near the best bid and ask. It is built for traders, quants and bot builders who want a settlement calendar with liquidity attached, not a dump of every market. Export the rows as JSON, CSV or Excel, call the Actor through the Apify API, or plug it into n8n, Make and AI agents through MCP.

What can you use the Kalshi settlement calendar for?

  • Settlement-day trading. See every market that settles tonight or this week, sorted by the soonest expected settlement, and skip the ones nobody quotes.
  • Liquidity screening. Filter by minimum 24h volume, minimum open interest and maximum spread in cents, then check how many contracts sit within a few cents of the best bid and ask before you size an order.
  • Resolution-source research. Every row carries the settlement sources of its series, with links, so you can group markets by the data feed that decides them.
  • Alerts and dashboards. Schedule the Actor every hour and feed a spreadsheet, a Slack bot or a trading script with the next markets to settle.
  • Overdue markets. Set the lower bound of the window below zero to also list markets whose expected settlement time has passed but which have not settled yet.

How to use the Kalshi order book and settlement filters

  1. Set Settles within (hours) to the horizon you care about. The default is 24.
  2. Optionally narrow the scope by category (Sports, Crypto, Financials, Politics, Economics, Transportation and others; a series Kalshi lists under several categories is kept when any of them matches), by series ticker or by words in the market title. Naming series is much faster than scanning the whole exchange.
  3. Add liquidity filters: minimum 24h volume, minimum open interest, maximum spread. By default only markets quoted on both sides are listed.
  4. Choose how to sort and how many markets to return, then run.

Order book depth

When Include order book depth is on, the Actor reads the order book of every returned market. yesBidDepth is the number of contracts resting within the depth window below the best YES bid, and yesAskDepth is the number of contracts you can buy within the window above the best YES ask. The window width is set in cents. The levels and totals cover the whole book. Turn the option off for a faster run without depth.

Example output

tickertitlecategoryexpectedSettlementTimehoursToSettleyesBidyesAskspreadCentsvolume24hyesBidDepthyesAskDepth
KXBTCD-26OCT0117-T83249.99Bitcoin price on Oct 1, 2026?Crypto2026-10-01T21:00:00.000Z18.260.580.59129185.2316839.0119022.45
{
"found": true,
"ticker": "KXBTCD-26OCT0117-T83249.99",
"eventTicker": "KXBTCD-26OCT0117",
"seriesTicker": "KXBTCD",
"category": "Crypto",
"title": "Bitcoin price on Oct 1, 2026?",
"expectedSettlementTime": "2026-10-01T21:00:00.000Z",
"hoursToSettle": 18.26,
"settlementSources": "CF Benchmarks",
"yesBid": 0.58,
"yesAsk": 0.59,
"midPrice": 0.585,
"spreadCents": 1,
"volume24h": 29185.23,
"openInterest": 17101.47,
"yesBidDepth": 16839.01,
"yesAskDepth": 19022.45,
"depthWindowCents": 5,
"sourceUrl": "https://api.elections.kalshi.com/trade-api/v2/markets/KXBTCD-26OCT0117-T83249.99",
"scrapedAt": "2026-10-01T02:44:42.436Z"
}

Prices are in dollars, so 0.58 is 58 cents and reads as a 58% implied probability. Volume, open interest and depth are counted in contracts.

How much does it cost?

You pay a small fee per run and a price per market returned, lower on paid Apify plans. Rows that only report that nothing matched are not billed and neither are duplicates. Set a maximum spend on the run and the Actor stops when it is reached. A run without named series scans the whole exchange catalog, which takes about a minute and a half; naming series or categories shortens it.

Input

  • Settles within (hours) and Settles after (hours) – the settlement window, counted from the start of the run. A negative lower bound includes overdue markets.
  • Categories, Series tickers, Title keywords – optional scope filters.
  • Minimum 24h volume, Minimum open interest, Only two-sided quotes, Maximum spread (cents) – liquidity filters.
  • Sort by – soonest settlement, highest 24h volume, highest open interest or tightest spread.
  • Include order book depth and Depth window (cents) – depth fields and the width of the window.
  • Include rules text – adds the primary and secondary rules of every market.
  • Maximum results – total limit of returned markets.
  • Proxy configuration – optional; the Kalshi public API does not need one.

Output fields

Each row contains the identifiers (ticker, eventTicker, seriesTicker), the series description (seriesTitle, category, categories, frequency; categories lists every category the series is listed under, the same membership the category filter uses), title and outcome, the timing fields (expectedSettlementTime, hoursToSettle, closeTime, latestSettlementTime, settlementTimerSeconds, canCloseEarly), the settlement sources and their URLs, the quotes (yesBid, yesAsk, noBid, noAsk, lastPrice, midPrice, spreadCents, sizes), the activity fields (volume, volume24h, openInterest), the depth fields, optional rules text, sourceUrl and scrapedAt. Fields the source does not publish are null. When no market matches you get one row with found: false, and the run status says why: the series has no open markets right now, nothing settles inside the window, the liquidity and keyword filters removed every market in the window, or Kalshi returned only combination or not-open markets. A source that stops applying its own filters (combination markets or markets that are not active in more than 1% of the scan) fails the run instead of returning rows.

FAQ

The Actor reads only the public market data API that Kalshi provides without an account. It does not log in and does not place orders. You are responsible for using the data in line with applicable laws and the exchange's terms.

What does expected settlement time mean?

It is the time at which Kalshi expects the market to settle, as published for each market. Some markets close early once the outcome is decided, and a few settle later than expected, so treat it as a schedule, not a guarantee.

Are combo markets included?

No. Multivariate combination markets are excluded, so the rows are single-outcome markets. The Actor checks this on every row: a market that belongs to a combination ("MVE") series of the Kalshi catalog, or that carries combination fields, is skipped and counted in the run status. If Kalshi stops excluding them and they make up more than 1% of the scan, the run fails before any row is billed instead of returning combination markets. If you name a combination series in seriesTickers (for example KXMVECROSSCATEGORY), the run says so: it fails when every named series is a combination series, and otherwise skips it with a note in the run status, so you are never told that Kalshi has no markets in a series that does have combination markets.

How fresh is the data?

Every run reads quotes and order books live. Schedule runs as often as you need.

Why do some rows have empty depth fields?

The order book of a market could not be read, or depth was switched off. The run fails when no order book can be read at all, so a source change does not pass unnoticed.

Why did a run fail with a message about a missing field?

The run stops, and bills nothing, when Kalshi stops publishing a field that a filter, a sort or a column depends on: the expected settlement time, 24h volume, open interest or the settlement sources of the series. It also stops when a series filter is combined with a category that does not contain it, and when the source stops applying the series filter and returns markets of other series. Without this a change at the source would return rows with empty values or an empty result that looks like a filter problem.

See other data Actors from the same publisher on the Store profile.