Skip to content
Finance
Skill

/bcra-macro

API de Estadísticas Monetarias v4.0 del BCRA con 638 series macroeconómicas (reservas, tipo de cambio, tasas, M1/M2/M3, inflación, CER, UVA).

BOOST
From plugin
gauss314-skills
25032 skills
Install
$ npx -y skills add gauss314/skills --skill bcra-macro --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/bcra-macro

Context preview

The summary Claude sees to decide when to auto-load this skill.

API de Estadísticas Monetarias v4.0 del BCRA con 638 series macroeconómicas (reservas, tipo de cambio, tasas, M1/M2/M3, inflación, CER, UVA).

SKILL.md

bcra-macro.SKILL.md
name: bcra-macro
description: API de Estadísticas Monetarias v4.0 del BCRA con 638 series macroeconómicas (reservas, tipo de cambio, tasas, M1/M2/M3, inflación, CER, UVA).
license: MIT
metadata:
  category: finanzas, api, bcra, macroeconomia
  language: es
  source: https://www.bcra.gob.ar/documentacion-apis/?fileName=estadisticas-monetarias-v4

BCRA Macro — API de Estadísticas Monetarias v4.0

API oficial del BCRA para consultar **variables macroeconómicas nacionales** (no provinciales). **Base URL:** `https://api.bcra.gob.ar` **Catálogo total:** 1220 series → 638 series nacionales en [./references/VARIABLES.md](./references/VARIABLES.md).

Endpoints

| # | Endpoint | Uso | |---|----------|-----| | 1 | `GET /estadisticas/v4.0/Monetarias` | Catálogo de variables (paginado) | | 2 | `GET /estadisticas/v4.0/Monetarias/{IdVariable}` | Serie histórica de una variable (paginado) | | 3 | `GET /estadisticas/v4.0/Metodologia` | Índice de metodologías (paginado) | | 4 | `GET /estadisticas/v4.0/Metodologia/{IdVariable}` | Ficha metodológica de una variable |

**Autenticación:** no requiere. **CORS:** abierto. **Encoding:** ISO-8859-1 en algunos textos.

---

1. Catálogo de variables

GET /estadisticas/v4.0/Monetarias

Devuelve el listado completo con metadatos (`idVariable`, `descripcion`, `categoria`, `tipoSerie`, `periodicidad`, `unidadExpresion`, `moneda`, `primerFechaInformada`, `ultFechaInformado`, `ultValorInformado`).

Filtros disponibles (query params)

| Parámetro | Tipo | Descripción | |-----------|------|-------------| | `IdVariable` | int | Filtra por ID exacto | | `Categoria` | string | Búsqueda parcial sin acentos (`"depositos"`, `"prestamos"`) | | `Periodicidad` | string | `D` diaria, `M` mensual, `T` trimestral | | `Moneda` | string | `PES`, `DOL`, `ML`, `ME`, `MEyML` | | `TipoSerie` | string | `Stock`, `Flujo`, `Tasa`, etc. | | `UnidadExpresion` | string | Texto libre | | `Limit` | int | Default 1000, **máx 3000** | | `Offset` | int | Paginación (sumar al salto) |

Ejemplo mínimo

import requests, pandas as pd
r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias", params={"Limit": 3000})
df = pd.DataFrame(r.json()["results"])

---

2. Serie histórica de una variable

GET /estadisticas/v4.0/Monetarias/{IdVariable}

Devuelve `{idVariable, detalle: [{fecha, valor}]}`.

| Parámetro | Tipo | Requerido | Descripción | |-----------|------|-----------|-------------| | `IdVariable` | int (path) | Sí | ID de la variable | | `Desde` | string | No | `YYYY-MM-DD` | | `Hasta` | string | No | `YYYY-MM-DD` | | `Limit` | int | No | Default 1000, **máx 3000** | | `Offset` | int | No | Paginación |

r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/1",
                 params={"Desde": "2020-01-01", "Hasta": "2025-12-31"})
df = pd.DataFrame(r.json()["results"][0]["detalle"])
df["fecha"] = pd.to_datetime(df["fecha"])
df = df.set_index("fecha").sort_index()

---

3. Metodologías

GET /estadisticas/v4.0/Metodologia           # índice paginado
GET /estadisticas/v4.0/Metodologia/{idVar}   # ficha completa
r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Metodologia/1")
print(r.json()["results"][0]["detalle"])

---

4. Paginación: cómo superar el límite de 3000 registros

El API devuelve **máximo 3000 filas por llamada** y la serie diaria más larga (Reservas internacionales, ID 1) tiene **~9000 observaciones desde 1996**. Hay dos estrategias.

Estrategia A — Paginación con `Offset` (la más simple)

Iterar sumando `Offset += Limit` hasta que la respuesta venga vacía.

import requests, pandas as pd

def get_serie(id_variable, limit=3000):
    url = f"https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/{id_variable}"
    offset, partes = 0, []
    while True:
        r = requests.get(url, params={"Limit": limit, "Offset": offset}).json()
        det = r["results"][0]["detalle"]
        if not det:
            break
        partes.append(pd.DataFrame(det))
        offset += limit
    df = pd.concat(partes).drop_duplicates("fecha").sort_values("fecha")
    df["fecha"] = pd.to_datetime(df["fecha"])
    return df.set_index("fecha")

reservas = get_serie(1)  # ~9000 observaciones desde 1996

Estrategia B — Chunking por rango de fechas (más rápido en serie larga)

Partir el rango total en ventanas (ej. anual) y pedir cada una con `Desde`/`Hasta`. Es **preferible** cuando la serie tiene >50.000 obs o se quieren datos muy antiguos en simultáneo.

import requests, pandas as pd
from datetime import date

def get_serie_por_chunks(id_variable, desde, hasta, ventana_dias=365):
    url = f"https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/{id_variable}"
    partes, d = [], pd.to_datetime(desde)
    fin = pd.to_datetime(hasta)
    while d <= fin:
        h = min(d + pd.Timedelta(days=ventana_dias - 1), fin)
        r = requests.get(url, params={"Desde": d.strftime("%Y-%m-%d"),
                                       "Hasta": h.strftime("%Y-%m-%d"),
                                       "Limit": 3000}).json()
        partes.append(pd.DataFrame(r["results"][0]["detalle"]))
        d = h + pd.Timedelta(days=1)
    df = pd.concat(partes).drop_duplicates("fecha").sort_values("fecha")
    df["fecha"] = pd.to_datetime(df["fecha"])
    return df.set_index("fecha")

base = get_serie_por_chunks(15, "1996-01-01", date.today().isoformat())

Estrategia C — Catálogo paginado (para re-listar todas las variables)

def catalogo_completo(limit=3000):
    url = "https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias"
    offset, todo = 0, []
    while True:
        r = requests.get(url, params={"Limit": limit, "Offset": offset}).json()
        batch = r["results"]
        todo += batch
        if len(batch) < limit:
            break
        offset += limit
    return pd.DataFrame(todo)

Reglas de oro

  • La respuesta **no incluye `t
Read more
Ships withgauss314-skills

Open-source collection of skills compatible with the SKILL.md standard. Developed for the AI courses at UCEMA.

Get the whole plugin
Stats
250
Stars
35
Forks
Maintained
Maintenance
Python
Language
MIT
License
4mo ago
Last commit
4mo ago
Created
5h ago
Added

Repo: gauss314/skills

Other skills on gauss314-skills.