Meta

List the data catalog's products.

Lists every product the REST API serves, from the Smarter Weather data catalog: its family, kind, cadence, coverage, horizon, stability, cost class, entitlement and source attribution, sorted by id. GET /v1/catalog/{product_id} adds a product's variables and retrieval fields. Field names match the MCP list_datasets and describe_dataset tools.

Completeness and paging

Without limit the list is complete: it is never truncated and carries no cursor. When the catalog outgrows one response, paging ships as an additive change using the house paging words (limit and truncated, then cursor and next_cursor). Filters, when added, are named after the field they filter (kind, product_type, domain, family, and var for a variable).

Freshness

include=freshness adds each product's freshness (see CatalogFreshness, experimental). Without it the response is a static view of the catalog and does not depend on live data.

Caching

Without include=freshness the response carries a weak ETag (W/"...", a hash of the response body, so it changes whenever the body does), Vary: Accept-Encoding, and Cache-Control: max-age=300, stale-while-revalidate=60; send the tag back in If-None-Match to get 304 Not Modified with no body. Range is ignored: the body is always the whole document. With include=freshness there is no ETag and the budget is max-age=60, stale-while-revalidate=30. Cache-Control is public for first-party keys and private for partner keys.

Auth and cost

Standard sw-api Bearer auth and rate limits apply. Catalog calls are free: they are not metered. Trial keys may call both catalog routes without spending any of the trial's lifetime calls (an ended trial still gets 402); a trial key minted before the catalog opened to trials gets 403 trial-route-not-allowed and should mint a new trial key.

get/v1/catalog

Request

  • Base URL: https://api.smarterweather.com
  • URL: https://api.smarterweather.com/v1/catalog
  • Auth: HTTP bearer

Query parameters

includestring

Comma-separated optional sections. The only token is freshness, which adds each product's freshness (experimental) and drops the ETag. Tokens are case-insensitive; unknown tokens are silently dropped.

Response

Every product on the REST door.

Example response

{
  "products": [
    {
      "id": "nbm_conus",
      "title": "NBM CONUS Surface Variables",
      "family": "nbm",
      "kind": "grid",
      "product_type": "forecast",
      "domain": "conus",
      "coverage": [
        "conus"
      ],
      "cadence": "PT1H",
      "horizon": "PT264H",
      "step": "PT1H",
      "temporal_type": "hourly",
      "grid_res_km": 2.5,
      "stability": "stable",
      "cost_class": "data",
      "source": {
        "id": "nbm",
        "name": "National Blend of Models",
        "provider_id": "noaa",
        "attribution": "Data provided by NOAA/NWS",
        "license": "public_domain",
        "terms_url": "https://www.weather.gov/disclaimer"
      },
      "freshness": {
        "data_age_seconds": 3600
      }
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.