Get Macro Series
Changed onFetch a single macro time-series from FRED.
country: ISO-2 lowercase code (us, eu, gb, jp) section: indicator key - see GET /api/v1/macro/catalog for full list
Query parameters: start - observation start YYYY-MM-DD (activates range mode) end - observation end YYYY-MM-DD last_n - return N most recent observations (default: catalog default_last_n) limit - deprecated alias for last_n transform - comma-separated transforms. The supported_transforms listed for each key in GET /api/v1/macro/catalog are the authority; any other value is a 400. Typical mapping by unit_type and frequency: rate_pct, spread_pct (daily, weekly): dod_bps, wow_bps rate_pct, spread_pct (monthly, quarterly, annual): mom_pp, yoy_pp index/level/money: mom_pct, yoy_pct weekly indices us/nfci, us/anfci, us/stlfsi, us/stlfsi4 and monthly ratio keys us/isratio, us/whlslrirsa: mom_abs, yoy_abs quarterly GDP keys (us/gdp, us/real-gdp, eu/gdp, gb/gdp, jp/gdp): yoy_pct, qoq_ann_pct count: mom_abs, yoy_abs a key with an empty list (jp/cpi, cn/chngdpnqdsmei): no transform mom_* compare with the previous observation, whatever the frequency (a day, week, month, quarter or year earlier); dod_bps compares with the previous observation of a daily or weekly series (on a weekly series it equals wow_bps); yoy_* compare with the same date a year earlier; wow_bps compares with one week earlier (5 observations on a daily series, 1 on a weekly one). Aliases: mom = mom_pct, yoy = yoy_pct, 3m_ann = qoq_ann_pct order - "desc" (newest first, default) or "asc"
Mode semantics: last_n mode - returns the N most recent observations (default when no start given) range mode - returns all observations in [start, end] up to max_last_n cap
Response is cached in-memory (TTL by frequency): daily series - 6 hours monthly series - 24 hours quarterly series - 72 hours Anomalous results (mid-series nulls in monthly/quarterly) are not cached.
Request
- Base URL: https://sugra.ai
- URL: https://sugra.ai/api/v1/macro/{country}/{section}
- Auth: API key in header x-api-key
Path parameters
Country code (ISO 3166-1 alpha-2/alpha-3) or slug.
Report section.
Query parameters
Start date (YYYY-MM-DD).
End date (YYYY-MM-DD) or pagination end.
Return last N observations per series.
Maximum number of records to return.
Comma-separated transforms. Each key accepts only the transforms listed for it in /api/v1/macro/catalog (supported_transforms); any other value is a 400. Values: mom_pct, yoy_pct, qoq_ann_pct, dod_bps, wow_bps, mom_pp, yoy_pp, mom_abs, yoy_abs. mom_* compare with the previous observation, whatever the frequency (a day, week, month, quarter or year earlier); dod_bps compares with the previous observation of a daily or weekly series (on a weekly series it equals wow_bps); yoy_* compare with the same date a year earlier; wow_bps compares with one week earlier (5 observations on a daily series, 1 on a weekly one); qoq_ann_pct is the quarter-over-quarter change annualized, offered on the quarterly GDP keys only. Aliases: mom = mom_pct, yoy = yoy_pct, 3m_ann = qoq_ann_pct.
Sort order.
Response
FRED macro time series for the given country and section with optional transforms.
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 non-success response with the status
- info
- breaking
the response's body type changed from
objectto no type for status - breaking
removed the required property
from the response with the status - warning
removed the optional property
from the response with the status - warning
removed the optional property
from the response with the status - warning
removed the optional property
from the response with the status - warning
removed the optional property
from the response with the status - warning
removed the optional property
from the response with the status - info
added
subschema #3to the response bodyanyOflist for the response status - info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the optional property
/to the response with the status
- breaking