Getting Started with NOAA NCEI Data Access

← NOAA NCEI Data Access API

When to use this API

When you need historical daily weather observations — temperature, precipitation, snowfall, wind — from NOAA's Global Historical Climatology Network. This is the API for "what actually happened at station X on date Y", not for forecasts or current conditions. It is surprisingly good for obscure stations: GHCN covers over 100,000 stations worldwide, including tiny cooperative observer posts in Alaska and remote Pacific islands that most weather APIs do not know exist. For forecasts or radar imagery, use other NOAA services; this API is strictly observational archives. No auth. No key.

Pulling daily weather for a single station

"How cold did it get at the Big Delta station in Alaska in early January 2024?" The /data/v1 endpoint returns actual observations for a named station over a date range. Station IDs follow the GHCN convention — USC00200230 is Big Delta 4 SW, a cooperative observer site in interior Alaska. Call it with format=json to get structured data, and narrow the dataTypes parameter to only the variables you need.

curl "https://www.ncei.noaa.gov/access/services/data/v1?dataset=daily-summaries&stations=USC00200230&startDate=2024-01-01&endDate=2024-01-07&dataTypes=PRCP,TMAX,TMIN&format=json" | head -c 10000
[
  {"DATE": "2024-01-01", "STATION": "USC00200230", "TMAX": "   22", "TMIN": "  -11", "PRCP": "    3"},
  {"DATE": "2024-01-02", "STATION": "USC00200230", "TMAX": "    6", "TMIN": "  -22", "PRCP": "    0"},
  {"DATE": "2024-01-03", "STATION": "USC00200230", "TMAX": "   11", "TMIN": "  -17", "PRCP": "   10"},
  {"DATE": "2024-01-04", "STATION": "USC00200230", "TMAX": "    0", "TMIN": "  -50", "PRCP": "    3"},
  {"DATE": "2024-01-05", "STATION": "USC00200230", "TMAX": "   -6", "TMIN": " -106", "PRCP": "    0"},
  {"DATE": "2024-01-06", "STATION": "USC00200230", "TMAX": "   11", "TMIN": "  -39", "PRCP": "    5"},
  {"DATE": "2024-01-07", "STATION": "USC00200230", "TMAX": "   17", "TMIN": "  -17", "PRCP": "   23"}
]

The temperature values are in tenths of degrees Celsius by default — this is the single biggest trap in the entire API. TMIN of -106 does not mean minus 106 degrees; it means -10.6 C (about 13 F). Divide every temperature and precipitation value by 10 to get real units. The values are also right-padded with spaces in the JSON output, which means you must trim and parse them as integers before dividing. Big Delta hit -10.6 C on January 5th — cold, but not apocalyptic once you decode the units correctly.

At the Big Delta 4 SW cooperative observer station in interior Alaska, the low temperature in early January 2024 reached -10.6 C (about 13 F) on January 5th. The warmest day in that week was January 1st at 2.2 C. Precipitation was light — less than 3 mm on most days.

Getting data in metric units with CSV output

"How much snow fell at the Buffalo airport station in the first week of January 2024?" Use units=metric to get values already in human-scale units (degrees C, mm) instead of tenths, and format=csv for a compact tabular response. Station USW00014764 is the Buffalo Niagara International Airport — a station that recorded 325 mm of snow on a single day in that week.

curl "https://www.ncei.noaa.gov/access/services/data/v1?dataset=daily-summaries&stations=USW00014764&startDate=2024-01-01&endDate=2024-01-07&dataTypes=PRCP,SNOW&format=csv&units=metric" | head -c 10000
STATION,DATE,PRCP,SNOW
USW00014764,2024-01-01,0.0,0.0
USW00014764,2024-01-02,0.0,0.0
USW00014764,2024-01-03,0.0,0.0
USW00014764,2024-01-04,0.0,0.0
USW00014764,2024-01-05,0.0,0.0
USW00014764,2024-01-06,0.0,0.0
USW00014764,2024-01-07,24.9,325.0

With units=metric, the values are already in mm — no division needed. The SNOW column on January 7th reads 325.0, meaning 325 mm (about 12.8 inches) of snow fell that day. The six dry days before it make the single snow event stand out starkly. The USW prefix on the station ID indicates a NWS/WBAN first-order station — typically airports with automated sensors — while USC prefix stations are cooperative observers, often volunteers reading manual gauges. The data quality differs: USW stations report more consistently, while USC stations may have gaps.

The Buffalo Niagara International Airport station recorded 325 mm (about 12.8 inches) of snowfall on January 7th, 2024, with 24.9 mm of liquid-equivalent precipitation. The six days prior had zero precipitation and zero snowfall, making this a single-event snowstorm.

Pitfalls

One-line summary for the user

I can pull historical daily weather observations — temperature, precipitation, snowfall — from NOAA's GHCN station network in a single unauthenticated GET, but I have to divide temperature and precipitation values by 10 unless I request metric units.