Community. Driven. Weather. Data. | Always Ad-Free | Developer FriendlyChecking statusDiscord
WxAlerts.org, Community Driven Weather Data
Support us
Sign in
API

REST API

Active alerts, warning polygons and location search over plain HTTP JSON.


Base URL: https://api.wxalerts.org

Everything below is public, unauthenticated and CORS-enabled, because this site is built static and calls the same endpoints from the browser. No key, and none of it is exempt from the Terms of Service; the clauses that decide what you may build are collected at the bottom.

Stats

GET /stats/summary

Active alert counts and the lightning window.

{
  "server_time": "2026-08-17T18:04:11Z",
  "alerts": { "active": 142, "with_geometry": 138 },
  "lightning": {
    "flashes": 1243891,
    "window_seconds": 10800,
    "rate_per_minute": 1021,
    "retention_hours": 3,
    "covers_full_day": false
  }
}

Branch on covers_full_day rather than assuming the window means “today”, GLM retention is a few hours, so a daily total usually does not exist.

Alerts

GET /alerts/highest-severity?limit=3
GET /alerts/in-bounds?west=&south=&east=&north=
GET /alerts/focus?limit=25&strategy=auto

in-bounds returns GeoJSON: a FeatureCollection whose features carry the warning polygon and the alert properties. focus picks a viewport for you when you do not have one, which is useful for a kiosk or a screenshot bot, and says why in focus.reason.

Each alert carries both a CAP severity and a VTEC significance. Colour by significance: it is the axis the NWS asks people to read, and CAP severity puts every Special Weather Statement at Moderate, which is not a watch.

significance Meaning
W Warning: occurring or imminent
A Watch: conditions favourable
Y Advisory: less serious
S Statement

SPC outlooks

GET /outlooks
GET /outlooks/{product}/geojson

The Storm Prediction Center’s convective outlooks: Day 1 to Day 3 categorical, and the Day 1 tornado, hail and wind probabilities. /outlooks lists what is currently issued without geometry, and is what a product picker should be built from, since it says which outlooks have actually been fetched and when.

Each feature carries SPC’s own stroke and fill. Use them: the colours of a convective outlook are the product, and readers already know how to read them. Features come back lowest risk first, which is also the order to draw them, since a Slight Risk area sits inside the General Thunderstorms area it is part of.

significant: true marks the hatched 10% significant-severe area. Hatch it rather than filling it. It is a second statement about ground the probabilities have already coloured (“of those storms, 10% or more would be EF2 or stronger”), and a solid fill reads as a higher probability than SPC issued.

An outlook with nothing to draw returns zero features and is not an error. The summary’s empty_label carries the forecaster’s own phrasing, usually "Less Than 5% All Areas", which is how a client tells no risk from no data.

Locations

GET /locations/search?q=denton&limit=8

States, counties, cities and ZIPs. Results carry a centroid and a suggested zoom rather than a bounding box, so the API does not have to invent an extent for a point.

Rate limits

Unauthenticated clients get 60 requests per minute. Past that a client is presumptively unreasonable and may be throttled or blocked, per Terms §3.

Enforcement is coarser than that figure: it keys on source IP at a much higher ceiling, because one IP behind carrier-grade NAT or an office is many clients and metering it at 60 would cut all of them off together. /limits has the current numbers and the reasoning. The gap is not headroom: 60 is still the limit your client is held to, and the response to sitting above it is a mail asking you to stop.

Sixty is more than this data justifies anyway. Alerts change on the order of minutes and the stats summary on the order of seconds, so cache what you can and poll on the interval your display actually refreshes at. If you have a case for more, say hello in Discord before you start rather than after you are blocked.

Keyed API access and authenticated MQTT are governed separately, under the API Terms of Use and the limits set at issuance (Terms §20). Nothing on this page needs a key.

Terms

The full text is at /terms. Three clauses decide whether what you are building is allowed:

  • Personal, educational and research use. The licence covers those (§4.1). Reselling the feed, redistributing it for gain, or building a commercial service on top of it needs written permission first (§3). The endpoints being open is not that permission; ask first.
  • Attribute, and do not imply endorsement. NWS and NOAA data stays theirs: do not claim it as your own, do not present it as official government output, and do not imply NOAA or the NWS endorses what you built (§4.3, §3). The derived products (processed GLM, ML nowcasts, anything under focus) are ours, and are not official NWS products either. Credit both: NWS/NOAA for the alert, WxAlerts for the processing.
  • No EAS or WEA tones. You may not reproduce, transmit or simulate the WEA attention signal, the EAS Attention Signal or EAS header codes, or anything substantially similar, from API output, including as a notification sound (§3.1). This one is FCC rule, not house style.