Access with

When the user asks about historical weather observations, daily temperature records, precipitation, wind speed, monthly climate averages, or seasonal patterns for a NOAA station — reach for NOAA NCEI Access Data Service. Requires a station ID; no auth needed.

access-with · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/access-with. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/access-with/SKILL.md.

When to use this skill

When the user asks about historical weather at a specific location — daily temperature highs and lows, precipitation, wind speed, monthly climate averages, or seasonal patterns — and you have a NOAA station ID. This API serves observed and climatological data, not forecasts. For weather forecasts, use a different service.

Your best first call

curl "https://www.ncei.noaa.gov/access/services/data/v1?dataset=daily-summaries&stations=USW00026617&startDate=2023-02-14&endDate=2023-02-18&dataTypes=TMAX,TMIN,PRCP,AWND&units=standard&includeStationName=true&format=json"

No auth. No key. Replace the station ID, date range, and dataTypes to match the user's question. The dataset parameter selects the data product: daily-summaries for day-by-day observations, global-summary-of-the-month for monthly averages, global-summary-of-the-year for annual averages.

Each row returns flat JSON with the requested data types as keys. The fields you'll use most:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can pull historical daily weather observations and monthly climate summaries for any NOAA monitoring station — but you need the station ID, and the default output uses raw tenths-of-units so always set units=standard or units=metric.

APIs this skill uses

NOAA Ocean Data API · primary · verified

Access environmental data from NOAA's National Centers for Environmental Information. Retrieve climate, weather, and oceanographic data for stations worldwide.

Generated from

NOAA Ocean Data API tutorial Getting Started with NOAA NCEI Access Data Service

SKILL.md source (frontmatter + body)
---
name: access-with
description: When the user asks about historical weather observations, daily temperature records, precipitation, wind speed, monthly climate averages, or seasonal patterns for a NOAA station — reach for NOAA NCEI Access Data Service. Requires a station ID; no auth needed.
---

## When to use this skill

When the user asks about historical weather at a specific location — daily temperature highs and lows, precipitation, wind speed, monthly climate averages, or seasonal patterns — and you have a NOAA station ID. This API serves observed and climatological data, not forecasts. For weather forecasts, use a different service.

## Your best first call

```bash
curl "https://www.ncei.noaa.gov/access/services/data/v1?dataset=daily-summaries&stations=USW00026617&startDate=2023-02-14&endDate=2023-02-18&dataTypes=TMAX,TMIN,PRCP,AWND&units=standard&includeStationName=true&format=json"
```

No auth. No key. Replace the station ID, date range, and `dataTypes` to match the user's question. The `dataset` parameter selects the data product: `daily-summaries` for day-by-day observations, `global-summary-of-the-month` for monthly averages, `global-summary-of-the-year` for annual averages.

Each row returns flat JSON with the requested data types as keys. The fields you'll use most:

- `DATE` — `YYYY-MM-DD` for daily datasets, `YYYY-MM` for monthly
- `STATION` — the NOAA station identifier
- `NAME` — station name (requires `includeStationName=true`)
- `TMAX`, `TMIN` — daily high and low temperature (°F with `units=standard`, °C with `units=metric`)
- `PRCP` — precipitation
- `AWND` — average wind speed

## Fallbacks (when the best call isn't enough)

- **Monthly or seasonal averages instead of daily readings** → switch `dataset` to `global-summary-of-the-month` and use `YYYY-MM` date ranges. Values become monthly means of daily highs/lows, not single-day readings.
- **Marine or oceanic station data** → switch `dataset` to `global-marine` and use `boundingBox` instead of `stations`. Different data type codes apply (e.g., `SST` for sea surface temperature).
- **No station ID in hand** → This API has no search endpoint. Use NOAA's station finder at `https://www.ncei.noaa.gov/cdo-web/datatools/findstation` to look up the ID before calling.

## Pitfalls

- **Always set `units`.** Without `units=standard` or `units=metric`, the API returns raw GHCN integers — `"256"` means 25.6°C, not 256°C. The documented default of `metric` does not match the actual default, which is raw tenths-of-units with leading spaces.
- **Each `dataset` has its own valid data type codes.** Requesting `TMAX` on `global-marine` silently returns empty rows — no error, just no data. Check which data types belong to which dataset.
- **Station IDs are not guessable from city names.** `USW00026617` is Nome Airport — you cannot derive this from "Nome, AK". Find station IDs through NOAA's station finder first.
- **Monthly values are averages, not readings.** In `global-summary-of-the-month`, a `TMAX` of 56.3°F is the mean of all daily highs that month, and the `DATE` field uses `YYYY-MM`, not `YYYY-MM-DD`.

## One-line summary for the user

I can pull historical daily weather observations and monthly climate summaries for any NOAA monitoring station — but you need the station ID, and the default output uses raw tenths-of-units so always set `units=standard` or `units=metric`.

« Back to all skills