bcra-macro

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

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

BCRA宏观数据 — 货币统计API 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.
BCRA官方API,用于查询全国宏观经济变量(不含省级数据)。
基础URL:
https://api.bcra.gob.ar

总目录: 1220个序列 → 638个全国序列详见./references/VARIABLES.md

Endpoints

接口端点

#EndpointUso
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
GET /estadisticas/v4.0/Monetarias
变量目录(分页)
2
GET /estadisticas/v4.0/Monetarias/{IdVariable}
单个变量的历史序列(分页)
3
GET /estadisticas/v4.0/Metodologia
方法论索引(分页)
4
GET /estadisticas/v4.0/Metodologia/{IdVariable}
单个变量的方法论详情
认证: 无需认证。跨域资源共享(CORS): 开放。编码: 部分文本采用ISO-8859-1编码。

1. Catálogo de variables

1. 变量目录

GET /estadisticas/v4.0/Monetarias
Devuelve el listado completo con metadatos (
idVariable
,
descripcion
,
categoria
,
tipoSerie
,
periodicidad
,
unidadExpresion
,
moneda
,
primerFechaInformada
,
ultFechaInformado
,
ultValorInformado
).
GET /estadisticas/v4.0/Monetarias
返回包含元数据的完整列表(
idVariable
descripcion
categoria
tipoSerie
periodicidad
unidadExpresion
moneda
primerFechaInformada
ultFechaInformado
ultValorInformado
)。

Filtros disponibles (query params)

可用过滤器(查询参数)

ParámetroTipoDescripción
IdVariable
intFiltra por ID exacto
Categoria
stringBú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
stringTexto libre
Limit
intDefault 1000, máx 3000
Offset
intPaginación (sumar al salto)
参数类型描述
IdVariable
int按精确ID过滤
Categoria
string无重音部分匹配(如
"depositos"
"prestamos"
Periodicidad
string
D
日度,
M
月度,
T
季度
Moneda
string
PES
DOL
ML
ME
MEyML
TipoSerie
string
Stock
Flujo
Tasa
UnidadExpresion
string自由文本
Limit
int默认1000,最大3000
Offset
int分页偏移量

Ejemplo mínimo

最简示例

python
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"])

python
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

2. 单个变量的历史序列

GET /estadisticas/v4.0/Monetarias/{IdVariable}
Devuelve
{idVariable, detalle: [{fecha, valor}]}
.
ParámetroTipoRequeridoDescripción
IdVariable
int (path)ID de la variable
Desde
stringNo
YYYY-MM-DD
Hasta
stringNo
YYYY-MM-DD
Limit
intNoDefault 1000, máx 3000
Offset
intNoPaginación
python
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/Monetarias/{IdVariable}
返回
{idVariable, detalle: [{fecha, valor}]}
参数类型是否必填描述
IdVariable
int(路径参数)变量ID
Desde
string
YYYY-MM-DD
Hasta
string
YYYY-MM-DD
Limit
int默认1000,最大3000
Offset
int分页偏移量
python
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

3. 方法论

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

GET /estadisticas/v4.0/Metodologia           # 分页索引
GET /estadisticas/v4.0/Metodologia/{idVar}   # 完整详情页
python
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

4. 分页:如何突破3000条记录限制

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.
API每次调用最多返回3000行数据,而最长的日度序列(国际储备,ID 1)自1996年以来有约9000条记录。有两种解决策略。

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

策略A — 使用
Offset
分页(最简单)

Iterar sumando
Offset += Limit
hasta que la respuesta venga vacía.
python
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
循环累加
Offset += Limit
直到返回结果为空。
python
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)  # 自1996年以来约9000条记录

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

策略B — 按日期范围分块(长序列更快)

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.
python
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())
将总日期范围拆分为多个窗口(例如按年),使用
Desde
/
Hasta
参数分别请求。当序列记录数>50000条或需要同时获取古老数据时,优先选择此策略
python
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)

策略C — 分页获取完整目录(重新列出所有变量)

python
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)
python
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
    total
    → siempre hay que chequear con
    len(batch) < limit
    o
    detalle == []
    .
  • Hacer una sola llamada grande (Limit=3000) es más eficiente que muchas chicas.
  • La API no impone rate-limit público pero ser cortés: agregar
    time.sleep(0.2)
    entre llamadas si se itera en masa.

  • 响应不包含
    total
    字段
    → 必须通过
    len(batch) < limit
    detalle == []
    判断是否结束。
  • 单次调用获取大量数据(Limit=3000)比多次小调用更高效。
  • API未公开限制请求频率,但请保持友好:批量循环时在调用之间添加
    time.sleep(0.2)

Variables nacionales (IDs más usados)

全国变量(最常用ID)

