Central Banks & Monetary

FRED series observations - US CPI inflation, GDP, unemployment rate, federal funds rate, Treasury yields, M2 money supply, ~800k more

Changed on

Generic Federal Reserve Economic Data (FRED) series proxy. Pass any FRED series_id and receive observations plus metadata. Examples: CPIAUCSL (US CPI inflation), GDP (US GDP), UNRATE (US unemployment rate), DFF (federal funds effective rate), DGS10 (10-year Treasury yield), M2SL (M2 money supply). Covers the full FRED catalog (~800k macroeconomic time series from the St. Louis Fed).

get/api/v1/fred/series/{series_id}

Request

  • Base URL: https://sugra.ai
  • URL: https://sugra.ai/api/v1/fred/series/{series_id}
  • Auth: API key in header x-api-key

Path parameters

series_idstring required

FRED series identifier in upper-snake-case. Common examples: CPIAUCSL (US Consumer Price Index, all urban consumers, all items), GDP (US Gross Domestic Product), UNRATE (US unemployment rate), DFF (federal funds rate, effective, daily), DGS10 (10-year Treasury constant maturity rate), M2SL (M2 money supply, seasonally adjusted).

Example:CPIAUCSL

Query parameters

observation_startstring nullable

ISO date YYYY-MM-DD lower bound (inclusive). Defaults to FRED earliest.

Example:2020-01-01
observation_endstring nullable

ISO date YYYY-MM-DD upper bound (inclusive). Defaults to today.

Example:2026-05-20
limitinteger

Max observations to return. FRED's hard cap is 100000; we cap at 1000 here for RAM safety and predictable response sizes. Default was raised from 100: with sort_order=desc a daily series at 100 returned barely 3 months and read as its whole history. When the series holds more than limit, the response also carries observations_truncated and observations_available. observations_available is null when FRED reported no total.

sort_orderstring

'desc' returns the most recent observations first (default); 'asc' the oldest.

frequencystring nullable

FRED server-side frequency aggregation (DOWN-sample only, e.g. monthly->quarterly): d, w, bw, m, q, sa, a plus period-ending variants (wef/weth/wew/wetu/wem/wesu/wesa, bwew/bwem). Cannot up-sample. Pair with aggregation_method; defaults to the series' native frequency when omitted.

aggregation_methodstring nullable

How observations collapse when 'frequency' down-samples: avg (default), sum, eop (end of period). No effect unless 'frequency' is also supplied.

unitsstring nullable

FRED value transform applied UPSTREAM: lin (level, default), chg (change), ch1 (change from year ago), pch (percent change), pc1 (percent change from year ago), pca (compounded annual rate of change), cch (continuously compounded change), cca (continuously compounded annual rate), log (natural log). Percent transforms return percent NUMBERS (pch=3.2 means 3.2 percent, not 0.032). With any transform but lin, 'units' and 'units_short' name the transform and the series' own labels move to 'level_units' and 'level_units_short'; the request is echoed under 'transform'.

Response

Single FRED economic series by series_id with observations and lightweight metadata (title, units, frequency, last_updated). operation_id auto-generated as fred_series_series_id by main._clean_operation_id (project convention).

Example response

{
  "meta": {
    "endpoint": "/api/v1/fred/us/cpi",
    "data_time": "2026-04-16T14:30:00Z",
    "response_time": "2026-04-16T14:30:12Z",
    "provider": "Sugra API v1.0.1",
    "data_age_days": 8.532,
    "source": "sugra_crypto",
    "attribution": "Short interest and Reg SHO daily short volume data is owned by and sourced from FINRA (Financial Industry Regulatory Authority).",
    "fallback_chain": [
      "sugra_crypto",
      "sugra_finance"
    ],
    "stale_since": "2026-09-08T12:00:00Z",
    "period": "2026-Q1",
    "notes": "the UKMTO report behind these counts is dated 2026-08-21 and is 11 days old"
  }
}

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • breaking

      for the query request parameter limit, default value was changed from 100 to 500