NWS Alerts - Point
## NWS Alerts - Point
NWS Alerts - Point
Active National Weather Service watches, warnings and advisories for a coordinate or a saved location.
Send lat and lon, or location_id for one of your saved locations (or your organization's).
Data source
Watches, warnings, advisories and statements from the National Weather Service, read from
api.weather.gov/alerts/active every 60 seconds. New alerts are normally in this API within
two minutes of NWS issuing them.
Matching
- Storm-based alerts (tornado, severe thunderstorm, flash flood warnings and similar) match by the polygon NWS drew.
- Zone-based alerts (winter storm, heat, wind, flood watches and most advisories) have no polygon. They match by the NWS public, county or fire zones they were issued for.
Lifecycle
- An
Updatereplaces the message it references. ACancelends it. Replaced and cancelled alerts are never returned as active. - A message that only cancels, upgrades or expires an event (VTEC action
CAN,UPGorEXP) ends the earlier messages for that event and is not returned as active itself. Cancelmessages end the alert they refer to and are never returned as active. Withinclude_expiredthey appear among ended alerts when they carry a polygon.- Alerts are removed once NWS drops them from its active feed or their
endstime passes (expireswhen there is noends). - Ended alerts are kept for 90 days. Use
include_expired=truewithsinceto see the ones that ended after that time. If more than 5,000 ended alerts fall near the area, only the most recently ended are checked andmetadata.warningssays so.
Filters
event, severity, urgency, certainty, status (default Actual), message_type
(default Alert,Update) and since. Each takes a comma-separated list. Results are ordered
most severe first, then newest first.
Freshness
metadata.last_poll is the last successful read of the NWS feed. If it is more than 3
minutes old, metadata.warnings says so.
Token-based authentication with required prefix "Token"
In: header
Query Parameters
Optional: CAP certainty. Comma-separated, any of: Observed, Likely, Possible, Unlikely, Unknown.
Optional: Comma-separated NWS event names, matched case-insensitively (e.g. Tornado Warning, Severe Thunderstorm Warning, Winter Storm Warning).
Optional: Also return alerts that have expired, been cancelled or been replaced by an update and that ended at or after since (default the last 24 hours). Default false.
Optional: Add each alert's GeoJSON geometry: the storm-based polygon when NWS issued one, otherwise the union of its zones. Default false.
Latitude in decimal degrees (-90 to 90). Required unless location_id is sent.
floatOptional: ID of a saved location to check instead of lat/lon. Must belong to you or to a member of your organization (for an API key, the key's organization). Cannot be combined with lat/lon.
Longitude in decimal degrees (-180 to 180). Required unless location_id is sent.
floatOptional: CAP message type. Cancel messages end an alert and are never returned as active. Comma-separated, any of: Alert, Update, Cancel. Default Alert,Update.
Optional: CAP severity. Comma-separated, any of: Extreme, Severe, Moderate, Minor, Unknown.
Optional: Only active alerts sent at or after this ISO 8601 time (e.g. 2026-10-04T12:00:00Z). Must be within the 90-day retention window. With include_expired=true, ended alerts are returned when they ended at or after this time, however long ago they were sent (default the last 24 hours).
date-timeOptional: CAP status. Comma-separated, any of: Actual, Exercise, System, Test, Draft. Default Actual.
Optional: CAP urgency. Comma-separated, any of: Immediate, Expected, Future, Past, Unknown.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/alerts/nws/?event=Tornado+Warning%2CSevere+Thunderstorm+Warning&lat=44.5134&lon=-90.7406"{ "location": { "lat": 44.5134, "lon": -90.7406 }, "count": 1, "alerts": [ { "id": "urn:oid:2.49.0.1.840.0.921a9f62ea77656f41b361ee67435e569638a9ad.001.1", "event": "Frost Advisory", "headline": "Frost Advisory issued October 4 at 12:25PM CDT until October 5 at 9:00AM CDT by NWS La Crosse WI", "nws_headline": "FROST ADVISORY REMAINS IN EFFECT FROM 1 AM TO 9 AM CDT MONDAY", "description": "* WHAT...Temperatures as low as 34 will result in frost formation.\n\n* WHERE...Adams, Clark, Juneau, Taylor, Jackson, and Monroe Counties.\n\n...", "instruction": "Take steps now to protect tender plants from the cold.", "severity": "Minor", "urgency": "Expected", "certainty": "Likely", "status": "Actual", "message_type": "Update", "category": "Met", "response": "Prepare", "sender": "w-nws.webmaster@noaa.gov", "sender_name": "NWS La Crosse WI", "area_desc": "Taylor; Clark; Jackson; Monroe; Juneau; Adams", "ugc": [ "WIZ017", "WIZ029", "WIZ034", "WIZ042", "WIZ043", "WIZ044" ], "vtec": [ "/O.CON.KARX.FR.Y.0012.261005T0600Z-261005T1400Z/" ], "references": [ "urn:oid:2.49.0.1.840.0.61db9c67ed4856adc1d9f8dc1bb5b14818e858f3.001.1" ], "sent": "2026-10-04T17:25:00Z", "effective": "2026-10-04T17:25:00Z", "onset": "2026-10-05T06:00:00Z", "expires": "2026-10-05T14:00:00Z", "ends": "2026-10-05T14:00:00Z", "geometry_source": "zones", "active": true, "superseded_by": null, "ended_at": null, "end_reason": null, "url": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.921a9f62ea77656f41b361ee67435e569638a9ad.001.1" } ], "metadata": { "source": "National Weather Service (api.weather.gov)", "feed_updated": "2026-10-05T03:45:00+00:00", "last_poll": "2026-10-05T03:49:11.929690+00:00", "filters": { "status": [ "Actual" ], "message_type": [ "Alert", "Update" ], "include_expired": false }, "processing_time_ms": 0.66 }}