Listado completo en
VARIABLES.md
(638 series nacionales). Las 30 más consultadas:
IDDescripciónPer.
1Reservas internacionales (mill. USD)D
4Tipo de cambio minorista ($/USD)D
5Tipo de cambio mayorista de referencia ($/USD)D
7Tasa BADLAR bancos privados (% TNA)D
8Tasa TM20 bancos privados (% TNA)D
11Tasa BAIBAR (% TNA)D
12Tasa depósitos 30 días (% TNA)D
13Tasa adelantos cta. cte. (% TNA)D
14Tasa préstamos personales (% TNA)D
15Base monetaria (mill. $)D
16Circulación monetaria (mill. $)D
17Billetes y monedas en poder del público (mill. $)D
18Depósitos en entidades financieras (mill. $)D
19Préstamos al sector privado (mill. $)D
26Tasa de política monetaria (% TNA)D
27Variación mensual IPC (%)M
28Variación interanual IPC (%)M
29REM - mediana inflación prox. 12 meses (%)M
30CER (índice, base 2.2.02=1)D
31UVA ($)D
32UVI ($)D
40ICL - Índice Contratos Locación ($)D
1187Banda cambiaria - límite inferior ($/USD)D
1188Banda cambiaria - límite superior ($/USD)D
1189Tasa plazo fijo pesos (% TNA)D
1197Tasa Intereses Moratorios TIM (% TNA)D
1232M1 (mill. $)D
1233M2 (mill. $)D
1234M3 (mill. $)D
Tip: el ID cambia con la refactorización del API. Para confirmar el ID actual de una variable usar el endpoint de catálogo.
完整列表见
VARIABLES.md
(638个全国序列)。以下是30个最常查询的变量:
ID描述频率
1国际储备(百万美元)日度
4零售汇率($/USD)日度
5参考批发汇率($/USD)日度
7私人银行BADLAR利率(% TNA)日度
8私人银行TM20利率(% TNA)日度
11BAIBAR利率(% TNA)日度
1230天存款利率(% TNA)日度
13活期账户预支利率(% TNA)日度
14个人贷款利率(% TNA)日度
15基础货币(百万比索)日度
16货币流通量(百万比索)日度
17公众持有的纸币和硬币(百万比索)日度
18金融机构存款(百万比索)日度
19对私人部门贷款(百万比索)日度
26货币政策利率(% TNA)日度
27IPC月度变化率(%)月度
28IPC年度变化率(%)月度
29REM - 未来12个月通胀中位数(%)月度
30CER(指数,基准2.2.02=1)日度
31UVA(比索)日度
32UVI(比索)日度
40ICL - 租赁合同指数(比索)日度
1187汇率区间 - 下限($/USD)日度
1188汇率区间 - 上限($/USD)日度
1189比索定期存款利率(% TNA)日度
1197逾期利率TIM(% TNA)日度
1232M1(百万比索)日度
1233M2(百万比索)日度
1234M3(百万比索)日度
提示: API重构后ID可能变化。如需确认变量当前ID,请使用目录端点查询。

Categorías presentes en el catálogo

目录中的分类

CategoríaCantidad nacionalDescripción
Principales Variables35Indicadores macro headline (tasas, TC, reservas, base, CER, UVA, IPC)
Informe Monetario Diario33Series diarias del IMD (líneas del exterior, M1/M2/M3, créditos BCRA)
Series.xlsm154Factores de variación de la base monetaria y reservas
Tasas de interés de depósitos10Tasas de depósitos desagregadas por moneda y plazo
Préstamos por tipo de titular y destino74Préstamos por destino (hipotecarios, prendarios, personales)
Préstamos por tipo de titular120Préstamos al sector público/privado nacional, por moneda
Depósitos por tipo de titular212Depósitos del sector público/privado nacional, por moneda y plazo
Excluidas (582 series provinciales/municipales): los IDs 322+ desagregan por provincia (Buenos Aires, Córdoba, Santa Fe, etc.) y los items que mencionan "gobiernos provinciales" o "municipales" sin agregado nacional.
分类全国序列数量描述
主要变量35核心宏观指标(利率、汇率、储备、基础货币、CER、UVA、IPC)
每日货币报告33IMD日度序列(外部线条、M1/M2/M3、BCRA信贷)
Series.xlsm154基础货币和储备变化因素
存款利率10按货币和期限细分的存款利率
按主体类型和用途划分的贷款74按用途划分的贷款(抵押、质押、个人)
按主体类型划分的贷款120对全国公共/私人部门的贷款,按货币划分
按主体类型划分的存款212全国公共/私人部门的存款,按货币和期限划分
排除项(582个省级/市级序列): ID 322及以上为省级细分数据(布宜诺斯艾利斯、科尔多瓦、圣达菲等),提及“省级政府”或“市级”且无全国汇总的项目也被排除。

Códigos de moneda

货币代码

CódigoSignificado
ML
Moneda local (pesos argentinos)
ME
Moneda extranjera (dólares)
MEyML
Agregado moneda local + extranjera
USD
Dólares (sin conversión)
代码含义
ML
本币(阿根廷比索)
ME
外币(美元)
MEyML
本币+外币汇总
USD
美元(未转换)

Tipos de serie

序列类型

Saldos a fin de mes
·
Saldos
·
Tasa de interés
·
Flujo diario
·
Tipo de cambio
·
Variación
·
Cociente
·
Índice
·
Unidad de cuenta
·
Margen
·
Monto

月末余额
·
余额
·
利率
·
日度流量
·
汇率
·
变化率
·
比率
·
指数
·
计价单位
·
利差
·
金额

Consideraciones técnicas

技术注意事项

  • Sin autenticación — no requiere key ni token.
  • Tope de paginado: 3000 registros por llamada.
  • Encoding: las respuestas pueden traer caracteres extendidos (ISO-8859-1) — usar
    response.encoding
    o
    pd.read_json(..., encoding="utf-8")
    .
  • Formato fechas: ISO 8601 (
    YYYY-MM-DD
    ).
  • SLA: best-effort, sin garantías formales.
  • 无需认证 — 无需密钥或令牌。
  • 分页上限: 每次调用最多3000条记录。
  • 编码: 响应可能包含扩展字符(ISO-8859-1) — 使用
    response.encoding
    pd.read_json(..., encoding="utf-8")
    处理。
  • 日期格式: ISO 8601(
    YYYY-MM-DD
    )。
  • 服务水平协议(SLA): 尽力而为,无正式保障。

Enlaces útiles

有用链接