FRED Macro — Federal Reserve Economic Data API

SkillDev tools

Free Federal Reserve (FRED) API: 840K+ macroeconomic series (GDP, CPI, rates, employment, M2, VIX, treasuries).

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the FRED Macro — Federal Reserve Economic Data API skill

What this skill tells your AI

The instructions your AI receives, as published by gauss314/skills in skills/fred-macro/SKILL.md and read by ahel’s review.

API gratuita y oficial de la Reserva Federal de St. Louis (FRED) con 840,000+ series temporales macroeconómicas: PIB, inflación (CPI/PCE), tasas de interés, empleo, M2, VIX, treasuries, hipotecas y más.

Base URL: https://api.stlouisfed.org/fred Documentación oficial: fred.stlouisfed.org/docs/api/fred/


Autenticación

Obtener API Key (GRATIS)

  1. Ir a: https://fred.stlouisfed.org/docs/api/api_key.html
  2. Crear cuenta gratuita (email + contraseña)
  3. Solicitar API key (se genera instantáneamente)
  4. No requiere tarjeta de crédito

Usar la API Key

import os
API_KEY = os.getenv("FRED_API_KEY")  # Recomendado
# o directamente para pruebas:
# API_KEY = "TU_API_KEY_AQUI"

⚠️ NUNCA hardcodear la API key en código compartido/commits.


Rate Limits

LímiteValor
Requests por minuto120 req/min
Requests por díaIlimitado (sin límite diario explícito)
Máx observaciones por request100,000
Máx series por requestDepende del endpoint (generalmente 1)
CostoCompletamente GRATIS

Recomendaciones

  • Cachear respuestas localmente (los datos macroeconómicos cambian con poca frecuencia)
  • Usar observation_start y observation_end para limitar rangos
  • Implementar retry con backoff si se recibe HTTP 429 (Too Many Requests)
  • Para descargar muchas series, intercalar 0.5s entre requests

Endpoints Principales

Series y Observaciones

EndpointDescripciónAuth
GET /fred/series/observationsValores históricos de una serieAPI Key
GET /fred/series/searchBuscar series por textoAPI Key
GET /fred/seriesMetadatos de una serieAPI Key
GET /fred/series/categoriesCategorías de una serieAPI Key
GET /fred/series/releaseRelease asociado a una serieAPI Key

Categorías y Releases

EndpointDescripción
GET /fred/categoryInformación de una categoría
GET /fred/category/childrenSubcategorías
GET /fred/category/relatedCategorías relacionadas
GET /fred/category/seriesSeries en una categoría
GET /fred/releaseInformación de un release
GET /fred/release/datesFechas de un release
GET /fred/release/seriesSeries en un release

Tags (etiquetas)

EndpointDescripción
GET /fred/tagsBuscar tags
GET /fred/related_tagsTags relacionados
GET /fred/tags/seriesSeries con un tag específico
GET /fred/series/tagsTags de una serie

Fuentes (Sources)

EndpointDescripción
GET /fred/sourcesLista de fuentes de datos
GET /fred/sourceInformación de una fuente

Mapas de Calendario

EndpointDescripción
GET /fred/series/updatesSeries actualizadas recientemente
GET /fred/seasonal/adjustmentsOpciones de ajuste estacional

Formato de Respuesta

Por defecto devuelve XML. Se puede cambiar con &file_type=json:

{
  "realtime_start": "2026-06-01",
  "realtime_end": "2026-06-01",
  "observation_start": "1954-07-01",
  "observation_end": "2026-06-01",
  "units": "lin",
  "count": 864,
  "observations": [
    {
      "realtime_start": "2026-06-01",
      "realtime_end": "2026-06-01",
      "date": "1954-07-01",
      "value": "."
    },
    {
      "realtime_start": "2026-06-01",
      "realtime_end": "2026-06-01",
      "date": "1954-10-01",
      "value": "126.8"
    }
  ]
}

Nota: valores "." indican dato no disponible (N/A).


Categorías de Series

Las series FRED están organizadas en categorías (ids numéricos):

