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

ActionWhat it does
Find text bulletinsFind the text bulletins forecasters write, newest first - area forecast discussions, public information statements, river statements, hurricane advisories and about 340 other kinds.
Find weather stationsFind the weather stations that report observations, either the ones nearest a latitude and longitude (closest first) or every station across whole states.
Find zonesFind the zones the National Weather Service divides the country into - the areas forecasts and alerts are issued against.
Get active alertsRead 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 alertRead one alert in full by its ID, including the areas it covers, its timing, and the complete text and safety instructions.
Get current conditionsRead the weather happening right now: temperature, what it feels like, humidity, wind, pressure, visibility and a one-line description.
Get forecastRead 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 officeLook 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 forecastRead 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 observationsRead what a weather station recorded over a stretch of time, newest first - one row per observation, usually hourly.
Get zone forecastRead 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 locationFind 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 termExplain 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 bulletinRead the full text of one bulletin by its ID, as the forecaster wrote it.
Search past alertsSearch 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 typestypeslist
Only these kinds of bulletin. Leave empty for every kind. 'Area Forecast Discussion (AFD)' is the forecaster's reasoning behind today's forecast.
Issued bylocationslist
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).
Fromstartdate and time
Only results at or after this time. Leave blank for no floor.
Untilenddate and time
Only results at or before this time. Leave blank for no ceiling.
How manylimitnumber
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

Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
Statesstateslist
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 manylimitnumber
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

Statesstateslist
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 typezone_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.
Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
How manylimitnumber
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

Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
Statesareaslist
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.
Zoneszonestext
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 typeseventlist
Only these kinds of alert, such as Tornado Warning or Heat Advisory. Leave empty for every kind.
Severityseveritylist
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.
Urgencyurgencylist
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.
Certaintycertaintylist
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

Alertalert_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

Stationstationtext
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.
Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
Unitsunitstext
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

LatitudelatitudenumberRequired
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.
LongitudelongitudenumberRequired
Longitude of the place, in degrees. Negative in the Americas, which is everywhere the National Weather Service forecasts.From -180 to 180.
Unitsunitstext
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 officeofficetextRequired
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

LatitudelatitudenumberRequired
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.
LongitudelongitudenumberRequired
Longitude of the place, in degrees. Negative in the Americas, which is everywhere the National Weather Service forecasts.From -180 to 180.
Unitsunitstext
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

Stationstationtext
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.
Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
Fromstartdate and time
Only results at or after this time. Leave blank for no floor.
Untilenddate and time
Only results at or before this time. Leave blank for no ceiling.
How manylimitnumber
Most observations to return. Defaults to 24, which is about a day; the API's ceiling is 500.From 1 to 500. Default: 24.
Unitsunitstext
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 zonezonetextRequired
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

LatitudelatitudenumberRequired
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.
LongitudelongitudenumberRequired
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

TermtermtextRequired
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

Bulletinproduct_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

Fromstartdate and time
Only results at or after this time. Leave blank for no floor.
Untilenddate and time
Only results at or before this time. Leave blank for no ceiling.
Latitudelatitudenumber
Latitude of the place, in degrees. Positive north of the equator. Fill in both latitude and longitude, or neither.From -90 to 90.
Longitudelongitudenumber
Longitude of the place, in degrees. Negative in the Americas. Fill in both latitude and longitude, or neither.From -180 to 180.
Statesareaslist
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.
Zoneszonestext
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 typeseventlist
Only these kinds of alert, such as Tornado Warning or Heat Advisory. Leave empty for every kind.
Severityseveritylist
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.
Urgencyurgencylist
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.
Certaintycertaintylist
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 manylimitnumber
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"
    }
  ]
}

On this page