NWS Active Weather Alerts Scraper
parseforge/nws-active-alerts-scraper
News & mediaBusinessAutomation
Scrapes active weather alerts from the National Weather Service. Filter by area, severity, urgency, or event type, and get each alert as a flat row.
- Total users
- 1
- Monthly active
- 0
- Total runs
- 87
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
NWS Active Weather Alerts Scraper
Scrape active weather alerts from the National Weather Service, filtered by state, severity, urgency, or event type. Each alert comes with its full text, affected area, and issuance details. No API key or login. Export to CSV, JSON, Excel, or XML.
The National Weather Service publishes active alerts for every US state and marine zone, but their API returns raw CAP XML that is hard to parse and filter. This Actor reads the public alert feed directly, applies your filters as it goes, and returns each alert as one clean row. You get the same data without writing a single line of code.
| Who uses it | What they scrape National Weather Service for |
|---|---|
| Emergency managers | Monitor active warnings for their county or region |
| Newsrooms and weather bloggers | Pull the latest severe weather alerts for their coverage area |
| Insurance and risk analysts | Track storm warnings to assess exposure in real time |
| Outdoor event planners | Check for weather watches and warnings before an event |
| Researchers and students | Collect historical alert data for climatology or social science studies |
What it does
This Actor collects active NWS alerts by area, severity, urgency, or event type, and returns each alert as a flat row.
- ๐ Area filter: restrict alerts to a US state code like CA or TX, or a marine area code.
- โ ๏ธ Severity filter: choose from Extreme, Severe, Moderate, Minor, or Unknown.
- โฑ๏ธ Urgency filter: choose from Immediate, Expected, Future, Past, or Unknown.
- ๐ช๏ธ Event type filter: narrow to a specific event like Tornado Warning or Flood Watch.
- ๐ข Max alerts: cap the number of alerts collected per run, from 1 to 1,000,000.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with National Weather Service data
๐จ Monitor severe weather for your county.
An emergency manager runs the Actor every 10 minutes with area set to their state and severity set to Severe or Extreme, then pushes new alerts to a Slack channel for immediate response.
๐ฐ Feed a local news weather page.
A newsroom developer schedules the Actor hourly with area set to their coverage state, then renders the returned alerts on the station's website.
๐ Track alert frequency for research.
A climatology student runs the Actor daily with no filters and stores the results in a database to analyze how often tornado warnings occur in different regions.
๐๏ธ Check conditions before an outdoor event.
An event planner runs the Actor the morning of a festival with area set to the venue's state and event type set to Flood Watch, then decides whether to postpone.
Why choose this scraper
| What you get | |
|---|---|
| No API key | The public NWS alert feed requires no registration or authentication. |
| Clean flat rows | Every alert is returned as one row with consistent fields, ready for spreadsheets or databases. |
| Real-time data | Each run pulls the current active alerts, so you always get the latest warnings. |
| Flexible filters | Combine area, severity, urgency, and event type to get exactly the alerts you need. |
How it compares
No other Store actor targets National Weather Service the same way, so the honest comparison is with the alternatives teams actually weigh.
| NWS Active Weather Alerts Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When National Weather Service changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with an area, severity, urgency, or event type, alone or together, and filters run as each alert is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the NWS Active Weather Alerts Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to National Weather Service through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nws-active-alerts-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. If you set area to a state code that has no active alerts, or severity to Extreme when there are none, the run will return zero items. Try clearing all filters and running again to see all active alerts.
Why did I get fewer alerts than maxItems?
The Actor returns only the alerts that match your filters and are currently active. If there are fewer active alerts than your maxItems value, you will get all of them.
Why is the area filter not working for my state?
Use the two-letter US state code in uppercase, like CA for California or TX for Texas. For marine areas, use the marine area code as published by the NWS.
Can I get alerts for US territories like Puerto Rico?
Yes. The NWS issues alerts for US territories. Use the territory's two-letter code, like PR for Puerto Rico or VI for the US Virgin Islands.
Why does the event type filter return no results for 'Tornado Warning'?
Event type is case-sensitive and must match the NWS event name exactly. Try 'Tornado Warning' with capital letters, or leave the field blank to see all event types.
FAQ
| Question | Answer |
|---|---|
| What is the National Weather Service? | The National Weather Service (NWS) is a US government agency that issues weather forecasts, watches, warnings, and advisories for the United States and its territories. |
| What is an active alert? | An active alert is a weather watch, warning, or advisory that is currently in effect. The NWS publishes these alerts in a standard format called CAP (Common Alerting Protocol). |
| Do I need an API key to use this Actor? | No. This Actor reads the public NWS alert feed, which does not require any authentication or API key. |
| What filters can I apply? | You can filter by area (US state code or marine area code), severity (Extreme, Severe, Moderate, Minor, Unknown), urgency (Immediate, Expected, Future, Past, Unknown), and event type (e.g. Tornado Warning, Flood Watch). |
| Can I get alerts for multiple states at once? | The area filter accepts one state code per run. To get multiple states, run the Actor multiple times with different area values, or leave the area blank to get all alerts. |
| What is the maximum number of alerts I can collect? | You can set maxItems up to 1,000,000 alerts per run. The default is 10. |
| How often should I run this Actor? | Alerts change frequently. For real-time monitoring, schedule the Actor to run every 5 to 15 minutes. For less time-sensitive use cases, hourly or daily runs are fine. |
| What format is the output data in? | The Actor returns each alert as a flat row with fields like headline, description, area, severity, urgency, and event type. You can export the dataset to CSV, JSON, Excel, or XML. |
| Does this Actor include expired alerts? | No. It only collects alerts that are currently active at the time of the run. Expired alerts are not included. |
| Can I filter by a specific city or county? | The area filter accepts US state codes and marine area codes. For finer granularity, you can filter by event type or severity, or post-process the results by the affected zones field. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by National Weather Service. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| area | string | Filter by US state code (e.g. CA, TX) or marine area code. | not set |
| severity | string (6 options) | Restrict to one severity level. | all |
| urgency | string (6 options) | Restrict to one urgency level. | all |
| event | string | Filter by event type (e.g. Tornado Warning, Flood Watch). | not set |
| maxItems | integer | Maximum number of alerts to collect per run. | 10 |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~nws-active-alerts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
