# NOAA Weather Alerts Scraper - Active US Severe Weather (`ninhothedev/noaa-weather-alerts-scraper`) Actor

$0.5/1K 🔥 Fast NOAA weather alerts scraper! Active US severe-weather warnings — event, area, severity & expiry. No key. JSON, CSV, Excel or API in seconds. Pull alerts for weather apps, logistics & insurance ⚡

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

## Pricing

from $0.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## NOAA Weather Alerts Scraper 🌩️

**Scrape active US severe-weather alerts from the National Weather Service — no API key, no login.** Get every active warning, watch, and advisory across the United States: tornado warnings, flash flood warnings, severe thunderstorm warnings, hurricanes, winter storms, heat advisories and more — as clean, flat JSON.

Powered by the official **US National Weather Service** public API (`api.weather.gov`). Filter by **state** and **severity**, and stream results straight into your app, spreadsheet, or database.

***

### ✨ Why use this actor?

- **No API key, no signup** — the NWS feed is public; we handle the required headers for you.
- **Datacenter-friendly** — runs cheaply on standard datacenter servers, no residential proxy needed.
- **Clean, flat output** — one row per alert with the fields that matter (event, area, severity, urgency, expiry, safety instructions).
- **State + severity filters** — pull only Texas + California, or only Severe/Extreme events.
- **Fast & cheap** — hundreds of active alerts in seconds.

***

### 📦 What you get (per alert)

| Field | Description |
|-------|-------------|
| `id` | Unique NWS alert identifier (URN) |
| `event` | Event name, e.g. "Tornado Warning" |
| `headline` | Human-readable headline |
| `severity` | Extreme / Severe / Moderate / Minor / Unknown |
| `certainty` | Observed / Likely / Possible / … |
| `urgency` | Immediate / Expected / Future / … |
| `area` | Affected area description (counties/zones) |
| `effective` / `onset` / `expires` / `ends` | ISO-8601 timestamps |
| `status` | Actual / Test / Exercise / … |
| `message_type` | Alert / Update / Cancel |
| `category` | Met / Safety / Health / … |
| `sender` | Issuing NWS office |
| `description` | Full alert text (capped 5,000 chars) |
| `instruction` | Recommended safety actions (capped 3,000 chars) |
| `response` | Recommended response, e.g. "Shelter", "Avoid" |
| `source` | Always `noaa` |
| `scraped_at` | ISO-8601 scrape timestamp |

***

### 🚀 Input

```json
{
  "mode": "alerts",
  "states": ["TX", "CA"],
  "severity": "Severe",
  "maxItems": 200
}
```

| Input | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | select | `alerts` | Fetch active alerts. |
| `states` | array | `[]` | 2-letter US state codes. Empty = whole US. |
| `severity` | select | `any` | Minimum severity to keep (any / Extreme / Severe / Moderate / Minor). |
| `maxItems` | integer | `200` | Max alerts to store (max 2000). |

Leave `states` empty for a nationwide sweep.

***

### 💡 Use cases

- **Weather apps & dashboards** — power live alert banners and maps.
- **Emergency alerting** — trigger SMS/push notifications on Severe/Extreme events.
- **Logistics & insurance** — reroute fleets, flag policies in impacted areas.
- **Research & journalism** — build datasets of historical alert activity.

***

### 💰 Pricing

Pay-per-result, roughly **$0.50 per 1,000 alerts**. A nationwide run is typically well under a cent per refresh. Schedule it every few minutes for a live feed.

***

### 🔗 Related actors by ninhothedev

- [Weather Scraper](https://apify.com/ninhothedev/weather-scraper)
- [Earthquake Scraper](https://apify.com/ninhothedev/earthquake-scraper)
- [Air Quality Scraper](https://apify.com/ninhothedev/air-quality-scraper)
- [OpenSky Flights Scraper](https://apify.com/ninhothedev/opensky-flights-scraper)

***

### 🏷️ Keywords

noaa scraper, weather alerts api, nws alerts, severe weather warnings, tornado warning api, flash flood warning, us weather alerts, national weather service scraper, emergency alerts, weather data api, storm warnings, weather.gov scraper

***

*Data © US National Weather Service (public domain). This actor is an independent tool and is not affiliated with or endorsed by NOAA/NWS.*

# Actor input Schema

## `mode` (type: `string`):

What to scrape. 'alerts' fetches active US National Weather Service alerts, optionally filtered by states and severity.

## `states` (type: `array`):

Optional list of 2-letter US state/territory codes to filter by, e.g. \["TX", "CA"]. Leave empty to fetch active alerts for the entire United States.

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

Only keep alerts at this severity or higher. 'any' returns all alerts; otherwise Extreme > Severe > Moderate > Minor.

## `maxItems` (type: `integer`):

Maximum number of alerts to store across all states. Hard-capped at 2000.

## Actor input object example

```json
{
  "mode": "alerts",
  "states": [
    "TX",
    "CA"
  ],
  "severity": "any",
  "maxItems": 200
}
```

# 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 = {
    "states": [
        "TX",
        "CA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/noaa-weather-alerts-scraper").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 = { "states": [
        "TX",
        "CA",
    ] }

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

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

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

```

## CLI example

```bash
echo '{
  "states": [
    "TX",
    "CA"
  ]
}' |
apify call ninhothedev/noaa-weather-alerts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ninhothedev/noaa-weather-alerts-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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