alpaca-data
Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.
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).
$ npx -y skills add gauss314/skills --skill bcra-macro --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/bcra-macroContext 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).
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
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).
| # | 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.
---
GET /estadisticas/v4.0/Monetarias
Devuelve el listado completo con metadatos (`idVariable`, `descripcion`, `categoria`, `tipoSerie`, `periodicidad`, `unidadExpresion`, `moneda`, `primerFechaInformada`, `ultFechaInformado`, `ultValorInformado`).
| 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) |
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"])---
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()---
GET /estadisticas/v4.0/Metodologia # índice paginado
GET /estadisticas/v4.0/Metodologia/{idVar} # ficha completar = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Metodologia/1")
print(r.json()["results"][0]["detalle"])---
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.
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 1996Partir 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())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)Open-source collection of skills compatible with the SKILL.md standard. Developed for the AI courses at UCEMA.
Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.
Trading API de Alpaca: órdenes, posiciones, cuenta. Paper trading y live trading de acciones, crypto y opciones.
API de datos financieros de EE.UU.: acciones, forex, crypto, indicadores técnicos, fundamental data.
Academic backtesting framework for quantitative research. ~30 risk and performance ratios, 10 classes of indicators, event-driven…
Quotes, fundamentals, insider, analyst ratings, earnings estimates, financial summary, income/balance/cashflow detail y company…