stations

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

Description

Returns a list of observation stations usable for a given 2.5km grid area

Parameters (5)

Feature-Flags (array, header, optional)

Enable future and experimental features (see documentation for more info): * obs_station_provider: Include the data provider in the metadata about observation stations

limit (integer, query, optional, default: 500)

Limit

Constraints: {'minimum': 1, 'maximum': 500}

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)

Get stations for Washington DC grid area curl
curl 'https://api.weather.gov/gridpoints/LWX/96,72/stations'
import requests

resp = requests.get("https://api.weather.gov/gridpoints/LWX/96,72/stations")
data = resp.json()
import zingu_apis

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

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/LWX/96,72/stations");
const data = await resp.json();
Get stations with limited results for NYC area curl
curl 'https://api.weather.gov/gridpoints/OKX/33,37/stations?limit=10'
import requests

resp = requests.get(
    "https://api.weather.gov/gridpoints/OKX/33,37/stations",
    params={
        'limit': 10,
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("weather")
result = api.fetch("gridpoints/{wfo}/{x},{y}/stations", limit=10)

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/OKX/33,37/stations?limit=10");
const data = await resp.json();
Get stations with experimental feature flag for Seattle area curl
curl 'https://api.weather.gov/gridpoints/SEW/125,65/stations' \
  -H 'Feature-Flags: obs_station_provider: I'
import requests

resp = requests.get(
    "https://api.weather.gov/gridpoints/SEW/125,65/stations",
    headers={
        'Feature-Flags': 'obs_station_provider: I',
    },
)
data = resp.json()
import zingu_apis

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

for item in result:
    print(item)
const resp = await fetch("https://api.weather.gov/gridpoints/SEW/125,65/stations", {
  headers: {
    "Feature-Flags": "obs_station_provider: I",
  },
});
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-04 03:39:38.508418 200 216ms
2026-04-04 03:29:24.313538 200 1292ms
2026-04-04 02:43:09.954111 200 396ms
2026-04-03 13:20:38.702222 200 280ms
2026-04-03 12:55:09.013708 200 1032ms
2026-04-03 12:40:45.907900 200 1014ms
2026-03-30 06:01:41.177457 200 234ms
2026-03-30 03:25:29.947484 200 657ms
2026-03-30 03:03:12.378793 200 230ms
2026-03-29 15:29:00.854775 200 671ms
2026-03-29 13:50:50.054815 200 742ms
2026-03-29 13:20:34.305985 200 672ms
2026-03-23 10:44:19.440487 200 210ms
2026-03-22 21:47:48.279144 200 1735ms
2026-03-22 21:12:13.615653 200 1332ms