NOAA Climate Data logo

NOAA Climate Data

Overview

NOAA's Climate Data Online (CDO) API requires a personal token (NOAA also calls this a "token key"). One token unlocks every endpoint — there are no per-endpoint scopes.

Setup guide

Request a token

Go to https://www.ncdc.noaa.gov/cdo-web/token and submit your email address. Per NOAA's portal: "An email will be sent containing your CDO web services token." NOAA's docs do not state token expiration, rotation, or revocation behavior.

Add it to Ingest

In the Ingest UI under Connectors → NOAA Climate Data, paste the token. It is stored under the secret key token and sent on every request as the HTTP header token: <your-token> (NOAA does not use Authorization: Bearer).

Mind the limits

Per NOAA's v2 docs:

  • 5 requests per second per token. The connector throttles to this automatically.
  • 10,000 requests per day per token. For high-volume backfills of data, reduce daily_lookback so each run fetches a smaller window.

HTTP 429 is retried with backoff. HTTP 401/403 is treated as fatal — usually means a typo or revoked token. (These behaviors come from the connector's error_handling config, not from NOAA's docs.)

Pick endpoints

You don't need to enable everything. A common starting set is datasets, datatypes, stations, and data. Lookup endpoints (datacategories, locationcategories, locations) are small and cheap to leave on. Each endpoint doc lists when it's worth turning on.

Supported streams

7 endpoints are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.

EndpointDescriptionReference
data
data
Get climate data observations
datacategories
datacategories
Get groupings of data types
datasets
datasets
Get available datasets
datatypes
datatypes
Get available data types
locationcategories
locationcategories
Get location categories
locations
locations
Get available locations
stations
stations
Get weather stations

Authentication

Auth type
API Key
Sent as header
token

Performance & limits

Rate limit
5 req/sec, 10,000 req/day per token
Automatic backoff
Ingest throttles requests to the published rate limit and retries with exponential backoff on transient errors. You don't need to handle 429s, retries, or pagination yourself.

Resources