NWS Alerts - Polygon
## NWS Alerts - Polygon
NWS Alerts - Polygon
Active National Weather Service watches, warnings and advisories that touch an area.
POST a GeoJSON Polygon or MultiPolygon (or a Feature wrapping one) in [lon, lat] order,
up to 5,000 vertices. Every alert whose area intersects it is returned. Filters go in the query
string, the same as the point endpoint.
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.
Optional: 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.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/alerts/nws/polygon/?event=Tornado+Warning%2CSevere+Thunderstorm+Warning" \ -H "Content-Type: application/json" \ -d '{ "type": "string" }'{ "location": { "bbox": [ -85.9, 31.8, -85.4, 32.1 ] }, "count": 1, "alerts": [ { "id": "urn:oid:2.49.0.1.840.0.89401f5530d0ca5022fcca4bb3ed2ad71a203663.001.1", "event": "Flash Flood Warning", "headline": "Flash Flood Warning issued October 4 at 9:34PM CDT until October 5 at 12:30AM CDT by NWS Birmingham AL", "nws_headline": null, "description": "The National Weather Service in Birmingham has issued a\n\n* Flash Flood Warning for...\nNorthern Barbour County...", "instruction": "Be especially cautious at night when it is harder to recognize the\ndangers of flooding.", "severity": "Severe", "urgency": "Immediate", "certainty": "Likely", "status": "Actual", "message_type": "Alert", "category": "Met", "response": "Avoid", "sender": "w-nws.webmaster@noaa.gov", "sender_name": "NWS Birmingham AL", "area_desc": "Barbour, AL; Bullock, AL; Pike, AL", "ugc": [ "ALC005", "ALC011", "ALC109" ], "vtec": [ "/O.NEW.KBMX.FF.W.0037.261005T0234Z-261005T0530Z/" ], "references": [], "sent": "2026-10-05T02:34:00Z", "effective": "2026-10-05T02:34:00Z", "onset": "2026-10-05T02:34:00Z", "expires": "2026-10-05T05:30:00Z", "ends": "2026-10-05T05:30:00Z", "geometry_source": "polygon", "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.89401f5530d0ca5022fcca4bb3ed2ad71a203663.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 }}
