Governmental Free & Open

Federal Reserve Economic Data

FRED is maintained by the Federal Reserve Bank of St. Louis and provides access to over 800,000 US and international time series from nearly 100 sources. Data includes interest rates, exchange rates, GDP, and inflation metrics.

Status Tracker Past 24 hours

Current status

Operational

100.0% operational in known checks

Checked Jun 16, 10:45 PM

24h ago Now
Operational Polling issues Impacted No data
All sources
Data access source profile JSON profile →

Access

limited

Collection level

L2

Confidence

medium

Recommended next action

Use the official access path with a user-provided key or account; do not run unauthenticated data probes.

Exportable data

public_csv_and_free_key_api

Docker fit

worker_ok

Estimated size

large

apiautomation-readycsvcsv-and-rest-apidirect-linkend-userotherportalxlsx
Access & Pricing Visit source →

Cost

Free

Access type

open

Signup required

No

Update alerts

✓ Available

Coverage

north america

Update frequency

varies

Source Documentation

What You're Getting

FRED hosts 800,000+ economic time series from 100+ sources — GDP, CPI, interest rates, money supply, employment, and more. Data is organized by series ID (e.g. GDP, CPIAUCSL, UNRATE). Each series returns an observations array with date and value fields. Frequency varies per series (daily, weekly, monthly, quarterly, annual). Vintage data (historical release snapshots) is available via the ALFRED endpoint.

Ingestion Strategy

Use the REST API with a FRED API key (free, no rate-limit concerns at reasonable volumes). Preferred pattern: pull a list of series IDs you need, then request observations in bulk with limit=10000 and sort_order=asc. Store series_id, date, value, realtime_start, and realtime_end so you can reconstruct vintages. For initial backfills, request all observations; for incremental loads, use observation_start set to your last-loaded date.

import requests, pandas as pd

API_KEY = "your_key"
series = ["GDP", "CPIAUCSL", "UNRATE"]
rows = []
for sid in series:
    r = requests.get("https://api.stlouisfed.org/fred/series/observations",
        params={"series_id": sid, "api_key": API_KEY, "file_type": "json",
                "sort_order": "asc", "limit": 10000})
    for obs in r.json()["observations"]:
        rows.append({"series_id": sid, **obs})
df = pd.DataFrame(rows)

Rate Limits & API Details

  • 120 requests/minute per API key (generous for most pipelines)
  • Free API key at fred.stlouisfed.org/docs/api/api_key.html
  • Bulk download endpoint at api.stlouisfed.org/fred — JSON or XML
  • ALFRED (vintage data): same API, add realtime_start / realtime_end params

Schema Stability

Very stable. Series IDs are permanent. Occasional series are discontinued (marked discontinued=true) but historical data is preserved. Units and seasonal adjustment flags are metadata fields — pull them once and store alongside series definitions.

Data Quality Gotchas

  • Seasonal adjustment: many series exist in both SA and NSA variants — store the suffix (_SA, _NSA) in your series metadata
  • Revisions: economic data is revised; if you need point-in-time accuracy, pull ALFRED vintages
  • Missing values: coded as . in CSV downloads — handle nulls explicitly
  • Frequency mismatch: mixing monthly and quarterly series requires explicit resampling in your model layer

Tool Compatibility

  • Python: fredapi library wraps the REST API cleanly
  • R: fredr package (CRAN)
  • Airbyte: community FRED connector exists
  • dbt: no native source, but standard SQL after loading into warehouse
  • Direct API works from any language or ETL tool

Benchmarking Approach

Track row count per series per load. For GDP, expect ~300+ quarterly observations going back to 1947. For CPIAUCSL, expect ~800+ monthly points. Alert if new observations stop appearing within 30 days of expected release date (check FRED release calendar via API). Cross-check GDP value for a known quarter against BEA published figure to confirm no unit conversion errors.

Visit Data Source

Data Formats

csv xlsx api other

API Quickstart

— Python — fetch GDP series
Docs →
import requests

API_KEY = "your_fred_api_key"
url = "https://api.stlouisfed.org/fred/series/observations"
params = {
    "series_id": "GDP",
    "api_key": API_KEY,
    "file_type": "json",
    "limit": 10,
    "sort_order": "desc"
}
r = requests.get(url, params=params)
data = r.json()["observations"]
for obs in data:
    print(obs["date"], obs["value"])

How to Access

  • automation ready programmable
  • 🌐 end user

Notable Datasets

5 total
  • 10-Year Treasury Constant Maturity
  • 30-Year Fixed Rate Mortgage Average
  • Unemployment Rate
  • Consumer Price Index
  • 100+ Data Sets

Index entry

Added: Apr 30, 2026

Last indexed: Jun 16, 2026

Unverified entry

Learn

Recent articles

View all →