Kalshi Weather Prediction Markets - Odds API
Pricing
from $0.70 / 1,000 market brackets
Kalshi Weather Prediction Markets - Odds API
Kalshi weather prediction markets data: every daily high and low temperature market, bracket by bracket, with odds, implied probability, volume and results. Joined with today's observed temperature at the NWS settlement station, and a signal when a bracket is already decided.
Pricing
from $0.70 / 1,000 market brackets
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
What does Kalshi Weather Prediction Markets do?
This actor extracts every Kalshi weather prediction market: the daily high and low temperature markets (KXHIGH / KXLOW series), bracket by bracket, with odds, implied probability, volume and results. It also joins each market with the temperature already observed today at the station that settles it. You get the odds, and you get what the thermometer has already decided.
- All the series, found automatically. The actor reads Kalshi's own list of weather series on every run. On 19 Sep 2026 that was 104 series, 48 of them open, 288 brackets across 24 cities. A new city appears without anyone editing a table.
- The right station. Each market's rules name its NWS climate station
(
CLIMDW), and the actor derives the observation station from it (KMDW): Chicago settles at Midway, not O'Hare. Measured: 24 stations out of 24 resolved. - The right day. The NWS climate day runs midnight to midnight in local standard time, and daylight saving is ignored. In summer it runs from 1 am to 1 am on the clock, and observed highs and lows use exactly that window.
- Brackets already decided. A daily high only goes up and a daily low only
goes down, so some brackets are settled before the day ends.
observationSignalflags them, with a 1°F safety margin. - History for backtests. Settled markets come with their result and the settlement temperature. Checked on 288 settled brackets: the result matches the settlement value and the bracket bounds every time.
What data can you extract from Kalshi weather markets?
| Data | Fields |
|---|---|
| Market | ticker, eventTicker, seriesTicker, city, measure, marketDate, bracket, strikeType, floorStrikeF, capStrikeF |
| Odds | yesBid, yesAsk, lastPrice, noBid, noAsk, impliedProbability |
| Activity | volume, volume24h, openInterest, liquidityDollars |
| Settlement | status, result, settlementValue, closeTime, settlementSource, rules |
| Station | climateStationId, stationIcao, stationName |
| Today's observations | observedHighF, observedLowF, observationCount, lastObservationAt, observationSignal |
How to get Kalshi weather market data
- Leave cities empty for all of them, or name them as Kalshi does:
New York City,Chicago,Miami. - Choose the measure (high, low or both) and the markets: live odds, settled history, or both.
- Keep station observations on to see today's observed high and low next to each bracket.
- Click Start. For live monitoring, schedule it every few minutes.
How much does it cost?
One event per market bracket returned.
| Job | Rows | Cost |
|---|---|---|
| Two cities, high and low, live | 24 | about $0.02 |
| Every open weather market | ~288 | about $0.29 |
| 30 days of settled history, all cities | ~8,600 | about $8.60 |
Subscription plans pay less per row.
Input example
{ "cities": ["New York City", "Chicago", "Miami"], "measure": "high", "mode": "live" }
Output example
{"ticker": "KXHIGHAUS-26SEP19-T96","city": "Austin","measure": "high","marketDate": "2026-09-19","bracket": "95° or below","strikeType": "less","capStrikeF": 96,"yesBid": 0.04,"yesAsk": 0.05,"impliedProbability": 0.045,"volume24h": 1751.16,"stationIcao": "KAUS","stationName": "Austin-Bergstrom International Airport","observedHighF": 80.6,"observationSignal": ""}
How the "already decided" signal works
Kalshi's bracket meaning, checked on 288 brackets: less with cap C wins if
T ≤ C−1 ("95° or below" for C = 96). between a–b wins if a ≤ T ≤ b.
greater with floor X wins if T ≥ X+1 ("104° or above" for X = 103). T is the
whole-degree settlement temperature.
The 5-minute station data comes in whole degrees Celsius, which is ±1°F once converted. The signal fires only when the observation clears the bracket edge by that margin plus the half-degree of rounding. It is conservative on purpose: on 19 Sep 2026 it flagged 12 brackets, and the market was already pricing every one of them at 0–1¢.
Use the Kalshi weather API in Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/kalshi-weather-markets").call(run_input={"measure": "high"})for m in client.dataset(run["defaultDatasetId"]).iterate_items():print(m["city"], m["bracket"], m["impliedProbability"], m["observedHighF"], m["observationSignal"])
Works from JavaScript, n8n, or trading agents through the Apify MCP server.
Other actors you might like
- Google Trends Scraper & API: search interest for up to 100 keywords on one scale.
- Google Hotels Scraper: hotel prices and ratings for any city and dates.
- DefiLlama Protocol Revenue & TVL: on-chain market data.
FAQ
Is the settlement temperature the same as the observed one?
Not always. Settlement uses The Weather Company's figure, as the market rules say. Observations come from the NWS feed for the same station, and the two can differ by a degree. The signal's margin covers the usual gap, but it is no guarantee.
Which cities are covered?
Every city Kalshi lists, currently US cities. International series (Berlin, London, Mexico City) sit in Kalshi's catalogue and are read if they open, but no NWS observation is joined for them.
Is this trading advice?
No. It is market and weather data.
Source
Kalshi public trade API (v2) and the National Weather Service API (api.weather.gov). Both are public and need no key. This actor is not affiliated with Kalshi or the NWS.