NWS weather alerts + forecasts by state/point (api.weather.gov)
Pricing
from $5.00 / 1,000 records
NWS weather alerts + forecasts by state/point (api.weather.gov)
Active U.S. National Weather Service alerts (warnings, watches, advisories) as one row each - event, severity, urgency, areas, states, onset/expiry, full text - filtered by state and severity; or the 7-day / hourly NWS forecast for up to 20 lat/lon points. Public api.weather.gov, no key.
Pricing
from $5.00 / 1,000 records
Rating
0.0
(0)
Developer
RetrainMap Team
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Every active National Weather Service alert in the United States as one clean row —
event (Tornado Warning, Flood Watch, Heat Advisory, …), severity, urgency, certainty,
headline, affected areas and states, onset/expiry, issuing office and the full alert text —
filtered by state, severity, urgency, certainty or event name. Or, in forecast mode, the
official NWS forecast (7-day half-day periods or hourly) for up to 20 latitude/longitude
points. Source: the public api.weather.gov API, no key required.
Data source and status
| Publisher | U.S. National Weather Service (NOAA), https://api.weather.gov (documentation) |
| Alerts | GET /alerts/active?status=actual[&area=…][&severity=…][&urgency=…][&certainty=…][&event=…] — all matching active alerts in one response (the endpoint has no limit parameter; about 300 alerts on a quiet day, far more during severe-weather outbreaks). Test and exercise messages are excluded by status=actual |
| Forecast | GET /points/{lat},{lon} for the grid, then the grid's forecast (14 half-day periods) or forecastHourly (156 hourly periods) |
| Refresh cadence | Live on every run. NWS updates the alert feed continuously and forecasts several times a day; each row carries fetched_at, alert rows also the feed's own source_updated time |
| Terms and licence | NWS data are works of the U.S. Government and not subject to copyright in the U.S. (17 U.S.C. §105). NWS asks API clients to identify themselves (done, see below) and to keep request rates reasonable. This is not a warning service — the Actor does not deliver alerts faster than, or in place of, official channels (NOAA Weather Radio, Wireless Emergency Alerts, weather.gov) |
| Response guards | The alert/point/period keys measured on 2026-09-04 (id, event, severity, urgency, certainty, headline, areaDesc, geocode.UGC, onset, expires, senderName, description, periods[].temperature, …) must be present; anything else fails the run loudly instead of writing guessed values |
| Identification | User-Agent: RetrainMap-nws-weather-alerts/0.1 (https://apify.com/retrainmap; <contact>) plus the contact address in the standard From: header |
Honesty note: states on an alert row is derived from the alert's UGC zone/county codes
(FLZ041 → FL), because the API does not carry a state field; marine zones yield NWS marine
area codes (AM, GM, PZ, …). description and instruction are cut at 3,000 characters
(flagged by *_truncated); the full text is one click away at nws_url.
Input
| Field | Type | Meaning |
|---|---|---|
mode | alerts / forecast | Default alerts |
states | array of 2-letter codes | Alerts. Empty (default) = the whole country. Marine area codes accepted |
severity | Extreme Severe Moderate Minor Unknown | Optional |
urgency | Immediate Expected Future Past Unknown | Optional |
certainty | Observed Likely Possible Unlikely Unknown | Optional |
events | array of exact NWS event names | Optional, e.g. Tornado Warning |
points | array of "lat,lon" | Forecast; up to 20 U.S. points |
forecast_type | daily / hourly | Default daily (14 periods per point) |
max_records | integer | Default 300 |
request_interval_ms | integer | Default 500 (floor 250) |
contact_email | string | Sent in the User-Agent and From: header |
Examples:
{ "mode": "alerts", "states": ["TX", "OK", "KS"], "severity": ["Extreme", "Severe"], "urgency": ["Immediate", "Expected"] }
{ "mode": "forecast", "points": ["40.7128,-74.0060", "34.0522,-118.2437"], "forecast_type": "daily" }
Output (dataset row)
Alerts: id, event, severity, urgency, certainty, status, message_type,
category, response, headline, area_desc, states, ugc_zones, same_codes, sent,
effective, onset, expires, ends, sender, sender_name, description (≤ 3,000
chars), description_truncated, instruction, instruction_truncated, nws_url,
source_updated, fetched_at.
Forecast: point, latitude, longitude, grid_id, grid_x, grid_y, forecast_office,
nearest_city, nearest_state, time_zone, forecast_type, period_number, period_name,
start_time, end_time, is_daytime, temperature, temperature_unit, temperature_trend,
precip_probability_pct, dewpoint_c and relative_humidity_pct (hourly), wind_speed,
wind_direction, short_forecast, detailed_forecast, icon, forecast_generated_at,
forecast_updated_at, fetched_at.
A run summary (filters, the exact API requests made, counts, the feed's update time) is
stored as RUN_SUMMARY in the run's key-value store.
Pricing (pay per event)
| Event | Price |
|---|---|
run-start — once per run | $0.10 |
record — per row written | $0.005 |
The default run (up to 300 alerts) costs at most $1.60; a 7-day forecast for one point (14 rows) $0.17. Rows stop when your run's maximum charge is reached; the run summary says so.
Operator
Steelyard Ventures LLC (RetrainMap) — info@steelyardclinical.com. The Actor writes only to its own dataset and key-value store; it stores no credentials and sends nothing but GET requests.