hourly

API: weather.gov:national-weather-service-api
Endpoint: /gridpoints/{wfo}/{x},{y}/forecast/hourly
Response format: application/geo+json
Auth: unknown
Method: GET
Last Status: 200
Latency: 584ms

Description

Returns a textual hourly forecast for a 2.5km grid area

Parameters (5)

Feature-Flags (array, header, optional)

Enable future and experimental features (see documentation for more info): * forecast_temperature_qv: Represent temperature as QuantitativeValue * forecast_wind_speed_qv: Represent wind speed as QuantitativeValue

units (?, query, optional)

Use US customary or SI (metric) units in textual output

wfo (?, path, required)

Forecast office ID

x (integer, path, required)

Forecast grid X coordinate

Constraints: {'minimum': 0}

y (integer, path, required)

Forecast grid Y coordinate

Constraints: {'minimum': 0}

Examples (3)

Basic hourly forecast for Topeka grid curl
curl 'https://api.weather.gov/gridpoints/TOP/31,80/forecast/hourly'
import requests

resp = requests.get("https://api.weather.gov/gridpoints/TOP/31,80/forecast/hourly")
data = resp.json()
import zingu_apis

api = zingu_apis.api("weather")
result = api.fetch("gridpoints/{wfo}/{x},{y}/forecast/hourly")

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/TOP/31,80/forecast/hourly");
const data = await resp.json();
Hourly forecast with metric units curl
curl 'https://api.weather.gov/gridpoints/OKX/33,37/forecast/hourly?units=si'
import requests

resp = requests.get(
    "https://api.weather.gov/gridpoints/OKX/33,37/forecast/hourly",
    params={
        'units': 'si',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("weather")
result = api.fetch("gridpoints/{wfo}/{x},{y}/forecast/hourly", units="si")

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/OKX/33,37/forecast/hourly?units=si");
const data = await resp.json();
Hourly forecast with experimental temperature QV feature curl
curl 'https://api.weather.gov/gridpoints/LOX/154,44/forecast/hourly' \
  -H 'Feature-Flags: forecast_temperature_qv'
import requests

resp = requests.get(
    "https://api.weather.gov/gridpoints/LOX/154,44/forecast/hourly",
    headers={
        'Feature-Flags': 'forecast_temperature_qv',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("weather")
result = api.fetch("gridpoints/{wfo}/{x},{y}/forecast/hourly")

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/LOX/154,44/forecast/hourly", {
  headers: {
    "Feature-Flags": "forecast_temperature_qv",
  },
});
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-04 06:35:13.659265 200 584ms
2026-04-04 06:15:49.373865 200 543ms
2026-04-04 03:21:55.318528 200 463ms
2026-04-03 14:59:06.744565 200 464ms
2026-04-03 14:03:38.404734 200 3646ms
2026-04-03 12:46:35.676053 200 961ms
2026-03-30 06:12:56.517863 200 434ms
2026-03-30 06:03:43.896376 200 579ms
2026-03-30 02:44:03.999693 200 531ms
2026-03-29 15:03:21.161279 200 1005ms
2026-03-29 14:56:54.790295 200 493ms
2026-03-29 13:04:57.085712 200 478ms
2026-03-23 10:41:14.978139 200 426ms
2026-03-23 09:36:47.473195 200 684ms
2026-03-23 09:07:50.018746 200 1425ms