IDCategoríaEjemplos
0Todas las categorías (raíz)
32991Population, Employment, & Labor MarketsUNRATE, PAYEMS, NFP
32992National Income & Product AccountsGDP, GDPC1, GNP
32993Consumer Price Indexes (CPI)CPIAUCSL, CPILFESL
32994Producer Price Indexes (PPI)PPIACO, PPIFIS
32995Interest RatesFEDFUNDS, DGS10, DGS2
32996Money, Banking, & FinanceM2SL, M1SL, TOTBKCR
32997International TradeBOPGSTB
33000U.S. Regional DataEstadísticas estatales
33001Academic DataDatos académicos

Ver referencia completa en references/SERIES_REFERENCE.md.


Uso Rápido

1. Descargar una serie (Python)

import requests

API_KEY = "TU_API_KEY"
url = "https://api.stlouisfed.org/fred/series/observations"
params = {
    "series_id": "GDP",
    "api_key": API_KEY,
    "file_type": "json",
    "observation_start": "2020-01-01",
    "observation_end": "2025-12-31"
}
r = requests.get(url, params=params)
data = r.json()
for obs in data["observations"]:
    if obs["value"] != ".":
        print(obs["date"], obs["value"])

2. Buscar series por palabra clave

params = {
    "api_key": API_KEY,
    "file_type": "json",
    "search_text": "inflation",
    "search_type": "full_text",  # o "series_id"
    "limit": 10
}
r = requests.get("https://api.stlouisfed.org/fred/series/search", params=params)

3. Usando pandas

import pandas as pd
import requests

def fetch_fred(series_id, api_key, start="2020-01-01"):
    url = "https://api.stlouisfed.org/fred/series/observations"
    params = {"series_id": series_id, "api_key": api_key,
              "file_type": "json", "observation_start": start}
    r = requests.get(url, params=params)
    df = pd.DataFrame(r.json()["observations"])
    df["date"] = pd.to_datetime(df["date"])
    df["value"] = pd.to_numeric(df["value"], errors="coerce")
    return df.set_index("date")["value"]

gdp = fetch_fred("GDP", API_KEY)
cpi = fetch_fred("CPIAUCSL", API_KEY)
fedfunds = fetch_fred("FEDFUNDS", API_KEY)

Scripts Disponibles

ScriptDescripción
fetch_series.pyDescarga una o más series FRED en CSV/JSON/Parquet
search_series.pyBusca series FRED por texto, categoría o tag
download_multiple.pyDescarga batches de series predefinidas por categoría

Series Esenciales (Headlines)

SerieDescripciónFrecuencia
GDPPIB Nominal (Billions $)Trimestral
GDPC1PIB Real (Billions chained $)Trimestral
CPIAUCSLIPC General (CPI All Items)Mensual
CPILFESLIPC Subyacente (Core CPI)Mensual
PCEPILFEPCE Subyacente (Core PCE)Mensual
FEDFUNDSTasa de Fondos FederalesDiaria
DFFTasa de Fondos Federales (efectiva)Diaria
DGS10Treasury a 10 añosDiaria
DGS2Treasury a 2 añosDiaria
T10Y2YSpread 10y-2y (curva invertida)Diaria
UNRATETasa de DesempleoMensual
PAYEMSNóminas no agrícolas (Nonfarm Payrolls)Mensual
M2SLM2 Money SupplyMensual
M1SLM1 Money SupplyMensual
VIXCLSVIX (volatilidad S&P 500)Diaria
BAA10YSpread BAA - 10y (credit spread)Diaria
TOTALSAVentas MinoristasMensual
INDPROProducción IndustrialMensual
HOUSTViviendas IniciadasMensual
MORTGAGE30USTasa Hipoteca 30 añosSemanal

Referencia completa: references/SERIES_REFERENCE.md (100+ series documentadas).


Buenas Prácticas

  1. Cachear datos: los datos macro no cambian frecuentemente; guardar en Parquet/CSV local
  2. Usar file_type=json: más fácil de parsear que XML
  3. Filtrar por fecha: usar observation_start para evitar descargar historia innecesaria
  4. Manejar valores ".": representan datos no disponibles (NaN)
  5. Rate limiting: 120 req/min = 1 request cada 0.5s como mínimo
  6. API Key: usar variable de entorno FRED_API_KEY
  7. Citar fuente: obligatorio incluir "This product uses the FRED API but is not endorsed or certified by the Federal Reserve Bank of St. Louis" en apps comerciales

Signals

GitHub stars
237
Forks
35
Last commit
Jun 2026
Advanced
Catalog kind
skill
Gateway key
fred-macro
Source
github.com/gauss314/skills