Tutorial

API de FRED en Python: Datos económicos automatizados de la Reserva Federal de EE.UU.

Una guía paso a paso para descargar, exportar y visualizar automáticamente datos económicos de la Fed de St. Louis usando su API con Python.

Los datos de FRED se actualizan frecuentemente. Cada vez que quieras actualizar tu análisis, necesitas descargar los datos de nuevo.

Por ejemplo, los datos de Inflación (IPC) se actualizan mensualmente.

Sitio web de FRED con IPC

En lugar de descargar el archivo Excel manualmente y navegar por los menús para reproducir el gráfico, puedes automatizar el proceso usando Python. ¿Cómo?

En este tutorial, te lo explicamos paso a paso.

Preguntas

  1. ¿Cómo identificar indicadores del sitio web de FRED?
  2. ¿Cómo usar la API de FRED para descargar datos programáticamente?
  3. ¿Cómo construir una tabla a partir de los datos de respuesta de la API?
  4. ¿Cómo exportar datos a un archivo Excel?
  5. ¿Cómo refactorizar código en una función para evitar repetición?
  6. ¿Cómo descargar múltiples indicadores automáticamente?
  7. ¿Cómo combinar múltiples tablas en una sola?

Metodología

Documentación de la API de FRED

Se recomienda visitar la documentación oficial de la API de FRED para entender cómo están organizados los indicadores.

En nuestro caso, usaremos el endpoint fred/series/observations para obtener los datos de Inflación (IPC), que es el indicador que viste en el gráfico anterior.

Siguiendo las instrucciones del endpoint, podemos proporcionar tres parámetros:

  1. api_key
  2. series_id
  3. file_type

Además de la URL y el endpoint, que son los siguientes:

URL_BASE = 'https://api.stlouisfed.org/'
ENDPOINT = 'fred/series/observations'

URL = URL_BASE + ENDPOINT

Antes de crear los parámetros en Python, asegúrate de tener una clave API, proporcionada por FRED. Si no la tienes, sigue estas instrucciones para obtener una.

De lo contrario, obtendrás un error porque FRED no permite solicitudes anónimas a la API.

Solicitar datos de la API de FRED

Para obtener datos de ubicaciones de internet (URLs), usaremos la biblioteca de Python requests.

El siguiente código compone la URL para obtener el IPC basado en el indicador CORESTICKM159SFRBATL:

import requests

API_KEY = 'TU_CLAVE_API'
INDICATOR = 'CORESTICKM159SFRBATL'

params = {
    'api_key': API_KEY,
    'series_id': INDICATOR,
    'file_type': 'json'
}

res = requests.get(URL, params=params)
data = res.json()

Datos JSON devueltos por la API de FRED

Construir tabla a partir de los datos de respuesta de la API

Como puedes ver, la respuesta de la API no está representada en formato tabular. Es un objeto JSON. Por lo tanto, necesitamos transformarlo en una tabla para analizarlo.

Las siguientes operaciones se ejecutan en las líneas de código subsiguientes:

  1. La respuesta JSON obtenida se convierte en un DataFrame de la biblioteca pandas.
  2. El DataFrame luego se preprocesa y refina para tener datos simples y funcionales.
import pandas as pd

df_cpi = (pd
 .DataFrame(data['observations'])
 .drop(columns=['realtime_start', 'realtime_end'])
 .rename(columns={'value': 'CPI'})
 .astype({'date': 'datetime64[ns]'})
 .set_index('date')
 .apply(pd.to_numeric)
 )

df_cpi

DataFrame con IPC

Exportar datos a Excel

Si estás familiarizado con Excel, puedes exportar los datos a un archivo Excel para analizarlos allí.

df_cpi.to_excel('FRED_CPI.xlsx')

Ahora, ¿qué pasa si quisiéramos descargar otro indicador como MORTGAGE30US?

¿Vamos a repetir el mismo código de nuevo?

¡Por supuesto que no! Podemos crear una función para automatizar el proceso.

Refactorizando el código en una función

Dado que un solo indicador económico podría no ser suficiente para un análisis completo. Para mejorar nuestras capacidades de adquisición de datos, debemos refactorizar nuestro código en una función.

La siguiente función nos permitirá recuperar cualquier indicador según nuestras necesidades.

Contenido avanzado
Regístrate gratis para desbloquear

Conclusiones

En lugar de descargar los datos de FRED en un archivo Excel manualmente y navegar por los menús para reproducir el gráfico, ahora sabes cómo automatizar el proceso usando Python.

En este tutorial, has aprendido cómo:

  1. Identificar indicadores del sitio web de FRED.
  2. Usar la API de FRED para descargar datos programáticamente.
  3. Construir una tabla a partir de los datos de respuesta de la API.
  4. Exportar los datos a un archivo Excel.
  5. Refactorizar el código en una función para evitar repetición de código.

Aún así, hay un problema con los indicadores que no tienen la misma frecuencia.

En el próximo post, te mostraremos cómo usar interpolate para rellenar los datos faltantes con valores razonables.

Antes, exportemos los datos a un archivo Excel para cargarlo en el siguiente tutorial.

df.to_excel('FRED_CPI-MR30US.xlsx')

Suscríbete a nuestro newsletter

Recibe insights semanales sobre datos, automatización e IA.

© 2026 Datons. All rights reserved.