National Weather Service
App · Weather & Space · 15 actions
Read official US weather straight from the National Weather Service: forecasts by the day and by the hour for any coordinate, current conditions and observation history from its reporting stations, every watch, warning and advisory in force, the zones and local offices behind them, the text bulletins forecasters write, and a glossary that explains the jargon. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Find text bulletins | Find the text bulletins forecasters write, newest first - area forecast discussions, public information statements, river statements, hurricane advisories and about 340 other kinds. |
| Find weather stations | Find the weather stations that report observations, either the ones nearest a latitude and longitude (closest first) or every station across whole states. |
| Find zones | Find the zones the National Weather Service divides the country into - the areas forecasts and alerts are issued against. |
| Get active alerts | Read every watch, warning and advisory in force right now - tornado warnings, winter storm watches, flood advisories, heat advisories and the rest - with the areas each covers, its severity and urgency, when it expires, and the full text and safety instructions. |
| Get alert | Read one alert in full by its ID, including the areas it covers, its timing, and the complete text and safety instructions. |
| Get current conditions | Read the weather happening right now: temperature, what it feels like, humidity, wind, pressure, visibility and a one-line description. |
| Get forecast | Read the official forecast for a place, period by period (this afternoon, tonight, Thursday, and so on for about a week): temperature, chance of rain, wind, a short summary and the forecaster's full wording. |
| Get forecast office | Look up one of the 124 local forecast offices: its address, telephone number, public email address and website, plus every county, forecast zone, fire weather zone and reporting station it is responsible for. |
| Get hourly forecast | Read the forecast for a place hour by hour for the next week: temperature, dew point, humidity, chance of rain, wind and a short summary for each hour. |
| Get past observations | Read what a weather station recorded over a stretch of time, newest first - one row per observation, usually hourly. |
| Get zone forecast | Read the forecast a local office wrote for a whole forecast zone - the county-sized areas the National Weather Service divides the country into - rather than for one point. |
| Look up a location | Find out who forecasts for a coordinate and what it belongs to: the nearest named city, the time zone, the local forecast office, the forecast, county and fire weather zones covering it, the nearest radar, and today's sunrise and sunset. |
| Look up a weather term | Explain a weather term in plain English, straight out of the National Weather Service's own glossary - useful for turning the jargon in an alert or a forecast discussion into something a reader understands. |
| Read a text bulletin | Read the full text of one bulletin by its ID, as the forecaster wrote it. |
| Search past alerts | Search recent alerts, including ones that have already expired, newest first. |
Find text bulletins
Find the text bulletins forecasters write, newest first - area forecast discussions, public information statements, river statements, hurricane advisories and about 340 other kinds. Filter by kind, by the office that issued it, and by time. Each row names a bulletin; 'Read a text bulletin' returns its words.
Inputs
- Bulletin types
typeslist - Only these kinds of bulletin. Leave empty for every kind. 'Area Forecast Discussion (AFD)' is the forecaster's reasoning behind today's forecast.
- Issued by
locationslist - Only bulletins from these offices. Leave empty for every office. Pick from the list: this is the three-letter office code (LOT), not the four-letter one a result shows as 'issuingOffice' (KLOT).
- From
startdate and time - Only results at or after this time. Leave blank for no floor.
- Until
enddate and time - Only results at or before this time. Leave blank for no ceiling.
- How many
limitnumber - Most results to return. Defaults to 25; the API's ceiling is 500.From 1 to 500. Default:
25.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"id": "bb0cad13-f767-4641-9424-f410ee7cb4cf",
"issuanceTime": "2026-09-02T18:32:00+00:00",
"issuingOffice": "KLOT",
"productCode": "AFD",
"productName": "Area Forecast Discussion",
"wmoCollectiveId": "FXUS63"
}
]
}Find weather stations
Find the weather stations that report observations, either the ones nearest a latitude and longitude (closest first) or every station across whole states. Each comes back with its ID, name, position, elevation and the zones it sits in. Search one way at a time: by coordinate or by state.
Inputs
- Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- States
stateslist - Only cover these states and territories. The last fifteen entries are the coastal, Great Lakes and offshore marine areas, which the National Weather Service files separately from the states beside them.One or more of:
AL(Alabama (AL)),AK(Alaska (AK)),AS(American Samoa (AS)),AZ(Arizona (AZ)),AR(Arkansas (AR)),CA(California (CA)),CO(Colorado (CO)),CT(Connecticut (CT)),DE(Delaware (DE)),DC(District of Columbia (DC)), and 64 more. - How many
limitnumber - Most results to return. Defaults to 25; the API's ceiling is 500.From 1 to 500. Default:
25.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"bearing": 228,
"bearingUnit": "degrees",
"county": "ILC031",
"distance": 9.58,
"distanceUnit": "mi",
"elevation": 617,
"elevationUnit": "ft",
"fireWeatherZone": "ILZ014",
"forecast": "ILZ104",
"latitude": 41.78417,
"longitude": -87.75528,
"name": "Chicago, Chicago Midway Airport",
"stationIdentifier": "KMDW",
"timeZone": "America/Chicago"
}
]
}Find zones
Find the zones the National Weather Service divides the country into - the areas forecasts and alerts are issued against. Search across states, or around a latitude and longitude, one way at a time. Defaults to public forecast zones; county and fire weather zones are the other two most alerts name.
Inputs
- States
stateslist - Only cover these states and territories. The last fifteen entries are the coastal, Great Lakes and offshore marine areas, which the National Weather Service files separately from the states beside them.One or more of:
AL(Alabama (AL)),AK(Alaska (AK)),AS(American Samoa (AS)),AZ(Arizona (AZ)),AR(Arkansas (AR)),CA(California (CA)),CO(Colorado (CO)),CT(Connecticut (CT)),DE(Delaware (DE)),DC(District of Columbia (DC)), and 64 more. - Zone type
zone_typetext - Which kind of zone to look for. Forecast zones are what the public forecast is written against and are the usual answer.One of:
forecast(Forecast zones (public forecasts)),county(Counties),fire(Fire weather zones),public(Public zones),coastal(Coastal marine zones),offshore(Offshore marine zones),land(All land zones),marine(All marine zones). Default:forecast. - Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- How many
limitnumber - Most results to return. Defaults to 50; the API's ceiling is 500.From 1 to 500. Default:
50.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"cwa": [
"LOT"
],
"forecastOffice": "LOT",
"id": "ILZ014",
"name": "Cook",
"observationStations": [
"KORD",
"KMDW",
"KPWK"
],
"radarStation": "LOT",
"state": "IL",
"timeZone": [
"America/Chicago"
],
"type": "public"
}
]
}Get active alerts
Read every watch, warning and advisory in force right now - tornado warnings, winter storm watches, flood advisories, heat advisories and the rest - with the areas each covers, its severity and urgency, when it expires, and the full text and safety instructions. Narrow it one way at a time: to a latitude and longitude, to states, or to zones. Leave the scope empty for the whole country. No alerts in force is an empty list, not an error.
Inputs
- Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- States
areaslist - Only alerts in these states and territories. The last fifteen entries are the coastal, Great Lakes and offshore marine areas, where marine warnings are issued. Narrow the search one way only: by coordinate, by state, or by zone.One or more of:
AL(Alabama (AL)),AK(Alaska (AK)),AS(American Samoa (AS)),AZ(Arizona (AZ)),AR(Arkansas (AR)),CA(California (CA)),CO(Colorado (CO)),CT(Connecticut (CT)),DE(Delaware (DE)),DC(District of Columbia (DC)), and 64 more. - Zones
zonestext - Only alerts covering these zones, such as ILZ104 or ILC031. Both forecast zones and counties work here. Use 'Find zones' to look them up. Narrow the search one way only: by coordinate, by state, or by zone.
- Alert types
eventlist - Only these kinds of alert, such as Tornado Warning or Heat Advisory. Leave empty for every kind.
- Severity
severitylist - Only alerts of this severity - how bad the expected impact is. Leave empty for every severity.One or more of:
Extreme(Extreme - extraordinary threat to life or property),Severe(Severe - significant threat to life or property),Moderate(Moderate - possible threat to life or property),Minor(Minor - minimal threat to life or property),Unknown. - Urgency
urgencylist - Only alerts of this urgency - how soon action is needed. Leave empty for every urgency.One or more of:
Immediate(Immediate - act now),Expected(Expected - act within the hour),Future(Future - act in the near future),Past(Past - the event is over),Unknown. - Certainty
certaintylist - Only alerts of this certainty - how likely the event is. Leave empty for every certainty.One or more of:
Observed(Observed - it is happening),Likely(Likely - more than even odds),Possible(Possible - less than even odds),Unlikely,Unknown.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"affectedZones": [
"ILZ014",
"ILZ013",
"ILZ103",
"ILZ104"
],
"areaDesc": "Cook; DuPage; Lake; Will",
"category": "Met",
"certainty": "Likely",
"description": "SEVERE THUNDERSTORM WATCH 604 IS IN EFFECT UNTIL 8 PM CDT THIS EVENING FOR THE FOLLOWING AREAS IN ILLINOIS: COOK, DUPAGE, LAKE, WILL.",
"effective": "2026-09-02T13:47:00-05:00",
"ends": "2026-09-02T20:00:00-05:00",
"event": "Severe Thunderstorm Watch",
"expires": "2026-09-02T19:15:00-05:00",
"headline": "Severe Thunderstorm Watch issued September 2 at 1:47PM CDT until September 2 at 8:00PM CDT by NWS Chicago IL",
"id": "urn:oid:2.49.0.1.840.0.a094c3e16b7371eb3d3d755fca6df17ab4eee494.001.1",
"instruction": "Remain alert for approaching severe thunderstorms and be ready to move to a place of safety.",
"messageType": "Alert",
"onset": "2026-09-02T13:47:00-05:00",
"response": "Prepare",
"senderName": "NWS Chicago IL",
"sent": "2026-09-02T13:47:00-05:00",
"severity": "Severe",
"status": "Actual",
"urgency": "Expected"
}
]
}Get alert
Read one alert in full by its ID, including the areas it covers, its timing, and the complete text and safety instructions. IDs come from the two alert search actions.
Inputs
- Alert
alert_idtextRequired - The ID of the alert to read, as returned by 'Get active alerts' or 'Search past alerts'.
Outputs
affectedZoneslist- Zone IDs the alert covers
areaDesctext- The places it covers
certaintytext- Observed … Unlikely
descriptiontext- The full text
endstext- When the event ends
eventtext- e.g. 'Tornado Warning'
expirestext- When the alert lapses
headlinetext- The one-line summary
idtext- The alert's ID
instructiontext- What people should do
onsettext- When the event begins
senderNametext- The office that issued it
severitytext- Extreme … Minor
urgencytext- Immediate … Past
Example output
{
"affectedZones": [
"ILZ014",
"ILZ013",
"ILZ103",
"ILZ104"
],
"areaDesc": "Cook; DuPage; Lake; Will",
"category": "Met",
"certainty": "Likely",
"description": "SEVERE THUNDERSTORM WATCH 604 IS IN EFFECT UNTIL 8 PM CDT THIS EVENING FOR THE FOLLOWING AREAS IN ILLINOIS: COOK, DUPAGE, LAKE, WILL.",
"effective": "2026-09-02T13:47:00-05:00",
"ends": "2026-09-02T20:00:00-05:00",
"event": "Severe Thunderstorm Watch",
"expires": "2026-09-02T19:15:00-05:00",
"headline": "Severe Thunderstorm Watch issued September 2 at 1:47PM CDT until September 2 at 8:00PM CDT by NWS Chicago IL",
"id": "urn:oid:2.49.0.1.840.0.a094c3e16b7371eb3d3d755fca6df17ab4eee494.001.1",
"instruction": "Remain alert for approaching severe thunderstorms and be ready to move to a place of safety.",
"messageType": "Alert",
"onset": "2026-09-02T13:47:00-05:00",
"response": "Prepare",
"senderName": "NWS Chicago IL",
"sent": "2026-09-02T13:47:00-05:00",
"severity": "Severe",
"status": "Actual",
"urgency": "Expected"
}Get current conditions
Read the weather happening right now: temperature, what it feels like, humidity, wind, pressure, visibility and a one-line description. Name a station, or give a latitude and longitude and the nearest reporting station is used. The readings come back at the top level, so a step reads 'temperature' directly.
Inputs
- Station
stationtext - Which observation station to read, such as KORD. Leave blank and give a latitude and longitude instead to use the nearest station. Use 'Find weather stations' to see what is nearby.
- Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- Units
unitstext - Which units the readings come back in. US customary gives Fahrenheit, miles per hour and inches; metric gives Celsius, kilometres per hour and millimetres. Every reading is published with a matching '<field>Unit' label either way.One of:
us(US customary (°F, mph, in)),si(Metric (°C, km/h, mm)). Default:us.
Outputs
barometricPressurenumber- Station pressure
dewpointnumber- Dew point
heatIndexnumber- Apparent temperature, if hot
rawMessagetext- The METAR bulletin the station filed, verbatim
relativeHumiditynumber- Humidity, percent
stationIdtext- The station that reported
stationNametext- Its plain-language name
temperaturenumber- Air temperature
temperatureUnittext- 'F' or 'C'
textDescriptiontext- The conditions in a few words, e.g. 'Mostly Cloudy'
timestamptext- When it was observed
unitstext- 'us' or 'si'
visibilitynumber- How far you can see
windChillnumber- Apparent temperature, if cold
windDirectionnumber- Direction the wind blows from, in degrees
windGustnumber- Gust speed, if any
windSpeednumber- Sustained wind speed
Example output
{
"barometricPressure": 29.87,
"barometricPressureUnit": "inHg",
"dewpoint": 62.6,
"dewpointUnit": "F",
"elevation": 662.73,
"elevationUnit": "ft",
"heatIndex": 88.2,
"heatIndexUnit": "F",
"rawMessage": "KORD 022151Z 23011KT 10SM BKN055 30/17 A2987 RMK AO2 SLP111",
"relativeHumidity": 45.6,
"relativeHumidityUnit": "percent",
"stationId": "KORD",
"stationName": "Chicago, Chicago O'Hare International Airport",
"temperature": 86,
"temperatureUnit": "F",
"textDescription": "Mostly Cloudy",
"timestamp": "2026-09-02T21:51:00+00:00",
"units": "us",
"visibility": 10,
"visibilityUnit": "mi",
"windChill": null,
"windChillUnit": "F",
"windDirection": 230,
"windDirectionUnit": "degrees",
"windGust": null,
"windGustUnit": "mph",
"windSpeed": 12.66,
"windSpeedUnit": "mph"
}Get forecast
Read the official forecast for a place, period by period (this afternoon, tonight, Thursday, and so on for about a week): temperature, chance of rain, wind, a short summary and the forecaster's full wording. Give a latitude and longitude; the nearest city, the forecast office, the zones covering the point and today's sunrise and sunset come back with it.
Inputs
- Latitude
latitudenumberRequired - Latitude of the place, in degrees. Positive north of the equator. Coordinates are rounded to four decimal places, which is about 10 metres.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the place, in degrees. Negative in the Americas, which is everywhere the National Weather Service forecasts.From -180 to 180.
- Units
unitstext - Which units the readings come back in. US customary gives Fahrenheit, miles per hour and inches; metric gives Celsius, kilometres per hour and millimetres. Every reading is published with a matching '<field>Unit' label either way.One of:
us(US customary (°F, mph, in)),si(Metric (°C, km/h, mm)). Default:us.
Outputs
countnumber- Number of forecast periods
entrieslist- The forecast periods, in order
locationobject- The place the forecast is for: nearest city and state, time zone, forecast office, forecast and fire zones, county, radar station, and today's sunrise and sunset
unitstext- 'us' or 'si'
updatedtext- When the National Weather Service last revised it
Example output
{
"count": 1,
"entries": [
{
"detailedForecast": "A chance of showers and thunderstorms. Partly sunny, with a high near 88. Southwest wind around 10 mph.",
"endTime": "2026-09-02T18:00:00-05:00",
"isDaytime": true,
"name": "This Afternoon",
"number": 1,
"probabilityOfPrecipitation": 20,
"probabilityOfPrecipitationUnit": "percent",
"shortForecast": "Chance Showers And Thunderstorms",
"startTime": "2026-09-02T16:00:00-05:00",
"temperature": 88,
"temperatureTrend": null,
"temperatureUnit": "F",
"windDirection": "SW",
"windSpeed": "10 mph"
}
],
"location": {
"city": "Chicago",
"county": "ILC031",
"fireWeatherZone": "ILZ014",
"forecastZone": "ILZ014",
"gridX": 76,
"gridY": 73,
"latitude": 41.8781,
"longitude": -87.6298,
"office": "LOT",
"radarStation": "KLOT",
"state": "IL",
"sunrise": "2026-09-02T06:24:11-05:00",
"sunset": "2026-09-02T19:22:47-05:00",
"timeZone": "America/Chicago"
},
"units": "us",
"updated": "2026-09-02T18:32:00+00:00"
}Get forecast office
Look up one of the 124 local forecast offices: its address, telephone number, public email address and website, plus every county, forecast zone, fire weather zone and reporting station it is responsible for.
Inputs
- Forecast office
officetextRequired - Which local forecast office to look up.One of:
ABR(Aberdeen, SD (ABR)),ALY(Albany, NY (ALY)),ABQ(Albuquerque, NM (ABQ)),AMA(Amarillo, TX (AMA)),AER(Anchorage East, AK (AER)),ALU(Anchorage West, AK (ALU)),AFC(Anchorage, AK (AFC)),FFC(Atlanta/Peachtree City, GA (FFC)),EWX(Austin/San Antonio, TX (EWX)),LWX(Baltimore, MD / Washington, DC (LWX)), and 114 more. Default:LOT.
Outputs
citytext- City
countieslist- County zone IDs the office covers
emailtext- Public email address
fireZoneslist- Fire weather zone IDs the office covers
forecastZoneslist- Forecast zone IDs the office covers
idtext- The office's code, e.g. 'LOT'
nametext- e.g. 'Chicago, IL'
observationStationslist- Station IDs the office reports from
postalCodetext- ZIP code
regiontext- NWS region, e.g. 'cr'
statetext- State
streetAddresstext- Street address
telephonetext- Public telephone number
websitetext- The office's own site
Example output
{
"city": "Romeoville",
"counties": [
"ILC031",
"ILC043",
"ILC097"
],
"email": "nws.chicago@noaa.gov",
"fireZones": [
"ILZ003",
"ILZ004",
"ILZ014"
],
"forecastZones": [
"ILZ003",
"ILZ004",
"ILZ014"
],
"id": "LOT",
"name": "Chicago, IL",
"observationStations": [
"KORD",
"KMDW",
"KDPA"
],
"postalCode": "60446",
"region": "cr",
"state": "IL",
"streetAddress": "333 West University Drive",
"telephone": "815-834-1435",
"website": "https://www.weather.gov/lot"
}Get hourly forecast
Read the forecast for a place hour by hour for the next week: temperature, dew point, humidity, chance of rain, wind and a short summary for each hour. Give a latitude and longitude.
Inputs
- Latitude
latitudenumberRequired - Latitude of the place, in degrees. Positive north of the equator. Coordinates are rounded to four decimal places, which is about 10 metres.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the place, in degrees. Negative in the Americas, which is everywhere the National Weather Service forecasts.From -180 to 180.
- Units
unitstext - Which units the readings come back in. US customary gives Fahrenheit, miles per hour and inches; metric gives Celsius, kilometres per hour and millimetres. Every reading is published with a matching '<field>Unit' label either way.One of:
us(US customary (°F, mph, in)),si(Metric (°C, km/h, mm)). Default:us.
Outputs
countnumber- Number of forecast periods
entrieslist- The forecast periods, in order
locationobject- The place the forecast is for: nearest city and state, time zone, forecast office, forecast and fire zones, county, radar station, and today's sunrise and sunset
unitstext- 'us' or 'si'
updatedtext- When the National Weather Service last revised it
Example output
{
"count": 1,
"entries": [
{
"dewpoint": 62.1,
"dewpointUnit": "F",
"endTime": "2026-09-02T17:00:00-05:00",
"isDaytime": true,
"number": 1,
"probabilityOfPrecipitation": 20,
"probabilityOfPrecipitationUnit": "percent",
"relativeHumidity": 43,
"relativeHumidityUnit": "percent",
"shortForecast": "Chance Showers And Thunderstorms",
"startTime": "2026-09-02T16:00:00-05:00",
"temperature": 88,
"temperatureUnit": "F",
"windDirection": "SW",
"windSpeed": "10 mph"
}
],
"location": {
"city": "Chicago",
"county": "ILC031",
"fireWeatherZone": "ILZ014",
"forecastZone": "ILZ014",
"gridX": 76,
"gridY": 73,
"latitude": 41.8781,
"longitude": -87.6298,
"office": "LOT",
"radarStation": "KLOT",
"state": "IL",
"sunrise": "2026-09-02T06:24:11-05:00",
"sunset": "2026-09-02T19:22:47-05:00",
"timeZone": "America/Chicago"
},
"units": "us",
"updated": "2026-09-02T18:32:00+00:00"
}Get past observations
Read what a weather station recorded over a stretch of time, newest first - one row per observation, usually hourly. Name a station, or give a latitude and longitude and the nearest reporting station is used. Defaults to the last 24 observations.
Inputs
- Station
stationtext - Which observation station to read, such as KORD. Leave blank and give a latitude and longitude instead to use the nearest station. Use 'Find weather stations' to see what is nearby.
- Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- From
startdate and time - Only results at or after this time. Leave blank for no floor.
- Until
enddate and time - Only results at or before this time. Leave blank for no ceiling.
- How many
limitnumber - Most observations to return. Defaults to 24, which is about a day; the API's ceiling is 500.From 1 to 500. Default:
24. - Units
unitstext - Which units the readings come back in. US customary gives Fahrenheit, miles per hour and inches; metric gives Celsius, kilometres per hour and millimetres. Every reading is published with a matching '<field>Unit' label either way.One of:
us(US customary (°F, mph, in)),si(Metric (°C, km/h, mm)). Default:us.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"barometricPressure": 29.87,
"barometricPressureUnit": "inHg",
"dewpoint": 62.6,
"dewpointUnit": "F",
"elevation": 662.73,
"elevationUnit": "ft",
"heatIndex": 88.2,
"heatIndexUnit": "F",
"rawMessage": "KORD 022151Z 23011KT 10SM BKN055 30/17 A2987 RMK AO2 SLP111",
"relativeHumidity": 45.6,
"relativeHumidityUnit": "percent",
"stationId": "KORD",
"stationName": "Chicago, Chicago O'Hare International Airport",
"temperature": 86,
"temperatureUnit": "F",
"textDescription": "Mostly Cloudy",
"timestamp": "2026-09-02T21:51:00+00:00",
"units": "us",
"visibility": 10,
"visibilityUnit": "mi",
"windChill": null,
"windChillUnit": "F",
"windDirection": 230,
"windDirectionUnit": "degrees",
"windGust": null,
"windGustUnit": "mph",
"windSpeed": 12.66,
"windSpeedUnit": "mph"
}
],
"stationId": "KORD",
"units": "us"
}Get zone forecast
Read the forecast a local office wrote for a whole forecast zone - the county-sized areas the National Weather Service divides the country into - rather than for one point. This is the wording that goes out over NOAA Weather Radio. Use 'Look up a location' or 'Find zones' to get a zone ID.
Inputs
- Forecast zone
zonetextRequired - Which forecast zone to read, such as ILZ104. Use 'Look up a location' and take its 'forecastZone', or 'Find zones' to look one up by state. It has to be a forecast zone (the Z form) rather than a county (the C form): no forecast is written for a county.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"detailedForecast": "Partly sunny, with a high near 88. Southwest winds 10 to 15 mph.",
"name": "This Afternoon",
"number": 1
}
],
"updated": "2026-09-02T18:52:00-05:00",
"zone": "ILZ014"
}Look up a location
Find out who forecasts for a coordinate and what it belongs to: the nearest named city, the time zone, the local forecast office, the forecast, county and fire weather zones covering it, the nearest radar, and today's sunrise and sunset. Use it to turn a coordinate into the zone and office IDs the other actions take.
Inputs
- Latitude
latitudenumberRequired - Latitude of the place, in degrees. Positive north of the equator. Coordinates are rounded to four decimal places, which is about 10 metres.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the place, in degrees. Negative in the Americas, which is everywhere the National Weather Service forecasts.From -180 to 180.
Outputs
citytext- Nearest named place
countytext- County zone ID
fireWeatherZonetext- Fire weather zone ID
forecastZonetext- Public forecast zone ID
gridXnumber- Forecast grid column
gridYnumber- Forecast grid row
latitudenumber- The coordinate asked about
longitudenumber- The coordinate asked about
officetext- The forecast office, e.g. 'LOT'
radarStationtext- Nearest radar, e.g. 'KLOT'
statetext- Its state or territory
sunrisetext- Today's sunrise, local time
sunsettext- Today's sunset, local time
timeZonetext- e.g. 'America/Chicago'
Example output
{
"city": "Chicago",
"county": "ILC031",
"fireWeatherZone": "ILZ014",
"forecastZone": "ILZ014",
"gridX": 76,
"gridY": 73,
"latitude": 41.8781,
"longitude": -87.6298,
"office": "LOT",
"radarStation": "KLOT",
"state": "IL",
"sunrise": "2026-09-02T06:24:11-05:00",
"sunset": "2026-09-02T19:22:47-05:00",
"timeZone": "America/Chicago"
}Look up a weather term
Explain a weather term in plain English, straight out of the National Weather Service's own glossary - useful for turning the jargon in an alert or a forecast discussion into something a reader understands. An exact match wins; otherwise every term containing the words comes back, closest first.
Inputs
- Term
termtextRequired - The word or phrase to explain.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"definition": "The Heat Index is a measure of how hot it really feels when relative humidity is factored in with the actual air temperature.",
"term": "Heat Index"
}
],
"term": "Heat Index"
}Read a text bulletin
Read the full text of one bulletin by its ID, as the forecaster wrote it. IDs come from 'Find text bulletins'.
Inputs
- Bulletin
product_idtextRequired - The ID of the bulletin to read, as returned by 'Find text bulletins'.
Outputs
idtext- The bulletin's ID
issuanceTimetext- When it was issued
issuingOfficetext- e.g. 'KLOT'
productCodetext- e.g. 'AFD'
productNametext- e.g. 'Area Forecast Discussion'
texttext- The bulletin, verbatim
wmoCollectiveIdtext- Its WMO header
Example output
{
"id": "bb0cad13-f767-4641-9424-f410ee7cb4cf",
"issuanceTime": "2026-09-02T18:32:00+00:00",
"issuingOffice": "KLOT",
"productCode": "AFD",
"productName": "Area Forecast Discussion",
"text": "Area Forecast Discussion\nNational Weather Service Chicago IL\n132 PM CDT Wed Sep 2 2026\n\n.SYNOPSIS...\nScattered showers and thunderstorms are expected this afternoon and evening.",
"wmoCollectiveId": "FXUS63"
}Search past alerts
Search recent alerts, including ones that have already expired, newest first. Same filters as 'Get active alerts', plus a from and until time. The National Weather Service keeps roughly the last week to ten days here, so a search further back than that comes back empty rather than as an error - it means the alerts have aged out, not that nothing happened.
Inputs
- From
startdate and time - Only results at or after this time. Leave blank for no floor.
- Until
enddate and time - Only results at or before this time. Leave blank for no ceiling.
- Latitude
latitudenumber - Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
- Longitude
longitudenumber - Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
- States
areaslist - Only alerts in these states and territories. The last fifteen entries are the coastal, Great Lakes and offshore marine areas, where marine warnings are issued. Narrow the search one way only: by coordinate, by state, or by zone.One or more of:
AL(Alabama (AL)),AK(Alaska (AK)),AS(American Samoa (AS)),AZ(Arizona (AZ)),AR(Arkansas (AR)),CA(California (CA)),CO(Colorado (CO)),CT(Connecticut (CT)),DE(Delaware (DE)),DC(District of Columbia (DC)), and 64 more. - Zones
zonestext - Only alerts covering these zones, such as ILZ104 or ILC031. Both forecast zones and counties work here. Use 'Find zones' to look them up. Narrow the search one way only: by coordinate, by state, or by zone.
- Alert types
eventlist - Only these kinds of alert, such as Tornado Warning or Heat Advisory. Leave empty for every kind.
- Severity
severitylist - Only alerts of this severity - how bad the expected impact is. Leave empty for every severity.One or more of:
Extreme(Extreme - extraordinary threat to life or property),Severe(Severe - significant threat to life or property),Moderate(Moderate - possible threat to life or property),Minor(Minor - minimal threat to life or property),Unknown. - Urgency
urgencylist - Only alerts of this urgency - how soon action is needed. Leave empty for every urgency.One or more of:
Immediate(Immediate - act now),Expected(Expected - act within the hour),Future(Future - act in the near future),Past(Past - the event is over),Unknown. - Certainty
certaintylist - Only alerts of this certainty - how likely the event is. Leave empty for every certainty.One or more of:
Observed(Observed - it is happening),Likely(Likely - more than even odds),Possible(Possible - less than even odds),Unlikely,Unknown. - How many
limitnumber - Most results to return. Defaults to 50; the API's ceiling is 500.From 1 to 500. Default:
50.
Outputs
countnumber- Number of rows in 'entries'
entrieslist- The results, or an empty list when there are none
Example output
{
"count": 1,
"entries": [
{
"affectedZones": [
"ILZ014",
"ILZ013",
"ILZ103",
"ILZ104"
],
"areaDesc": "Cook; DuPage; Lake; Will",
"category": "Met",
"certainty": "Likely",
"description": "SEVERE THUNDERSTORM WATCH 604 IS IN EFFECT UNTIL 8 PM CDT THIS EVENING FOR THE FOLLOWING AREAS IN ILLINOIS: COOK, DUPAGE, LAKE, WILL.",
"effective": "2026-09-02T13:47:00-05:00",
"ends": "2026-09-02T20:00:00-05:00",
"event": "Severe Thunderstorm Watch",
"expires": "2026-09-02T19:15:00-05:00",
"headline": "Severe Thunderstorm Watch issued September 2 at 1:47PM CDT until September 2 at 8:00PM CDT by NWS Chicago IL",
"id": "urn:oid:2.49.0.1.840.0.a094c3e16b7371eb3d3d755fca6df17ab4eee494.001.1",
"instruction": "Remain alert for approaching severe thunderstorms and be ready to move to a place of safety.",
"messageType": "Alert",
"onset": "2026-09-02T13:47:00-05:00",
"response": "Prepare",
"senderName": "NWS Chicago IL",
"sent": "2026-09-02T13:47:00-05:00",
"severity": "Severe",
"status": "Actual",
"urgency": "Expected"
}
]
}