Observations
Returns METAR and SPECI weather observations from 20 NWS stations across the US. Data includes temperature, dewpoint, wind, pressure, visibility, sky cover, and raw METAR text.
Request
Section titled “Request”GET /api/v1/observations
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
station | string | No | Station code (e.g., NYC, LAX, ORD) |
from | string | No | Start time (RFC3339). Default: 24h ago |
to | string | No | End time (RFC3339). Default: now |
resolution | string | No | hourly (default) or 1min (1-minute ASOS OMO data) |
type | string | No | Filter by type: METAR or SPECI |
units | string | No | raw (default), metric, or imperial |
tz | string | No | UTC (default), station, or IANA name |
format | string | No | Output format: json (default), csv, parquet, ndjson |
columns | string | No | Comma-separated column names to include (e.g., close,volume) |
limit | integer | No | Max results (default 1000) |
offset | integer | No | Pagination offset |
Unit conversion
Section titled “Unit conversion”| Field | Raw | Metric | Imperial |
|---|---|---|---|
| Temperature | °F | °C | °F |
| Wind speed | knots | m/s | mph |
| Pressure (altimeter) | inHg | hPa | inHg |
| Visibility | miles | km | miles |
| Precipitation | inches | mm | inches |
| Snow depth | inches | mm | inches |
Example
Section titled “Example”curl "https://api.mostlyright.xyz/api/v1/observations?station=NYC&units=metric&limit=2"from therminal.weather import WeatherHistory
weather = WeatherHistory()obs = weather.observations(station="NYC", units="metric", limit=2, as_dataframe=True)Response
Section titled “Response”[ { "station_code": "NYC", "observed_at": "2026-03-20T15:51:00Z", "observation_type": "METAR", "source": "awc", "temp_f": 10.61, "dewpoint_f": 0, "wind_speed_kt": 2, "altimeter_inhg": 1017.09, "visibility_miles": 16.09, "sky_cover_1": "CLR", "raw_metar": "METAR KNYC 201551Z AUTO VRB04KT 10SM CLR 11/00 A3007 RMK AO2 SLP173 ..." }]1-Minute Resolution (OMO)
Section titled “1-Minute Resolution (OMO)”Add resolution=1min to get 1-minute ASOS observations from NCEI. Available for 19 of 20 stations (NYC/KNYC excluded — Central Park is not an airport ASOS site). Coverage: 2000–2026, ~166M records.
Important differences from hourly:
?units=is rejected with HTTP 400 — temperatures are always integer °C?type=METAR|SPECIis silently ignored (OMO data is not METAR/SPECI)?format=csv|parquetand?columns=work normally
curl "https://api.mostlyright.xyz/api/v1/observations?station=LAX&resolution=1min&limit=2"from therminal.weather import WeatherHistory
weather = WeatherHistory()obs = weather.observations(station="LAX", resolution="1min", limit=2, as_dataframe=True)Live METAR (SDK)
Section titled “Live METAR (SDK)”from therminal.weather import WeatherLive
live = WeatherLive()current = live.current("NYC") # Real-time from AWC, same Observation schema1-Minute Response
Section titled “1-Minute Response”[ { "station_code": "LAX", "observed_at": "2026-03-20T15:51:00Z", "temp_c": 18, "dewpoint_c": 12, "pressure1_inhg": 29.92, "pressure2_inhg": 29.91, "pressure3_inhg": 29.90, "precip_type": "", "precip_in": 0.00 }]Try it
Section titled “Try it” GET
/api/v1/observations Click "Send →" to try it live Data source
Section titled “Data source”Live observations from AWC (5-second polling). Historical from IEM and NOAA ISD. 1-minute ASOS data from NCEI (DSI-6406). See Data Sources for full details.