US Weather Alerts API — NWS Warnings by State, Zone or Point
Pricing
from $1.00 / 1,000 alert returneds
US Weather Alerts API — NWS Warnings by State, Zone or Point
Get active US weather alerts (tornado, flood, hurricane, heat, winter storm...) from the official National Weather Service API. Search by state, NWS zone or lat/lon point, filter by severity and event type. Pay only for alerts returned.
Pricing
from $1.00 / 1,000 alert returneds
Rating
0.0
(0)
Developer
KeyMan98
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Get every currently active severe weather alert — tornado warnings, flood watches, winter storm warnings, heat advisories, and every other National Weather Service alert type — for a US state, a specific NWS forecast zone, or an exact latitude/longitude point. Pulls data through the NWS's own official, public API (api.weather.gov) — no scraping, no third-party weather provider — and exports the results to CSV, Excel, or JSON.
What you get (output fields)
For each active alert, one dataset row with:
id— NWS alert identifier, unique per alert.event— alert type, e.g.Tornado Warning,Flood Watch,Winter Storm Warning.severity/urgency/certainty— NWS's own classification (e.g. severity:Extreme,Severe,Moderate,Minor,Unknown).headline— short one-line summary, as issued.description— full alert text (on by default; turn offincludeDescriptionto skip it).instruction— recommended action for the public, when NWS provides one.areaDesc— human-readable description of the affected area(s).affectedZones/states— NWS zone codes covered by the alert, and the US state codes derived from them.onset/effective/expires/ends— the alert's timing.senderName— issuing NWS office.status/messageType— e.g.Actual/Update.web— the alert's own NWS API URL.queryType/queryValue— which input (state, zone, or point) found this alert.error— set only on rows that could not be resolved (see below); null otherwise.
Who it's for
- Logistics and delivery — check active alerts along a route or in a service area before dispatching.
- Insurance — flag active severe-weather exposure by state or ZIP-level point.
- Outdoor events — check conditions for a venue's exact coordinates before an event.
- Apps and dashboards — feed structured, machine-readable alert data into a map or feed.
- Automations and monitoring — run on a schedule and trigger a notification when a new alert appears (see FAQ).
How to use
- States — one or more US state/territory 2-letter codes, e.g.
TX,FL,CA. - Zones (optional) — NWS forecast/county zone codes, e.g.
TXZ211, for one specific area instead of a whole state. - Points (optional) —
latitude,longitudepairs, e.g.32.7767,-96.7970, for one exact location. - Severities / event types (optional) — narrow the results, e.g. only
SevereandExtreme, or onlyTornado Warning. - Run the Actor. Each active alert becomes one row. An alert covering more than one of your states/zones/points is only returned once.
Input example (JSON)
{"states": ["TX", "FL", "CA"],"zones": [],"points": [],"severities": [],"events": [],"includeDescription": true}
Output example (JSON)
{"id": "urn:oid:2.49.0.1.840.0.e8b6eb8e3ea0784c510b3f1e1f21c671cc761aac.001.1","event": "Flood Watch","severity": "Severe","urgency": "Future","certainty": "Possible","headline": "Flood Watch issued September 24 at 2:17AM MDT until September 25 at 6:00AM MDT","areaDesc": "Guadalupe Mountains of Eddy County; Eastern Culberson County; Davis Mountains","affectedZones": ["TXZ062", "TXZ066"],"states": ["TX"],"onset": "2026-09-24T02:17:00-06:00","expires": "2026-09-24T14:15:00-06:00","senderName": "NWS Midland/Odessa TX","status": "Actual","messageType": "Update","web": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.e8b6eb8e3ea0784c510b3f1e1f21c671cc761aac.001.1","queryType": "state","queryValue": "TX","error": null}
If a state, zone or point is invalid
That entry becomes one error row: error is set to NWS's own explanation (e.g. an unknown state code, a malformed zone, or a point outside NWS's coverage), every other field is null except queryType/queryValue. The run does not fail, the rest of your inputs keep running, and you are not charged for that row.
If your whole run finds no active alerts and no errors, one extra summary row (queryType: "summary", a message field, error: null) explains that — so the dataset is never silently empty.
Pricing
Pay only for alerts actually returned — nothing charged for an invalid state/zone/point, for a query with no active alerts, or for the summary row. An alert found through more than one state/zone/point is only charged once. Pricing model: pay-per-event.
| Event | When it's charged | Price |
|---|---|---|
alert-returned | an active alert was returned in the results | 0.001 USD |
Limitations
- Covers the US and its territories only (all areas NWS itself covers) — not other countries.
- Active alerts only — this is not a forecast. It does not predict future weather or return alerts that already expired.
- No historical alerts: only what's active right now, at the moment the Actor runs.
- A state, zone, and point cannot be mixed in the same underlying NWS request — this Actor already handles that by querying each one separately, so you can freely combine all three in one run.
statesis not validated locally against a hardcoded list — NWS is the source of truth; an unrecognized code comes back as a clear error row instead.
FAQ
Am I charged if a state, zone or point is invalid?
No. You are only charged for alerts actually returned in the results.
What's the difference between states, zones and points?
A state returns every alert affecting that state. A zone is a smaller NWS forecast area (e.g. one county or part of one) — use it to narrow results to a specific spot. A point is one exact latitude/longitude — use it for one address or venue.
How do I find a zone code?
NWS publishes the full zone list at weather.gov/gis/publicgis and via api.weather.gov/zones; zone codes look like TXZ211 (2-letter state + Z/C + 3 digits). If you don't already know the code, use a point (latitude/longitude) or the whole state instead.
Is this official National Weather Service data?
Yes. Every request goes straight to api.weather.gov, NWS's own public API, with no intermediate provider. Alert data is US government public-domain data.
How often is this updated?
Every time you run it — the results reflect whatever is active on api.weather.gov at that moment. NWS issues, updates, and cancels alerts continuously; there is no fixed refresh schedule to match, run the Actor whenever you need the current state.
Can I get notified when a new alert appears?
Yes. Run this Actor on a schedule (Apify's built-in scheduler) and compare the id field against your last run's results — a new id means a new alert.
Can I filter by severity or event type at the same time as by state?
Yes. severities and events apply to every state/zone/point in the same run.
Can I use this through the Apify API or an MCP server?
Yes, like any Apify Actor — through the standard Apify API, or through the Apify MCP server if you use Claude, Cursor, or another MCP-enabled client.
Export
Results can be downloaded from the Apify dataset as JSON, CSV, or Excel, or accessed via the Apify API.