v1: Retrieve climate and weather data

API: noaa.gov:noaa-ocean-api
Endpoint: /data/v1
Response format: application/json
Auth: none
Method: GET
Last Status: 400
Latency: 1478ms

Description

Access historical weather observations, marine data, and climate summaries from NOAA's archive. Supports various datasets including daily summaries, hourly observations, and marine surface data.

Parameters (11)

bbox (string, query, optional)

Bounding box as four comma-separated numbers (N,W,S,E). North/South range -90 to 90, East/West range -180 to 180. Default is global extent.

dataTypes (string, query, optional)

Comma-separated list of data type codes (e.g., TMAX, TMIN, PRCP, TMP, SEA_SURF_TEMP, WIND_SPEED)

dataset (string, query, required)

Dataset identifier (e.g., daily-summaries, global-hourly, global-marine)

Constraints: {'enum': ['daily-summaries', 'global-hourly', 'global-marine', 'global-summary-of-the-day', 'global-summary-of-the-month', 'global-summary-of-the-year', 'global-historical-climatology-network-hourly', 'normals-daily', 'normals-monthly', 'normals-annualseasonal']}

endDate (string, query, required)

End date in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss). Use Z for UTC or +/-HH:mm for timezone offset (encode + as %2B)

format (string, query, optional, default: json)

Output format

Constraints: {'enum': ['json', 'csv', 'ssv', 'pdf', 'netcdf']}

includeAttributes (boolean, query, optional, default: False)

Include measurement attributes

includeStationLocation (boolean, query, optional, default: False)

Include station location (lat/lon) in output

includeStationName (boolean, query, optional, default: False)

Include station name in output

startDate (string, query, required)

Start date in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss). Use Z for UTC or +/-HH:mm for timezone offset (encode + as %2B)

stations (string, query, optional)

Comma-separated list of station identifiers

units (string, query, optional)

Unit system for output values

Constraints: {'enum': ['metric', 'standard']}

Examples (1)

Retrieve climate and weather data openapi-spec
curl 'https://www.ncei.noaa.gov/access/services/data/v1?bbox=40%2C-70%2C30%2C-60'
import requests

resp = requests.get(
    "https://www.ncei.noaa.gov/access/services/data/v1",
    params={
        'bbox': '40,-70,30,-60',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("noaa-ocean")
result = api.fetch("data/v1", bbox="40,-70,30,-60")

for item in result:
    print(item)
const resp = await fetch("https://www.ncei.noaa.gov/access/services/data/v1?bbox=40%2C-70%2C30%2C-60");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 17:09:59.610654 400 1478ms
2026-04-16 00:56:02.228112 400 869ms
2026-04-15 02:15:40.376659 400 888ms
2026-04-14 01:09:49.049896 400 1008ms
2026-04-12 16:27:55.791503 400 875ms
2026-04-10 03:18:19.084345 400 422ms
2026-04-09 01:07:50.512931 400 653ms
2026-03-23 10:43:36.555520 400 1014ms