# Weather Alerts Scraper - US National Weather Service (`automly/national-weather-alerts-api`) Actor

Get active US National Weather Service alerts by state: warnings, watches and advisories with event type, severity, urgency, timing, affected areas and safety instructions. Export to CSV, JSON or Excel, schedule runs or use the API.

- **URL**: https://apify.com/automly/national-weather-alerts-api.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Developer tools, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.80 / 1,000 successful weather alert exporteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Weather Alerts Scraper - US National Weather Service

### What is Weather Alerts Scraper?

**Weather Alerts Scraper** is a tool that lets you **scrape active weather alerts from the US National Weather Service (NWS)**: warnings, watches and advisories with severity, urgency, certainty, start and end times, the affected counties and zones, and the full safety text. Enter the states, territories or marine areas you care about, click **Start**, and download the alerts as Excel, CSV or JSON.

- 🌪️ **Every alert type:** Flood Warnings, Heat Advisories, Winter Storm Warnings, Tornado Watches, Beach Hazards and more
- 🗺️ **Any area:** US states, territories such as Puerto Rico and Guam, and marine areas such as the Gulf of Mexico
- 🎯 **Filters:** alert name, severity, urgency and certainty
- 🔓 **No login:** no account or API key needed
- 💸 **Free to try:** the $5 of free usage every Apify account gets each month covers about 6,200 weather alerts

### What can Weather Alerts Scraper do?

- Get active National Weather Service alerts by state, for example `CA,TX,FL`
- Get weather warnings for US territories and marine areas
- Filter NWS alerts by name, such as Flood Warning, Heat Advisory or Winter Storm Warning
- Get only severe or extreme weather alerts
- Get when each alert was sent, when the hazard starts and ends, and when the message expires
- Get the full alert description and the "what to do" safety instructions, or switch them off for a lighter table
- Get the affected forecast zones and SAME county codes, so you can match alerts to your own locations
- Export to Excel, CSV, JSON, HTML or XML, or send the alerts to Slack, Google Sheets, Make, Zapier and more

### What data can you extract from National Weather Service alerts?

| | | |
|---|---|---|
| ⚠️ Alert name (event) | 📰 Headline | 🔴 Severity |
| ⏱️ Urgency | ✅ Certainty | 📌 Status and message type |
| 🗺️ Affected area description | 🏢 Issuing NWS office | 📤 Time sent and effective |
| 🕐 Onset and end of the hazard | ⌛ Expiry time of the message | 📝 Full description |
| 🦺 Safety instructions | 🧭 Forecast zone codes | 🏘️ SAME county codes |

### How to scrape weather alerts

