Reference

Endpoints

Every endpoint lives under /api/v1. See the overview for auth, rate limits, and common query parameters.

#Alerts

Active and recent weather alerts from the NWS, normalized with polygons or affected zone arrays. Covers warnings, watches, advisories, and statements.

#List alerts

GET/api/v1/alerts

Returns a GeoJSON FeatureCollection. Accepts every common spatial & temporal filter.

Parameters
active
bool
Only return alerts that have not expired yet.
event
string
Filter by NWS event type — e.g. event=Tornado Warning.
severity
string
Minor | Moderate | Severe | Extreme
wfo
string
NWS office ID, e.g. OUN, DTX.
curl
curl "https://atmostorm.com/api/v1/alerts?state=OK&active=true&severity=Severe"

#Get a single alert

GET/api/v1/alerts/{alert_id}

Returns the full alert record including the description text and instruction.

curl
curl "https://atmostorm.com/api/v1/alerts/12345"

#SPC Outlooks

Storm Prediction Center convective outlooks for days 1 through 8 (categorical and probabilistic).

#List outlook polygons

GET/api/v1/outlooks
Parameters
day
int (1–8)
Convective outlook day. Defaults to all.
outlook_type
string
categorical | tornado | hail | wind | lightning | fire
curl
curl "https://atmostorm.com/api/v1/outlooks?day=1&outlook_type=categorical"

#SPC Watches

#List active watches

GET/api/v1/watches

Tornado and severe thunderstorm watches with hazard parameters (max hail size, max wind, PDS flag).

curl
curl "https://atmostorm.com/api/v1/watches?active=true"

#Mesoscale Discussions

#List SPC mesoscale discussions

GET/api/v1/discussions

Short-fuse convective discussions issued by SPC. Each includes the discussion text and bounding polygon.

curl
curl "https://atmostorm.com/api/v1/discussions?active=true"

#Storm reports

#List storm reports

GET/api/v1/reports

Tornado, hail, wind, and flood reports aggregated from SPC. Every report has a point geometry and (where available) a magnitude.

Parameters
report_type
string
tornado | hail | wind | flood
min_magnitude
float
Minimum magnitude (hail inches, wind kt, tornado EF).
curl
curl "https://atmostorm.com/api/v1/reports?report_type=tornado&start=2026-04-18T00:00Z"

#Observations

#Surface observations

GET/api/v1/observations

Surface weather observations from ASOS/AWOS (METAR) and CWOP stations. Returns temperature, dewpoint, wind, pressure, precip, and more.

Parameters
station
string
Station ID (e.g., KOUN). Exact match.
source
string
Ingest network: nws | iem | synoptic.
latest
bool
Return only the most recent observation per station (last ~6 h).
curl
curl "https://atmostorm.com/api/v1/observations?point=35.22,-97.44&radius=50km&latest=true"

#Soundings

#List recent soundings

GET/api/v1/soundings

Upper-air soundings (RAOB), including derived parameters: CAPE, CIN, LI, PWAT, SRH, STP, SCP.

curl
curl "https://atmostorm.com/api/v1/soundings?bbox=-100,33,-95,38&latest=true"

#Latest sounding at a station

GET/api/v1/soundings/{station}/latest

Full vertical profile (pressure, height, T, Td, wind).

curl
curl "https://atmostorm.com/api/v1/soundings/OUN/latest"

#HRRR model

#HRRR point forecast

GET/api/v1/models/hrrr/point

Hourly forecast at a single point from the High-Resolution Rapid Refresh model. Returns multiple variables for the requested hours ahead of the latest run.

Parameters
latrequired
float
Latitude (decimal degrees).
lonrequired
float
Longitude (decimal degrees).
hours
int (1–48)
Hours ahead to return. Default: 18.
curl
curl "https://atmostorm.com/api/v1/models/hrrr/point?lat=35.22&lon=-97.44&hours=12"

#List available model runs

GET/api/v1/models/available

Metadata about which model data is currently cached on disk.

#Lightning

#Recent lightning flashes

GET/api/v1/lightning

Total-lightning flash points (in-cloud and cloud-to-ground) from GOES-19 GLM, parsed directly from NOAA's public S3 bucket. Returns a GeoJSON FeatureCollection of point geometries with flash_time,age_seconds (relative to the request time), and optional energy_fj(femtojoules) + area_km2.

Parameters
minutes
int (1–180)
Window to return. Defaults to 15 minutes.
bbox
w,s,e,n
Bounding box filter.
state
string
US state abbreviation shortcut.
limit
int (1–20000)
Max features returned. Default: 5000.
curl
curl "https://atmostorm.com/api/v1/lightning?state=OK&minutes=10"

#River gauges

#List river gauge readings

GET/api/v1/gauges

USGS streamflow gauges with current stage, discharge, and (where available) NWS flood-stage thresholds.

curl
curl "https://atmostorm.com/api/v1/gauges?state=OK&latest=true"

