# Kalshi settlement rules and sources, 2026

Each row is one open Kalshi market with its full settlement rules, timing and the settlement sources its series names, from Kalshi's public trading interface. About 5,400 markets in 72 series, updated every 6 hours. ## Coverage - **Window:** a fresh snapshot of current listings every 6 hours since 10 September 2026, in UTC. Closed markets drop out at the next refresh. - **Grain:** one row per ope…

Kalshi settlement rules and sources, 2026 is an open, machine-readable dataset published on Mostly Right as immutable Parquet versions, with a documented column schema, a JSON query API and a direct download. Its first rows are free to read and it is open to AI agents.

## Facts

- Slug: `kalshi-settlement-rules-and-sources-2026`
- Canonical page: https://mostlyright.md/datasets/kalshi-settlement-rules-and-sources-2026
- Publisher: bobby (https://mostlyright.md/publishers/bobby)
- Published: 2026-09-14T08:44:04.266Z
- Tables: 1
- Formats: Apache Parquet (download), JSON (query and sample)
- Cost: the first 500 rows of each table are free to everyone; querying and downloading need a free account and count against a monthly free allowance unless the workspace is subscribed
- Metadata API: `GET https://mostlyright.md/api/v2/public/datasets/kalshi-settlement-rules-and-sources-2026`
- Topics: prediction markets, united states, settlement rules, kalshi, event contracts, cftc filings

## How to use it

1. Read a table's schema — no account needed.
2. Fetch its published sample rows — no account needed.
   The first 500 rows of every table, in stored order, are free to everyone, with or without an account. Without an account you get that sample and nothing else: no filter, sort, search, download or page past row 500.
3. Sign in at https://mostlyright.md/login, connect this dataset to a workspace on its page, and create an `mr_use_` key.
4. Query bounded JSON, or download the complete Parquet snapshot and read it locally.
   A free workspace may read 100,000 rows and run 1,000 queries a UTC month past the sample. The allowance is shared by everyone in the workspace, and a free workspace may have any number of members. Reads count against the workspace whose data or key they use. A subscribed workspace is never counted, for anyone working in it.

Agents can do all of this over MCP at `https://mostlyright.md/api/mcp` — searching, reading schemas and sampling rows work with no credential at all.

## Table: market_rules

- Table id: `502bcf43-674a-4d21-bcf5-db1ec1ba3956`
- Slug: `market-rules`
- Immutable version: `1d3bf81e-7654-5082-88be-a230760d54b1`
- Licence: CC-BY-4.0
- Schema: `GET https://mostlyright.md/api/v2/public/tables/502bcf43-674a-4d21-bcf5-db1ec1ba3956/schema`
- Sample rows, no key: `GET https://mostlyright.md/api/v2/public/tables/502bcf43-674a-4d21-bcf5-db1ec1ba3956/preview`
- Bounded JSON query: `POST https://mostlyright.md/api/v2/public/tables/502bcf43-674a-4d21-bcf5-db1ec1ba3956/query` with `x-api-key: mr_use_…`
- Full Parquet snapshot: `GET https://mostlyright.md/api/v2/public/tables/502bcf43-674a-4d21-bcf5-db1ec1ba3956/current` with `x-api-key: mr_use_…` (application/vnd.apache.parquet)

### Columns (28)

| Column | Type | Description |
| --- | --- | --- |
| `market_ticker` | string | Kalshi's ticker for the market. |
| `series_ticker` | string | The contract series the market belongs to. |
| `event_ticker` | string | The event the market belongs to; markets in one event answer one outcome question. |
| `title` | string | The market's question as Kalshi words it. |
| `yes_sub_title` | string | What a Yes position is on, in Kalshi's short form. |
| `no_sub_title` | string | What a No position is on, in Kalshi's short form. |
| `subtitle` | string | Kalshi's secondary line for the market, where it has one. |
| `rules_primary` | string | The market's primary rule: the condition that makes it resolve Yes. |
| `rules_secondary` | string | The market's secondary rule: timing, fallbacks and edge cases. |
| `early_close_condition` | string | The condition under which the market may close before its scheduled time. |
| `strike_type` | string | How the market compares the outcome with its strike, such as greater, less or between. |
| `floor_strike` | decimal | The lower strike the market's condition compares against, in the series' own unit. |
| `cap_strike` | decimal | The upper strike, where the market has one, in the series' own unit. |
| `market_type` | string | Kalshi's market type. |
| `can_close_early` | boolean | Whether the market may close before its scheduled close time. |
| `settlement_timer_seconds` | integer | Seconds Kalshi waits after the outcome is determined before settling. |
| `open_time` | timestamp_utc | When the market opened for trading. |
| `close_time` | timestamp_utc | When trading in the market is scheduled to close. |
| `expected_expiration_time` | timestamp_utc | When Kalshi expects to determine the outcome. |
| `expiration_time` | timestamp_utc | The market's scheduled expiration. |
| `latest_expiration_time` | timestamp_utc | The latest time the market can expire. |
| `occurrence_at` | timestamp_utc | When the underlying event is scheduled to happen, where Kalshi states it. |
| `series_title` | string | The title of the market's contract series as Kalshi lists it. |
| `series_category` | string | Kalshi's top-level category for the market's series. |
| `settlement_sources` | string | Every source Kalshi names for settling the market's series, as a JSON list of objects holding each source's name and address. |
| `settlement_source_count` | integer | How many settlement-source addresses Kalshi names for the market's series. |
| `contract_url` | string | Address of the product certification Kalshi filed with the CFTC for the series. |
| `contract_terms_url` | string | Address of the series' contract terms document. |

## Citing this dataset

Cite the dataset by name and canonical URL (https://mostlyright.md/datasets/kalshi-settlement-rules-and-sources-2026), the table, and the immutable `version_id` the rows came from. A query response carries `table.version_id` and `table.content_digest`; a download carries a strong ETag and a `Content-Digest` header.