1. [Create a free Apify account](https://console.apify.com/sign-up) (no credit card needed).
2. Open **Weather Alerts Scraper**.
3. Enter one or more **Areas**, separated by commas: state codes such as `CA`, `TX`, `NY`, territories such as `PR` or `GU`, or marine areas such as `PZ` (Pacific coast) or `GM` (Gulf of Mexico).
4. Optionally pick a **Severity filter**, **Urgency filter** or **Certainty filter**, or type an alert name in **Event filter**, set **Maximum results**, then click **Start**.
5. When the run finishes, download the alerts as Excel, CSV, JSON, HTML or XML.

### How much does it cost to scrape weather alerts?

You pay **$0.80 per 1,000 weather alerts** you get. Platform usage is included in this price, so there is nothing else to pay. A run that finds no active alerts produces no rows and no per-alert charge.

For example, 50 alerts cost $0.04, and 1,000 alerts cost $0.80.

Every Apify account gets **$5 of free usage each month**, so you can try it at no cost. See the **Pricing** tab for details.

### ⬇️ Input

| Setting | What it does |
|---|---|
| Areas | Comma-separated area codes, upper or lower case (default `CA`) |
| Event filter | Optional exact alert name, such as `Heat Advisory` |
| Severity filter | Optional: Extreme, Severe, Moderate, Minor or Unknown |
| Urgency filter | Optional: Immediate, Expected, Future, Past or Unknown |
| Certainty filter | Optional: Observed, Likely, Possible, Unlikely or Unknown |
| Maximum results | How many alerts to get, up to 100 per run (default 50) |
| Include description | Add the full alert text (on by default) |
| Include instructions | Add the safety instructions (on by default) |
| Include zones | Add zone codes, SAME codes and zone links (on by default) |

Example: severe alerts in California, Texas and Florida.

```json
{
  "areas": "CA,TX,FL",
  "severity": "Severe",
  "maxResults": 50,
  "includeDescription": true,
  "includeInstructions": true,
  "includeZones": true
}
```

### ⬆️ Output

You get one row per alert. You can view the rows as a table in Apify Console or download them as Excel, CSV, JSON, HTML or XML.

```json
{
  "recordType": "alert",
  "areas": "CA,TX,FL",
  "alertId": "urn:oid:2.49.0.1.840.0.075e6b13131c6917821ba95dba4654944f3a3bab.001.2",
  "event": "Beach Hazards Statement",
  "headline": "Beach Hazards Statement issued September 27 at 4:52AM PDT until September 28 at 5:00AM PDT by NWS San Diego CA",
  "severity": "Moderate",
  "urgency": "Expected",
  "certainty": "Likely",
  "status": "Actual",
  "messageType": "Update",
  "category": "Met",
  "response": "Avoid",
  "areaDesc": "San Diego County Coastal Areas; Orange County Coastal",
  "senderName": "NWS San Diego CA",
  "sent": "2026-09-27T04:52:00-07:00",
  "effective": "2026-09-27T04:52:00-07:00",
  "onset": "2026-09-27T04:52:00-07:00",
  "expires": "2026-09-27T14:15:00-07:00",
  "ends": "2026-09-28T05:00:00-07:00",
  "description": "* WHAT...For the Beach Hazards Statement, minor tidal overflow expected due to the combination of high tides and elevated surf...",
  "instruction": "Remain out of the water to avoid hazardous swimming conditions.",
  "ugcs": "CAZ043 | CAZ552",
  "sameCodes": "006073 | 006059",
  "affectedZones": "https://api.weather.gov/zones/forecast/CAZ043 | https://api.weather.gov/zones/forecast/CAZ552",
  "sourceUrl": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.075e6b13131c6917821ba95dba4654944f3a3bab.001.2",
  "webUrl": "http://www.weather.gov",
  "positionOnPage": 1
}
```

The **Alerts** view in the Output tab shows the columns most people need: alert name, severity, urgency, area, headline, start, end, expiry, issuing office and link.

### How can I use weather alert data?

- **Site and fleet alerts:** watch the states where your stores, warehouses, job sites or trucks are, and send new alerts to Slack, email or a webhook
- **Emergency and business continuity:** feed live warnings into a dashboard for your operations team
- **Insurance, logistics and utilities:** track severe weather by state and match it to your locations with the SAME county codes
- **Research:** build a history of alert activity over time by scheduling the actor and keeping every run

### How to get weather alerts automatically

1. Enter your **Areas** and any filters.
2. [Schedule the actor](https://docs.apify.com/platform/schedules) to run every 15 minutes, every hour or every day.
3. Connect an [integration](https://apify.com/integrations) such as Slack, Zapier, Make or a webhook to get each run's alerts where you need them.

### Scrape more news and public data

| Actor | What it gets |
|---|---|
| [Federal Register Notices API](https://apify.com/automly/federal-register-notices-api) | US Federal Register notices, rules and proposed rules with agencies and PDF links |
| [Google News Scraper API - Full Text, Monitoring & RSS](https://apify.com/automly/google-news-scraper-api) | News articles by keyword, with full text and only new articles on each run |
| [News API - Multi-Source Headlines & Articles](https://apify.com/automly/news-api) | Headlines and articles from BBC, CNN, NPR, NYT, The Guardian and more |
| [Reddit Keyword + Comment Thread Monitor](https://apify.com/automly/reddit-keyword-comment-monitor) | New Reddit posts and comments that mention your keywords |

### ❓FAQ

#### How much does it cost to get weather alerts?

$0.80 per 1,000 alerts, with platform usage included. See the cost section above and the **Pricing** tab.

#### How current is the data?

Each run gets the alerts that are active at that moment. Forecast offices issue and update alerts around the clock, so schedule the actor as often as you need.

#### Can I get past or expired alerts?

No, only alerts that are active when the run starts. To build a history, run it on a schedule and keep each run's results.

#### How many alerts can I get in one run?

Up to 100 alerts per run. If you need more, split your areas over several runs.

#### Why did my run return no alerts?

There may simply be no active alerts for those areas and filters. Try removing the filters or adding more areas.

#### Which area codes can I use?

US state and territory codes (AL through WY, plus DC, PR, GU, AS, VI and others) and marine area codes such as AM, AN, GM, LE, LH, LM, LO, LS, PH, PK, PM, PS, PZ and SL. A wrong code stops the run with a message saying which input was not accepted.

#### Do I need an account or API key?

No. You don't need an account with the weather service or an API key. The alerts are public.

#### Can I connect Weather Alerts Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com).

#### Is it legal to scrape National Weather Service alerts?

Weather Alerts Scraper only collects alerts that the National Weather Service publishes for the public. The alerts don't contain personal data such as email addresses or phone numbers. If you combine them with your own data, personal data may be protected by laws such as GDPR, so only use it for a legitimate reason and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Weather Alerts Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by the National Weather Service or NOAA.

#### Something isn't working?

Open the **Issues** tab and tell us your input and what you expected.

### ⭐ Your feedback

Have an idea or found a problem? Tell us on the **Issues** tab. If Weather Alerts Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

## `areas` (type: `string`):

Comma-separated state or territory codes (CA, TX, FL, NY, PR, GU ...) or marine area codes (AM, GM, PZ ...). Upper or lower case both work.

## `event` (type: `string`):

Optional exact alert name, such as Flood Warning, Heat Advisory or Winter Storm Warning.

## `severity` (type: `string`):

Optional. Only alerts with this severity level.

## `urgency` (type: `string`):

Optional. Only alerts with this urgency level.

## `certainty` (type: `string`):

Optional. Only alerts with this certainty level.

## `maxResults` (type: `integer`):

Maximum number of alerts to return. Values above 100 are clamped.

## `includeDescription` (type: `boolean`):

Include the full alert description in each dataset row.

## `includeInstructions` (type: `boolean`):

Include the public safety instructions when present.

## `includeZones` (type: `boolean`):

Include affected forecast zone identifiers and SAME codes.

## Actor input object example

```json
{
  "areas": "CA,TX,FL",
  "event": "",
  "severity": "",
  "urgency": "",
  "certainty": "",
  "maxResults": 10,
  "includeDescription": true,
  "includeInstructions": true,
  "includeZones": true
}
```

# Actor output Schema

## `results` (type: `string`):

Every alert with all fields, including the full description, instructions and zone codes.

## `overview` (type: `string`):

One row per alert: name, severity, urgency, area, timing and issuing office.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "areas": "CA,TX,FL",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/national-weather-alerts-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "areas": "CA,TX,FL",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automly/national-weather-alerts-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "areas": "CA,TX,FL",
  "maxResults": 10
}' |
apify call automly/national-weather-alerts-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/national-weather-alerts-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/lLw4CLvq7KkBLYciF/builds/ghjsf6b2pzGDksQCe/openapi.json