#Radar tiles

MRMS radar products, rendered as map tiles suitable for dropping into any MapLibre / Mapbox / Leaflet layer. Six products are served: composite-reflectivity, base-reflectivity, mesh-30min (max hail size), rotation-30min, vil, and echo-tops — see /radar/products.

#Radar map tile

GET/api/v1/radar/tiles/{product}/{z}/{x}/{y}.png
Parameters
productrequired
string
composite-reflectivity | base-reflectivity | mesh-30min | rotation-30min | vil | echo-tops (see /radar/products).
zrequired
int
Web Mercator zoom (typically 3–10).
xrequired
int
Tile column (XYZ).
yrequired
int
Tile row (XYZ).
ts
YYYYMMDDHHMM
Specific frame timestamp (UTC). Omit for the latest available; see /radar/frames.
url
https://atmostorm.com/api/v1/radar/tiles/composite-reflectivity/6/14/25.png

#Available radar products

GET/api/v1/radar/products

#Available radar frames (timestamps)

GET/api/v1/radar/frames

Useful for building a loop / animation slider.

#Satellite tiles

GOES ABI imagery, projected to Web Mercator tiles. Six products: ir (clean IR), visible, geocolor, air-mass, dust, and fire-temp — see /satellite/products.

#Satellite map tile

GET/api/v1/satellite/tiles/{product}/{z}/{x}/{y}.png
Parameters
productrequired
string
ir | visible | geocolor | air-mass | dust | fire-temp (see /satellite/products).
ts
YYYYMMDDHHMM
Specific frame timestamp (UTC). Omit for the latest available.

#Available satellite products

GET/api/v1/satellite/products

#Available satellite frames

GET/api/v1/satellite/frames

#Location summary

#One-call location snapshot

GET/api/v1/locations/summary

Aggregates every relevant product at a point: active alerts and watches, mesoscale discussions, current observation, SPC outlooks, recent storm reports, the HRRR point forecast, and a single "status" field summarizing severity. Great for building dashboards.

Parameters
latrequired
float
Latitude.
lonrequired
float
Longitude.
curl
curl "https://atmostorm.com/api/v1/locations/summary?lat=35.22&lon=-97.44"

#Geocoding

#Reverse geocode

GET/api/v1/geocode/reverse
Parameters
latrequired
float
Latitude.
lonrequired
float
Longitude.
curl
curl "https://atmostorm.com/api/v1/geocode/reverse?lat=35.22&lon=-97.44"

#Tropical (NHC)

#Tropical weather outlook

GET/api/v1/tropical/outlook

NHC formation-probability areas (the GTWO) as a GeoJSON FeatureCollection, plus a metadata.basins block carrying each basin's issuance headline. Present year-round; the areas are simply empty in the off-season.

Parameters
basin
string
AL | EP | CP. Omit for all basins.
curl
curl "https://atmostorm.com/api/v1/tropical/outlook?basin=AL"

#Active tropical systems

GET/api/v1/tropical/storms

Each active system contributes up to three features tagged feature_kind: cone (forecast cone of uncertainty), track (forecast line), and position (current center, carrying the full intensity metadata). Empty in the off-season.

curl
curl "https://atmostorm.com/api/v1/tropical/storms"

#Excessive rainfall (WPC)

#Excessive Rainfall Outlooks

GET/api/v1/eros

WPC flash-flood outlooks (MRGL / SLGT / MDT / HIGH), Days 1–3, as a GeoJSON FeatureCollection. Accepts the common spatial filters.

Parameters
day
int (1–3)
ERO day. Default: 1.
active
bool
Only currently-valid outlooks. Default: true.
curl
curl "https://atmostorm.com/api/v1/eros?day=1&state=TX"

#NWS text products

Latest per-office bulletins. Resolve the office automatically from a point (lat + lon) or pass an office code directly. Both return a clean null body (not a 404) when nothing is stored for that office yet.

#Area Forecast Discussion

GET/api/v1/afd

The forecaster's reasoning behind the forecast. Returns { office, afd }.

curl
curl "https://atmostorm.com/api/v1/afd?lat=35.22&lon=-97.44"

#Hazardous Weather Outlook

GET/api/v1/hwo

Plain-language summary of hazardous weather over the next 7 days. Returns { office, hwo }.

curl
curl "https://atmostorm.com/api/v1/hwo?office=OUN"

#NEXRAD Level II (single-site)

On-demand, per-radar Level II tiles — the super-res Doppler + dual-pol view the MRMS mosaic flattens away. Six products: reflectivity, velocity, srm (storm-relative velocity), cc, zdr, and sw.

#List radar sites

GET/api/v1/nexrad/sites

The serveable WSR-88D sites (id, name, state, lat/lon).

curl
curl "https://atmostorm.com/api/v1/nexrad/sites"

#Single-site radar tile

