Kalshi Weather Markets Data — KXHIGH & KXLOW
Pricing
from $1.00 / 1,000 market records
Kalshi Weather Markets Data — KXHIGH & KXLOW
Live bracket prices and settlement history for every Kalshi KXHIGH/KXLOW weather market: per-bracket bid/ask, open interest, settled temps by city and date. 20 cities mapped to their exact settlement stations. No login, no API keys. From $1 per 1,000 markets.
Pricing
from $1.00 / 1,000 market records
Rating
0.0
(0)
Developer
Jack Sheward
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Kalshi Weather Markets Data — KXHIGH & KXLOW
Pull Kalshi weather markets data — every KXHIGH (daily high temperature) and KXLOW (daily low temperature) bracket market — as clean JSON: live bid/ask, volume, open interest, plus full settlement history with the official settled temperature per city per day. Covers all 20 Kalshi temperature cities, each mapped to the exact weather station the market settles on (including the gotchas: Chicago = Midway, Dallas = DFW, Houston = Hobby).
Uses Kalshi's public market-data API directly — no login, no API key, no scraping.
What you get
One record per market (bracket):
| Field | Example | Notes |
|---|---|---|
ticker | KXHIGHNY-26JUN10-T82 | Kalshi market ticker |
event_ticker | KXHIGHNY-26JUN10 | groups all brackets of one city-day |
city | NYC | canonical city name |
station_id | KNYC | ICAO station the market settles on |
series_ticker | KXHIGHNY | |
series_type | KXHIGH | KXHIGH or KXLOW |
bracket_label | 83° or above | human-readable bracket |
strike_type | greater | greater, less, or between |
floor_strike | 82 | bracket lower bound in °F (null for "or below" brackets) |
cap_strike | null | bracket upper bound in °F (null for "or above" brackets) |
status | finalized | active (live) or finalized (settled) |
result | no | yes / no / null while live |
settlement_temp_f | 82.0 | official settled temperature (settled markets only) |
settlement_time | 2026-06-11T12:01:51Z | |
open_time | 2026-06-09T14:00:00Z | ISO timestamp |
close_time | 2026-06-11T04:59:00Z | ISO timestamp |
yes_bid | 0.01 | USD per contract, 0.00–1.00 |
yes_ask | 0.02 | USD per contract, 0.00–1.00 |
last_price | 0.02 | USD per contract, 0.00–1.00 |
volume | 64488.09 | contracts (fractional trading enabled) |
open_interest | 31144.75 | contracts (fractional trading enabled) |
liquidity | 0.0 | USD value of resting orders |
trades | array | only with includeTrades — up to 1,000 recent fills |
orderbook | object | only with includeOrderbook — bid levels, see below |
Optional keys: the
tradesandorderbookkeys exist in a record only when the corresponding flag is enabled — with the flag off the key is omitted entirely (notnull), so read them with.get()rather than direct indexing. With the flag on, a per-market fetch failure leaves the key present with valuenull.Orderbook structure:
orderbookis{"yes_dollars": [[price, size], ...], "no_dollars": [[price, size], ...]}— despite the names (Kalshi's own field names, passed through), each value is a list of bid levels, not a single dollar amount:pricein USD per contract,sizein (fractional) contracts.
Example settled record:
{"ticker": "KXHIGHNY-26JUN10-B81.5","event_ticker": "KXHIGHNY-26JUN10","city": "NYC","station_id": "KNYC","series_ticker": "KXHIGHNY","series_type": "KXHIGH","bracket_label": "81° to 82°","strike_type": "between","floor_strike": 81,"cap_strike": 82,"status": "finalized","result": "yes","settlement_temp_f": 82.0,"settlement_time": "2026-06-11T12:01:51.253194Z","open_time": "2026-06-09T14:00:00Z","close_time": "2026-06-11T04:59:00Z","yes_bid": 0.0,"yes_ask": 1.0,"last_price": 0.99,"volume": 48549.61,"open_interest": 22770.89,"liquidity": 0.0}
Export as JSON, CSV, or Excel directly from the dataset.
Input
Default (live markets, one city — fast, a handful of records):
{"cities": ["NYC"],"seriesType": "both","mode": "live"}
Settled-history example (intentionally heavier — ~1,000–2,400 records for two cities at 90 days):
{"cities": ["NYC", "Chicago"],"seriesType": "both","mode": "settled","lookbackDays": 90}
cities— city names or aliases (NYC,Philly,SF,NOLA,DFW…), or"all"for every supported city.seriesType—KXHIGH(daily highs),KXLOW(daily lows), orboth.mode—live(currently tradeable brackets with current prices),settled(finalized markets with results and settled temperatures), orboth.lookbackDays— 1–365, settled-history window (only used insettled/bothmode).includeTrades— attach up to 1,000 recent fills per market (one extra API call per market).includeOrderbook— attach the current order book per market (one extra API call per market).
All prices are USD per contract (each contract pays $1.00). Quantities (volume, open_interest, trade count_fp, book sizes) are in contracts; Kalshi allows fractional contracts, so they can be non-integer.
Supported cities
| City | Aliases | KXHIGH series | KXLOW series | Settlement station |
|---|---|---|---|---|
| NYC | New York, NY | KXHIGHNY | KXLOWTNYC | KNYC (Central Park) |
| Chicago | — | KXHIGHCHI | KXLOWTCHI | KMDW (Midway, not O'Hare) |
| Miami | — | KXHIGHMIA | KXLOWTMIA | KMIA |
| Austin | — | KXHIGHAUS | KXLOWTAUS | KAUS |
| Los Angeles | LA | KXHIGHLAX | KXLOWTLAX | KLAX |
| Denver | — | KXHIGHDEN | KXLOWTDEN | KDEN |
| Phoenix | — | KXHIGHTPHX | KXLOWTPHX | KPHX |
| Philadelphia | Philly | KXHIGHPHIL | KXLOWTPHIL | KPHL |
| Houston | — | KXHIGHTHOU | KXLOWTHOU | KHOU (Hobby, not Bush/IAH) |
| Minneapolis | Min | KXHIGHTMIN | KXLOWTMIN | KMSP |
| Oklahoma City | OKC | KXHIGHTOKC | KXLOWTOKC | KOKC |
| San Francisco | SF | KXHIGHTSFO | KXLOWTSFO | KSFO |
| Washington DC | DC | KXHIGHTDC | KXLOWTDC | KDCA |
| Boston | — | KXHIGHTBOS | KXLOWTBOS | KBOS |
| Dallas | DFW | KXHIGHTDAL | KXLOWTDAL | KDFW (not Love Field) |
| Seattle | — | KXHIGHTSEA | KXLOWTSEA | KSEA |
| Las Vegas | LV, Vegas | KXHIGHTLV | KXLOWTLV | KLAS |
| Atlanta | — | KXHIGHTATL | KXLOWTATL | KATL |
| San Antonio | SATX | KXHIGHTSATX | KXLOWTSATX | KSAT |
| New Orleans | NOLA | KXHIGHTNOLA | KXLOWTNOLA | KMSY |
Pricing
Pay per market record — no subscription. A live pull for one city is typically 6–14 records; 90 days of settled history for one city is ~500–1,200 records.
Why this instead of scraping the Kalshi website?
- Structured market data, not HTML. Direct from Kalshi's public market-data API — stable JSON, no scrape fragility, no login wall.
- Settlement-grade joins. Every market is mapped to the exact ICAO station its NWS Climatological Report settles on — the mapping mistakes (O'Hare vs Midway, Love Field vs DFW, Bush vs Hobby) that cost real traders real money are already handled.
- Backtest-ready history. Settled mode gives you bracket, result, and the official settled temperature per city-day in one flat table — join it against any weather dataset by
station_idand date.
FAQ
Which Kalshi weather markets are covered?
All daily high (KXHIGH*) and daily low (KXLOW*) temperature bracket markets across Kalshi's 20 cities. Series are discovered live from the API, so newly listed cities in these families appear automatically once mapped.
What units are the prices in?
USD per contract, 0.00–1.00 (each contract settles at $1.00). yes_bid 0.04 means 4 cents. Volume and open interest are in contracts and can be fractional, since Kalshi supports fractional trading.
How do I get settled temperature history for a city?
Set mode to settled, pick your cities and lookbackDays. Each settled record carries settlement_temp_f — the official high (or low) Kalshi settled on — plus the winning/losing bracket via result.
Which weather station does each market settle on?
See the table above. Kalshi settles on NWS Climatological Reports for one specific station per city — Chicago is Midway (KMDW), Dallas is DFW airport (KDFW), Houston is Hobby (KHOU). Every record carries station_id so you can join against observation data.
Can I get the order book and trade history?
Yes — includeOrderbook attaches the book as {"yes_dollars": [[price, size], ...], "no_dollars": [[price, size], ...]} (lists of bid levels), includeTrades attaches up to 1,000 recent fills per market (price, size, taker side, timestamp). With either flag off, the corresponding key is omitted from the record entirely — use .get().
Is this affiliated with Kalshi? Does it trade?
No and no. It reads Kalshi's public, unauthenticated market-data API. No account, no credentials, no orders — data only.
Use with AI agents (MCP)
Connect your agent to the Apify MCP server (mcp.apify.com) and it can call this actor as a tool: ask for "current KXHIGH brackets in Chicago" or "settled NYC daily-high markets from the last 30 days" and the agent fills the input schema (cities, seriesType, mode, lookbackDays) itself. A clean market-data source for trading agents and prediction-market research.
More prediction-market data actors
- METAR & NWS Weather Station Observations API - the raw station observations these markets settle on.
- Prediction Market Resolution Evidence Checker - paste a market URL, get the live observation that resolves it, graded.