fred.stlouisfed.org APIfred.stlouisfed.org ↗
Access FRED economic time-series, categories, releases, and release calendars via 9 endpoints. Retrieve GDP, CPI, unemployment, and hundreds of other series.
curl -X GET 'https://api.parse.bot/scraper/32962f24-6be4-4e65-a842-da6a917d09ee/get_series?series_id=GDP' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve metadata for an economic data series including title, frequency, units, source, and last updated date.
| Param | Type | Description |
|---|---|---|
| series_idrequired | string | Series ID (e.g. 'GDP', 'CPIAUCSL', 'UNRATE') |
{
"type": "object",
"fields": {
"notes": "string",
"title": "string",
"units": "string",
"source": "string",
"frequency": "string",
"series_id": "string",
"last_updated": "string",
"observation_end": "string",
"observation_start": "string",
"seasonal_adjustment": "string"
},
"sample": {
"data": {
"notes": "BEA Account Code: A191RC...",
"title": "Gross Domestic Product",
"units": "Billions of Dollars",
"source": "U.S. Bureau of Economic Analysis",
"frequency": "Quarterly",
"series_id": "GDP",
"last_updated": "2026-04-30 07:49:05-05",
"observation_end": "2026-01-01",
"observation_start": "1947-01-01",
"seasonal_adjustment": "Seasonally Adjusted Annual Rate"
},
"status": "success"
}
}About the fred.stlouisfed.org API
The FRED API exposes 9 endpoints for querying the Federal Reserve Bank of St. Louis's economic data repository, covering series metadata, time-series observations, category hierarchies, data releases, and a current-week release calendar. The get_series_observations endpoint returns date-value pairs with support for frequency aggregation and transformations like percent change. Series spanning GDP, CPI, unemployment, housing, and Treasury rates are all reachable by series ID.
Series Data and Observations
The core pair of endpoints is get_series and get_series_observations. get_series returns metadata for any series ID — title, units, frequency, seasonal adjustment status, source attribution, and the observation window (observation_start, observation_end). get_series_observations returns the actual data as an array of {date, value} objects, with optional start_date and end_date filters (YYYY-MM-DD), a frequency parameter (m, q, a) for aggregation, and a transformation parameter (lin, chg, pch) for levels, changes, or percent changes. The response includes a count field for the total observation count.
Search and Navigation
search_series accepts free-text keywords like 'inflation' or 'unemployment rate' and returns paginated results with series_id, title, metadata, and popularity ranking. FRED's category tree is accessible via get_categories (all top-level categories) and get_category (details for a specific category_id, including subcategories with their series_count and a series array of series in that node). This lets you traverse the full FRED taxonomy programmatically.
Releases and Calendar
get_releases lists every FRED data release with release_id and name. get_release_series maps a release_id to all series it contains, returning an array of {series_id, title} pairs. get_release_calendar returns this week's scheduled release events with date, time, release_id, and release_name — useful for building economic event trackers keyed to actual FRED publication times.
Pre-built Collections
get_collection provides six pre-defined topical groupings: gdp, inflation, employment, treasury, money, and housing. Each response includes a series array with series_id, title, last_updated, and units, plus a series_count total. This is the fastest way to seed a dashboard with a coherent set of related indicators without manually curating series IDs.
- Build a macroeconomic dashboard by pulling CPI, GDP, and unemployment observations via
get_series_observationswith quarterly aggregation. - Track upcoming economic data events by polling
get_release_calendarto surface this week's scheduled FRED releases with times. - Map FRED's full category hierarchy using
get_categoriesand recursiveget_categorycalls to discover available series by topic. - Compute rolling percent-change series for inflation indicators by passing
transformation=pchtoget_series_observations. - Populate a sector analysis tool using
get_collectionwith thetreasuryorhousingcollection type for pre-grouped series metadata. - Search for lesser-known FRED series by keyword with
search_seriesand rank results by thepopularityfield. - Audit a data pipeline by comparing
last_updatedandobservation_endfields fromget_seriesagainst expected publication schedules.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FRED have an official developer API?+
What does `get_series_observations` actually return, and how do the transformation options work?+
count integer plus an observations array of {date, value} objects. The transformation parameter changes what value represents: lin gives raw levels, chg gives the absolute change from the prior period, and pch gives the percent change. The frequency parameter (m, q, a) re-aggregates native data to a coarser interval. Values can be null for periods with no reported data.How far back does the observation history go?+
get_series returns observation_start and observation_end fields that give the exact available range for any series ID. Some series like GDP start in the 1940s; others are more recent. Use the start_date and end_date inputs on get_series_observations to constrain the returned window.Does the API support vintage/revision history for series — for example, retrieving what GDP looked like as originally reported before revisions?+
Is there a way to retrieve category subcategory counts without fetching full series lists?+
get_category response includes a subcategories array where each entry carries category_id, name, and series_count. You can use series_count to assess category size without calling get_release_series or iterating the series array. The series array in the same response lists series directly under that node.