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 Update replaces the message it references. A Cancel ends it. Replaced and cancelled alerts are never returned as active.
  • A message that only cancels, upgrades or expires an event (VTEC action CAN, UPG or EXP) ends the earlier messages for that event and is not returned as active itself.
  • Cancel messages end the alert they refer to and are never returned as active. With include_expired they appear among ended alerts when they carry a polygon.
  • Alerts are removed once NWS drops them from its active feed or their ends time passes (expires when there is no ends).
  • Ended alerts are kept for 90 days. Use include_expired=true with since to 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 and metadata.warnings says 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.

GET
/alerts/nws/

Authorization

Authorization<token>

Token-based authentication with required prefix "Token"

In: header

Query Parameters

certainty?string

Optional: CAP certainty. Comma-separated, any of: Observed, Likely, Possible, Unlikely, Unknown.

event?string

Optional: Comma-separated NWS event names, matched case-insensitively (e.g. Tornado Warning, Severe Thunderstorm Warning, Winter Storm Warning).

include_expired?boolean

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.

include_geometry?boolean

Optional: Add each alert's GeoJSON geometry: the storm-based polygon when NWS issued one, otherwise the union of its zones. Default false.

lat?number

Latitude in decimal degrees (-90 to 90). Required unless location_id is sent.

Formatfloat
location_id?integer

Optional: 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.

lon?number

Longitude in decimal degrees (-180 to 180). Required unless location_id is sent.

Formatfloat
message_type?string

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.

severity?string

Optional: CAP severity. Comma-separated, any of: Extreme, Severe, Moderate, Minor, Unknown.

since?string

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).

Formatdate-time
status?string

Optional: CAP status. Comma-separated, any of: Actual, Exercise, System, Test, Draft. Default Actual.

urgency?string

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  }}

On this page