METAR & NWS Weather Station Observations + Daily High/Low
Pricing
from $0.50 / 1,000 observations
METAR & NWS Weather Station Observations + Daily High/Low
Hourly METAR/ASOS observations for any ICAO station (temp, dewpoint, wind, visibility, ceiling, raw METAR) with per-day high/low summaries — the temperatures Kalshi weather markets settle on. Official sources with automatic fallback. No login.
Pricing
from $0.50 / 1,000 observations
Rating
0.0
(0)
Developer
DIOPSIDE AI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
METAR & NWS Weather Station Observations — with official daily high/low
Hourly METAR / ASOS observations for any ICAO station worldwide, normalized to clean JSON, plus a per-station, per-day summary carrying the official climatological max/min — the numbers NWS daily climate reports publish and that Kalshi daily-temperature markets settle on.
- Official sources, automatic fallback. aviationweather.gov for the last 72 h (any station), the Iowa Mesonet ASOS archive for deeper history (US stations, up to 30 days), api.weather.gov as fallback and for station metadata. One source having a bad day doesn't fail your run.
- The settlement number, not an approximation. US ASOS stations report a 24-hour max/min group
in the midnight METAR (
402500144→ max 25.0 °C = 77 °F). We parse it and attribute it to the right local day. Hourly readings typically run 1–2 °F low; we give you both, clearly labelled. - Temperatures in tenths. Parsed from the METAR T-group (
T02330189→ 23.3 °C), not the rounded body group. - City names work.
NYC,Chicago,London,Toronto… map to the exact Kalshi settlement stations (Chicago = Midway, Dallas = DFW, Houston = Hobby).
vs other METAR scrapers
The closest alternative in the store, metar-nws-weather-station-observations, failed on 85%
of its runs over the last 30 days (Apify's public stats). This actor falls back across three
independent official sources (aviationweather.gov → Iowa Mesonet → api.weather.gov) so one source
being down doesn't take the run with it, and reports which source served each observation.
Input
| field | default | notes |
|---|---|---|
stationIds | ["KNYC"] | ICAO codes (KMDW, EGLL, CYYZ) or city names |
latLon | [] | [{"lat": 41.97, "lon": -87.9}] → nearest NWS station (US) |
hoursBack | 24 | 1–720. Any station up to 72 h; US (K*) stations up to 30 days |
includeObservations | true | one record per report |
includeDailySummary | true | one record per station per local day |
fields | [] | optional subset of observation fields |
Output
Observation (record_type: "observation"):
{"record_type": "observation","station_id": "KNYC", "station_name": "New York City, Central Park","lat": 40.78, "lon": -73.97,"utc_time": "2026-09-17T05:00:00Z","temp_f": 73.9, "temp_c": 23.3, "dewpoint_f": 66.0, "dewpoint_c": 18.9,"max_temp_6h_f": null, "min_temp_6h_f": null,"max_temp_24h_f": 77.0, "min_temp_24h_f": 57.9,"wind_dir": 0, "wind_speed_kt": 0, "wind_gust_kt": null,"visibility_sm": 10, "ceiling_ft": 5500, "flight_category": "VFR","altimeter_inhg": 30.3, "sky": "OVC055","metar_raw": "KNYC 170500Z AUTO 00000KT 10SM OVC055 23/19 A3030 RMK AO2 SLP251 T02330189 402500144","source": "aviationweather.gov"}
Daily summary (record_type: "daily_summary"):
{"record_type": "daily_summary","station_id": "KNYC", "station_name": "New York City, Central Park","local_date": "2026-09-16", "time_zone": "America/New_York","max_temp_f": 77, "min_temp_f": 58,"max_temp_24h_f_exact": 77.0, "min_temp_24h_f_exact": 57.9,"official_report_utc": "2026-09-17T05:00:00Z","max_temp_observed_f": 75.9, "max_temp_observed_time_utc": "2026-09-16T19:51:00Z","min_temp_observed_f": 61.0, "min_temp_observed_time_utc": "2026-09-16T09:51:00Z","observations": 24,"first_obs_utc": "2026-09-16T04:51:00Z", "last_obs_utc": "2026-09-17T03:51:00Z","day_complete": true,"sources": ["aviationweather.gov"]}
max_temp_f / min_temp_f are the official whole-degree values (NWS rounding: 84.9 → 85).
They are null until the midnight report arrives, and for stations that don't report the group
(most non-US stations) — use max_temp_observed_f there. day_complete tells you whether the
local day has ended.
Typical sizes
One station, 24 h: ~25–50 observations + 2 summaries. Twenty US stations, 30 days: ~20,000 observations + 600 summaries. Deep history beyond 72 h is US-only (ASOS archive).
Use cases
Settlement checks and live "where is today's high" tracking for weather markets; backtests; forecast verification; feeding dashboards and AI agents with clean, timestamped station data.
Pricing
Pay per record: observations and daily summaries are priced separately, so you can pull only summaries cheaply. See the pricing tab.
Notes
Reads public, official data only. Missing upstream values come back as null; partial failures
are reported in the run status, never hidden.