NWS Weather Alerts & Severe Storm Warnings Scraper (USA)
Pricing
from $11.34 / 1,000 results
NWS Weather Alerts & Severe Storm Warnings Scraper (USA)
Scrape active US National Weather Service alerts by state or point: tornado, flood, hurricane, heat and winter warnings with severity, urgency, affected counties, instructions and expiry. Export to JSON, CSV or Excel.
Pricing
from $11.34 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
NWS Weather Alerts & Severe Storm Warnings Scraper (USA)
Here is one real result, with every field the actor returns:
{"alertId": "urn:oid:2.49.0.1.840.0.9a8f54e6e50ad7bfae50e06ec65ad9bc9a666615.001.1","event": "Extreme Heat Warning","headline": "Extreme Heat Warning issued August 20 at 1:41PM PDT until August 23 at 8:00PM PDT by NWS San Diego CA","severity": "Severe","urgency": "Expected","certainty": "Likely","category": "Met","messageType": "Update","status": "Actual","areaDesc": "Coachella Valley; San Diego County Deserts; San Gorgonio Pass Near Banning","states": ["CA"],"senderName": "NWS San Diego CA","sent": "2026-08-20T13:41:00-07:00","effective": "2026-08-20T13:41:00-07:00","onset": "2026-08-20T13:41:00-07:00","expires": "2026-08-20T21:45:00-07:00","ends": "2026-08-23T20:00:00-07:00","description": "* WHAT...Dangerously hot conditions with temperatures up to 113.\n\n* WHERE...Coachella Valley, San Diego County Deserts, and San Gorgonio Pass near Banning.\n\n* WHEN...Until 8 PM PDT Sunday.\n\n* IMPACTS...Heat related illnesses increase significantly during extreme heat events.","instruction": "Drink plenty of fluids, stay in an air-conditioned room, stay out of the sun, and check up on relatives and neighbors.","nwsHeadline": "EXTREME HEAT WARNING REMAINS IN EFFECT UNTIL 8 PM PDT SUNDAY","vtec": "/O.CON.KSGX.XH.W.0008.000000T0000Z-260824T0300Z/","affectedZoneCount": 3,"affectedZonesUGC": ["CAZ061", "CAZ062", "CAZ065"],"affectedSameCodes": ["006065", "006073"],"allClear": false,"queryArea": "CA","queryPoint": null,"forecastPeriod": null,"forecastTemperature": null,"forecastTemperatureUnit": null,"forecastWindSpeed": null,"forecastWindDirection": null,"forecastShort": null,"forecastDetailed": null,"forecastOffice": null,"forecastCity": null,"aiPlainSummary": null,"aiWhoIsAffected": null,"aiRecommendedAction": null,"aiRiskLevel": null,"source": "NWS","observedAt": "2026-08-21T00:25:13.047Z","error": null}
The most complete US weather alerts scraper available. It returns every field the National Weather Service publishes for each active alert, including the full description and protective-action instructions, plus derived fields (state codes, affected zone and county codes, an all-clear flag), and gives you six filters plus two paid add-ons to target exactly the alerts you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor pulls active US National Weather Service alerts for the states or point you pass, applies your filters, and writes one normalized record per alert to the run's dataset. It covers every alert type the NWS issues: tornado, severe thunderstorm, flash flood, hurricane and tropical storm, winter storm, blizzard, extreme heat, air quality, red flag fire, coastal and marine warnings, and more.
Each record carries the alert event, severity, urgency and certainty, the affected counties and zones, the issuing office, the full timing (sent, effective, onset, expires, ends), the complete description, and the recommended protective actions. Derived fields are added on top of the raw source: two-letter states, the affected affectedZonesUGC and affectedSameCodes code lists, and an allClear flag. When a state or point has no active alerts, the actor returns a single allClear row and does not charge for it.
Two opt-in paid add-ons are available: a short-term location forecast for a point input, and an AI action summary that turns each alert into a plain-language summary, who is affected, a recommended action, and a risk level.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 active alerts for Texas.
{"area": "TX","maxResults": 10}
Pass a comma-separated list to cover several states in one run, for example "area": "FL,GA,AL". Use a point instead of area to get alerts covering one exact location, for example "point": "29.76,-95.36". Add severity or event to narrow the results.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
area | string | conditional | (empty) | One or more two-letter US state or territory codes, comma separated, for example TX, FL,GA or CA,OR,WA. Provide this or point. |
point | string | conditional | (empty) | Latitude and longitude as lat,lon, for example 29.76,-95.36, to get alerts covering that exact location. Provide this or area. |
event | string | no | (empty) | Keep only alerts whose event name contains this text, for example Tornado, Flood, Hurricane, Winter Storm, Heat. Case-insensitive. |
severity | enum | no | (any) | Return only alerts at this severity: Extreme, Severe, Moderate, Minor. |
urgency | enum | no | (any) | Return only alerts at this urgency: Immediate, Expected, Future. |
status | enum | no | actual | actual returns real operational alerts. test returns system test messages. |
includeForecast | boolean | no | false | Paid add-on (paid plans, point input only). Adds the short-term NWS forecast for the point. Charged only when a real forecast is returned. |
aiAlertAction | boolean | no | false | Paid add-on (paid plans). Adds an AI plain-language summary, who is affected, a recommended action, and a risk level per alert. Charged only when a usable result is produced. |
maxResults | integer | no | 10 | Maximum alert records to return across the run. Free Apify plans are capped at 10 per run. |
Either area or point is required. Filters combine with logical AND.
Output reference
One dataset item per active alert. Types: string, number, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
alertId | string | Unique NWS alert identifier. |
event | string | Alert event type, for example Tornado Warning, Flood Watch, Extreme Heat Warning. |
headline | string | Human-readable alert headline. |
severity | string | Extreme, Severe, Moderate, Minor, or Unknown. |
urgency | string | Immediate, Expected, Future, Past, or Unknown. |
certainty | string | Observed, Likely, Possible, Unlikely, or Unknown. |
category | string | Alert category, for example Met (meteorological). |
messageType | string | Alert, Update, or Cancel. |
status | string | Alert status, for example Actual or Test. |
areaDesc | string | Affected areas described (counties and zones), semicolon separated. |
states | string[] | Two-letter US state codes covered by the alert. |
senderName | string | Issuing NWS office. |
sent | string | When the alert was sent (ISO 8601). |
effective | string | When the alert becomes effective (ISO 8601). |
onset | string | When the hazard is expected to begin (ISO 8601). |
expires | string | When the alert message expires (ISO 8601). |
ends | string | When the hazard is expected to end (ISO 8601). |
description | string | Full alert description narrative. |
instruction | string | Recommended protective action instructions. |
nwsHeadline | string | Extra NWS headline parameter, if present. |
vtec | string | VTEC event code string, if present. |
affectedZoneCount | number | Number of affected forecast or county zones. |
affectedZonesUGC | string[] | UGC zone and county codes affected. |
affectedSameCodes | string[] | SAME (FIPS) county codes affected. |
allClear | boolean | true when there are no active alerts for the query. These rows are not charged. |
queryArea | string | The area input that produced this record. |
queryPoint | string | The point input that produced this record. |
forecastPeriod | string | Forecast add-on: period name, for example Tonight. |
forecastTemperature | number | Forecast add-on: temperature. |
forecastTemperatureUnit | string | Forecast add-on: temperature unit (F or C). |
forecastWindSpeed | string | Forecast add-on: wind speed. |
forecastWindDirection | string | Forecast add-on: wind direction. |
forecastShort | string | Forecast add-on: short forecast text. |
forecastDetailed | string | Forecast add-on: detailed forecast text. |
forecastOffice | string | Forecast add-on: NWS forecast office code. |
forecastCity | string | Forecast add-on: nearest city to the point. |
aiPlainSummary | string | AI add-on: plain-language summary of the alert. |
aiWhoIsAffected | string | AI add-on: who and where is affected. |
aiRecommendedAction | string | AI add-on: most important recommended action. |
aiRiskLevel | string | AI add-on: risk level (low, moderate, high, extreme). |
source | string | Data source. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run with the location forecast add-on (input {"point": "29.76,-95.36", "includeForecast": true}):
{"alertId": "urn:oid:2.49.0.1.840.0.c35c7a4380227a208f17cf70594085980a2954d2.001.1","event": "Heat Advisory","headline": "Heat Advisory issued August 20 at 1:30PM CDT until August 21 at 7:00PM CDT by NWS Houston/Galveston TX","severity": "Moderate","urgency": "Expected","certainty": "Likely","category": "Met","messageType": "Update","status": "Actual","areaDesc": "Houston; Trinity; Madison; Walker; San Jacinto; Polk; Burleson; Brazos; Montgomery; Inland Harris; Fort Bend; Coastal Galveston; Galveston Island","states": ["TX"],"senderName": "NWS Houston/Galveston TX","onset": "2026-08-20T13:30:00-05:00","expires": "2026-08-20T21:30:00-05:00","ends": "2026-08-21T19:00:00-05:00","instruction": "Drink plenty of fluids, stay in an air-conditioned room, stay out of the sun, and check up on relatives and neighbors.","affectedZoneCount": 33,"queryArea": null,"queryPoint": "29.76,-95.36","forecastPeriod": "Tonight","forecastTemperature": 81,"forecastTemperatureUnit": "F","forecastWindSpeed": "5 to 10 mph","forecastWindDirection": "S","forecastShort": "Slight Chance Showers And Thunderstorms then Partly Cloudy","forecastOffice": "HGX","forecastCity": "Houston","source": "NWS","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~nws-weather-alerts-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"area":"TX,OK","event":"Tornado","maxResults":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~nws-weather-alerts-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"area":"CA","severity":"Severe","maxResults":100}'
Apify CLI:
apify call scrapers_lat/nws-weather-alerts-scraper \--input '{"point":"29.76,-95.36","includeForecast":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per active alert returned (
resultevent). See the pricing tab for the current per-result price. - No charge on all-clear or failure. When a state or point has no active alerts, the actor returns a single
allClearrow and does not charge. If a run errors, it writes a single item with a populatederrorfield and does not charge for it. - Add-ons are opt-in and paid-plan only. The location forecast and AI alert action add-ons are disabled for free users, default off, and charge only when they genuinely return data.
- Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxResults.
FAQ and troubleshooting
A run returned a single row with allClear: true. Why?
That state or point has no active alerts right now. This is a valid all-clear response and is not charged. Many states have zero active alerts on a calm day.
How do I get only the most serious warnings?
Set severity to Extreme or Severe, or set event to a specific type such as Tornado or Hurricane. You can combine both.
Can I monitor several states at once?
Yes. Pass a comma-separated list in area, for example FL,GA,AL,SC.
What is the difference between area and point?
area returns every active alert for the listed states. point returns only the alerts whose polygon or zone covers that exact latitude and longitude, which is useful for a single facility, farm, or route waypoint.
What does the location forecast add-on add?
For a point input, it fetches the short-term NWS forecast for that location (period, temperature, wind, and conditions) and attaches it to the alerts, so you get both the warning and the near-term outlook in one row.
What does the AI alert action add-on add? It reads each alert and returns a plain-language summary, who is affected, the single most important action to take, and a risk level, so non-specialists can act on the alert quickly.
Is this an official NWS tool? No. This actor is independent and has no affiliation with the National Weather Service or NOAA. It reads only data that is publicly available. Always follow official guidance from local authorities during a weather emergency.
Related scrapers
- Open-Meteo Weather Forecast Scraper: global weather forecasts and historical weather by location.
- openFDA Food Recall & Enforcement Scraper: US food recalls and enforcement reports.
- NHTSA Vehicle Complaints & Safety Ratings Scraper: US vehicle safety complaints and NCAP ratings.
- Federal Register Document Scraper: US Federal Register documents.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the National Weather Service or NOAA. Accesses only publicly available data. Always follow official guidance from local authorities during a weather emergency.
