NWS Weather Alert Change Monitor - New & Updated Only
Pricing
$1.00 / 1,000 alert lifecycle changes
NWS Weather Alert Change Monitor - New & Updated Only
Deduplicate official US NWS alerts across scheduled runs. Emit only new, updated, cancelled, or expired changes for notifications, automations, and AI agents.
Pricing
$1.00 / 1,000 alert lifecycle changes
Rating
0.0
(0)
Developer
Kunteper Koyu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
NWS Weather Alert Change Monitor
Monitor official National Weather Service alerts without sending the same active warning through an automation on every scheduled run. This Actor remembers alert state in an Apify key-value store and emits dataset records only when a monitored alert is new, updated, cancelled, or expired.
It is designed for recurring Apify schedules, Make, Zapier, n8n, Slack, Microsoft Teams, dashboards, AI agents, and data pipelines that need a clean change feed instead of repeated snapshots.
Use cases
The official NWS API returns active alerts, but a polling workflow normally receives unchanged records again and again. Updates also get new alert identifiers and reference earlier CAP messages. A simple ID deduplicator can therefore miss the relationship between an original alert and its later update.
This Actor follows NWS reference identifiers, keeps a bounded active-state record, and returns a lifecycle-oriented dataset. Users can attach an Apify webhook to each successful run and process only the records that represent meaningful changes.
The upstream source is the official, public api.weather.gov service. No proxy, browser, login, or third-party API key is required.
Quick start
The default input monitors Virginia and establishes a baseline without emitting existing alerts:
{"areas": ["VA"],"firstRun": "baselineOnly","stateStoreName": "my-virginia-alert-monitor"}
Run the same input on an Apify schedule every 5 to 15 minutes. Later runs emit only changes. Use a different stateStoreName for every independent schedule or watchlist.
To return current active alerts immediately during a one-time test, set firstRun to emitCurrent and use a fresh state-store name.
Inputs
areas: one or more two-letter NWS state or territory codes.zones: optional county or forecast UGC codes, such asVAC059orVAZ053.severities: optional CAP severity filters.eventTypes: optional exact NWS event names, matched without case sensitivity.firstRun: save a quiet baseline or emit current alerts as new.stateStoreName: named persistent state used across runs.includeExpired: emit a transition when a previously active alert disappears.resetState: intentionally replace an existing baseline once.maxAlerts: hard output-processing cap.timeoutSeconds: per-request timeout.
For safety, the Actor refuses to reuse a state store with different area, zone, severity, or event filters. This prevents a changed watchlist from incorrectly marking unrelated alerts as expired.
Example output
Each dataset record includes:
changeType:new,updated,cancelled, orexpiredlifecycleIdand the current officialalertIdpreviousAlertIdfor updates and expirations- event, severity, urgency, certainty, status, and CAP message type
- headline, description, instructions, affected area, SAME codes, and UGC codes
- sent, effective, onset, expiration, and ending timestamps
- the official NWS source URL and the time the change was detected
Example:
{"changeType": "updated","lifecycleId": "urn:oid:previous-alert","alertId": "urn:oid:current-alert","previousAlertId": "urn:oid:previous-alert","event": "Heat Advisory","severity": "Moderate","areaDesc": "Fairfax, VA","sourceUrl": "https://api.weather.gov/alerts/urn:oid:current-alert","detectedAt": "2026-07-15T12:00:00.000Z"}
API example
curl -X POST "https://api.apify.com/v2/acts/rtworule~nws-weather-alert-delta-monitor/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"areas":["VA","MD"],"severities":["Extreme","Severe"],"stateStoreName":"mid-atlantic-severe-alerts"}'
After the run finishes, retrieve records from its default dataset or connect an Apify webhook, Make, Zapier, n8n, Slack, Teams, Google Sheets, or a database integration.
Pricing
Pay-per-event pricing is based on alert lifecycle changes emitted to the dataset. Unchanged active alerts are not emitted and do not create a primary paid event. At $0.001 per lifecycle change, 1,000 meaningful changes cost $1.00. The listed event price includes platform usage for the Actor run; normal post-run storage or API-access costs can still apply under Apify's platform rules.
Reliability and limitations
- Coverage is limited to NWS-supported United States states and territories.
- NWS availability and freshness are controlled by the upstream government service.
- The Actor polls. It is not the fastest dissemination channel and is not suitable as the sole source for life-safety decisions.
- A disappearance from the active feed is reported as expired. The original record remains available in the output change record.
- A named key-value store should be used by only one non-overlapping schedule.
- State locking is best effort because Apify key-value stores do not provide a transactional compare-and-swap operation.
- The Actor does not send messages itself. Use Apify integrations or webhooks for delivery.
Responsible use
This is a secondary automation and data tool, not an official emergency-warning service. Always rely on official NWS channels, NOAA Weather Radio, Wireless Emergency Alerts, and local authorities for life-safety decisions. Every record links back to its official source so downstream users and AI agents can verify the evidence.
Integrations
Schedule the Actor in Apify, then connect successful runs to webhooks, Make, Zapier, n8n, Slack, Microsoft Teams, Google Sheets, or your own API consumer. The default dataset is deliberately shaped for AI agents and automation tools: each record is one meaningful event, carries the current and previous alert IDs, and links to the official NWS source.
FAQ
Why was the first run empty? The safe default establishes a baseline so an existing warning is not treated as newly issued. Set firstRun to emitCurrent with a fresh state store for a one-time snapshot.
Should I save the Actor input as an Apify task? Yes, if you want a reusable watchlist or schedule. Give each independent task a unique stateStoreName and avoid overlapping runs for the same store.
Can this replace official warnings? No. It is a polling and integration tool. Use official NWS and local emergency channels for safety decisions.
Support
Use the Actor's Issues tab for reproducible problems. Include the input with secrets removed, the run ID, expected lifecycle transition, and observed output. Do not include private credentials.
More tools
Related ApifyApps Actors include the Public RSS, Atom & JSON Feed Normalizer for generic new-item monitoring and the Public ATS Job Feed Normalizer for new-only job feeds.