GET/api/v1/nexrad/{site}/{product}/{z}/{x}/{y}.png
Parameters
siterequired
string
4-letter site id, e.g. KTLX (see /nexrad/sites).
productrequired
string
reflectivity | velocity | srm | cc | zdr | sw.
tilt
int (0–20)
Elevation-tilt index (0 = lowest). Default: 0.
sm_dir / sm_kt
float
Storm-motion heading (deg) and speed (kt) — srm product only.
url
https://atmostorm.com/api/v1/nexrad/KTLX/reflectivity/8/59/106.png

#HRRR forecast tiles

#List HRRR variables

GET/api/v1/hrrr/variables

The renderable HRRR fields (CAPE, SRH, shear, STP, 2 m temp/dewpoint, 10 m wind, …), each with its id, label, units, and palette.

curl
curl "https://atmostorm.com/api/v1/hrrr/variables"

#HRRR forecast tile

GET/api/v1/hrrr/tiles/{variable}/{z}/{x}/{y}.png
Parameters
variablerequired
string
HRRR variable id (see /hrrr/variables).
valid
YYYYMMDDHH
Forecast valid time (UTC). Mutually exclusive with ts.
ts
YYYYMMDDHHMM
Specific model-run frame. Omit both valid and ts for the latest analysis; see /hrrr/timeline.
url
https://atmostorm.com/api/v1/hrrr/tiles/sbcape/6/14/25.png

#Point briefing

#Plain-language point briefing

GET/api/v1/briefing/point

The interpretation layer, not another data mirror: a plain-language briefing for a single point — what's happening, what it means, and storm ETA — synthesized from the active alerts, outlooks, and forecast covering that spot.

Parameters
latrequired
float
Latitude.
lonrequired
float
Longitude.
curl
curl "https://atmostorm.com/api/v1/briefing/point?lat=35.22&lon=-97.44"

#Storm cell

#Enriched warning + storm intel

GET/api/v1/storms/{alert_id}

A GeoJSON Feature for one warning polygon, enriched with the linked SPC watch and mesoscale discussion, the storm reports filed inside it, and — for storm-based warnings — a motion vector, projected cone, and rotation summary.

curl
curl "https://atmostorm.com/api/v1/storms/12345"

#Critical facilities

#Facilities in a viewport

GET/api/v1/facilities

Hospitals, nursing homes, mobile-home parks, schools, dialysis centers, and response assets (fire / EMS / police) within a bounding box. Decision-support only — coverage is incomplete for some kinds.

Parameters
bboxrequired
w,s,e,n
west,south,east,north (lon/lat degrees).
kind
string
Comma-separated kinds, e.g. hospital,nursing_home. Omit for all.
curl
curl "https://atmostorm.com/api/v1/facilities?bbox=-97.8,35.1,-97.1,35.7&kind=hospital,school"

#Who & what is in the path

GET/api/v1/facilities/impact

For a single alert, the exact per-kind counts and an enumerated list of the facilities inside the warning polygon (geography-native ST_Covers). Returns has_polygon: false for zone-only alerts.

Parameters
alert_idrequired
int
Alert whose polygon to test for coverage.
curl
curl "https://atmostorm.com/api/v1/facilities/impact?alert_id=12345"

#Jurisdiction summary

#County warning summary

GET/api/v1/jurisdiction/summary

The active hazards and recent activity for one county — by fips, or by state + slug (the SEO weather-page route).

Parameters
fips
string
5-digit county FIPS (or use state + slug).
state
string
USPS state code, paired with slug.
slug
string
County-name slug, paired with state.
curl
curl "https://atmostorm.com/api/v1/jurisdiction/summary?fips=40027"

#Damage tracks

#Surveyed damage tracks (NWS DAT)

GET/api/v1/damage-tracks

Post-storm surveyed tornado / wind damage paths from the NWS Damage Assessment Toolkit. Geometry in lon/lat (WGS84); lengths and widths in SI meters, per the project convention.

Parameters
bbox
w,s,e,n
Bounding-box filter.
fips
string
County FIPS — tracks intersecting it.
days
int (1–365)
Lookback window by storm date. Default: 60.
min_ef
int (0–5)
Minimum EF rating.
curl
curl "https://atmostorm.com/api/v1/damage-tracks?days=30&min_ef=2"

#Live stream (SSE)

#Server-Sent Events feed

GET/api/v1/stream

A long-lived text/event-stream that pushes a small event whenever an ingestor publishes fresh data (new alerts, radar frames, …) — connect once and refresh reactively instead of polling. Rate-limit-exempt.

curl
curl -N "https://atmostorm.com/api/v1/stream"

#Meta / health

#System health

GET/api/v1/meta/health

Per-source ingest status, with last-success timestamps and rolling success rates.

curl
curl "https://atmostorm.com/api/v1/meta/health"

#List data sources

GET/api/v1/meta/sources

Which feeds are implemented, their cadence, and their status.