bcra-macro
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBCRA 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:
Catálogo total: 1220 series → 638 series nacionales en ./references/VARIABLES.md.
Base URL:
https://api.bcra.gob.arCatálogo total: 1220 series → 638 series nacionales en ./references/VARIABLES.md.
BCRA官方API,用于查询全国宏观经济变量(不含省级数据)。
基础URL:
总目录: 1220个序列 → 638个全国序列详见./references/VARIABLES.md。
基础URL:
https://api.bcra.gob.ar总目录: 1220个序列 → 638个全国序列详见./references/VARIABLES.md。
Endpoints
接口端点
| # | Endpoint | Uso |
|---|---|---|
| 1 | | Catálogo de variables (paginado) |
| 2 | | Serie histórica de una variable (paginado) |
| 3 | | Índice de metodologías (paginado) |
| 4 | | Ficha metodológica de una variable |
Autenticación: no requiere. CORS: abierto. Encoding: ISO-8859-1 en algunos textos.
| 序号 | 端点 | 用途 |
|---|---|---|
| 1 | | 变量目录(分页) |
| 2 | | 单个变量的历史序列(分页) |
| 3 | | 方法论索引(分页) |
| 4 | | 单个变量的方法论详情 |
认证: 无需认证。跨域资源共享(CORS): 开放。编码: 部分文本采用ISO-8859-1编码。
1. Catálogo de variables
1. 变量目录
GET /estadisticas/v4.0/MonetariasDevuelve el listado completo con metadatos (, , , , , , , , , ).
idVariabledescripcioncategoriatipoSerieperiodicidadunidadExpresionmonedaprimerFechaInformadaultFechaInformadoultValorInformadoGET /estadisticas/v4.0/Monetarias返回包含元数据的完整列表(、、、、、、、、、)。
idVariabledescripcioncategoriatipoSerieperiodicidadunidadExpresionmonedaprimerFechaInformadaultFechaInformadoultValorInformadoFiltros disponibles (query params)
可用过滤器(查询参数)
| Parámetro | Tipo | Descripción |
|---|---|---|
| int | Filtra por ID exacto |
| string | Búsqueda parcial sin acentos ( |
| string | |
| string | |
| string | |
| string | Texto libre |
| int | Default 1000, máx 3000 |
| int | Paginación (sumar al salto) |
| 参数 | 类型 | 描述 |
|---|---|---|
| int | 按精确ID过滤 |
| string | 无重音部分匹配(如 |
| string | |
| string | |
| string | |
| string | 自由文本 |
| int | 默认1000,最大3000 |
| 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| int (path) | Sí | ID de la variable |
| string | No | |
| string | No | |
| int | No | Default 1000, máx 3000 |
| int | No | Paginació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}]}| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| int(路径参数) | 是 | 变量ID |
| string | 否 | |
| string | 否 | |
| int | 否 | 默认1000,最大3000 |
| 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 completapython
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)
Offset策略A — 使用Offset
分页(最简单)
OffsetIterar sumando hasta que la respuesta venga vacía.
Offset += Limitpython
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 += Limitpython
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 /. Es preferible cuando la serie tiene >50.000 obs o se quieren datos muy antiguos en simultáneo.
DesdeHastapython
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())将总日期范围拆分为多个窗口(例如按年),使用/参数分别请求。当序列记录数>50000条或需要同时获取古老数据时,优先选择此策略。
DesdeHastapython
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 → siempre hay que chequear con
totalolen(batch) < limit.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 entre llamadas si se itera en masa.
time.sleep(0.2)
- 响应不包含字段 → 必须通过
total或len(batch) < limit判断是否结束。detalle == [] - 单次调用获取大量数据(Limit=3000)比多次小调用更高效。
- API未公开限制请求频率,但请保持友好:批量循环时在调用之间添加。
time.sleep(0.2)
Variables nacionales (IDs más usados)
全国变量(最常用ID)
Listado completo en (638 series nacionales). Las 30 más consultadas:
VARIABLES.md| ID | Descripción | Per. |
|---|---|---|
| 1 | Reservas internacionales (mill. USD) | D |
| 4 | Tipo de cambio minorista ($/USD) | D |
| 5 | Tipo de cambio mayorista de referencia ($/USD) | D |
| 7 | Tasa BADLAR bancos privados (% TNA) | D |
| 8 | Tasa TM20 bancos privados (% TNA) | D |
| 11 | Tasa BAIBAR (% TNA) | D |
| 12 | Tasa depósitos 30 días (% TNA) | D |
| 13 | Tasa adelantos cta. cte. (% TNA) | D |
| 14 | Tasa préstamos personales (% TNA) | D |
| 15 | Base monetaria (mill. $) | D |
| 16 | Circulación monetaria (mill. $) | D |
| 17 | Billetes y monedas en poder del público (mill. $) | D |
| 18 | Depósitos en entidades financieras (mill. $) | D |
| 19 | Préstamos al sector privado (mill. $) | D |
| 26 | Tasa de política monetaria (% TNA) | D |
| 27 | Variación mensual IPC (%) | M |
| 28 | Variación interanual IPC (%) | M |
| 29 | REM - mediana inflación prox. 12 meses (%) | M |
| 30 | CER (índice, base 2.2.02=1) | D |
| 31 | UVA ($) | D |
| 32 | UVI ($) | D |
| 40 | ICL - Índice Contratos Locación ($) | D |
| 1187 | Banda cambiaria - límite inferior ($/USD) | D |
| 1188 | Banda cambiaria - límite superior ($/USD) | D |
| 1189 | Tasa plazo fijo pesos (% TNA) | D |
| 1197 | Tasa Intereses Moratorios TIM (% TNA) | D |
| 1232 | M1 (mill. $) | D |
| 1233 | M2 (mill. $) | D |
| 1234 | M3 (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.
完整列表见(638个全国序列)。以下是30个最常查询的变量:
VARIABLES.md| ID | 描述 | 频率 |
|---|---|---|
| 1 | 国际储备(百万美元) | 日度 |
| 4 | 零售汇率($/USD) | 日度 |
| 5 | 参考批发汇率($/USD) | 日度 |
| 7 | 私人银行BADLAR利率(% TNA) | 日度 |
| 8 | 私人银行TM20利率(% TNA) | 日度 |
| 11 | BAIBAR利率(% TNA) | 日度 |
| 12 | 30天存款利率(% TNA) | 日度 |
| 13 | 活期账户预支利率(% TNA) | 日度 |
| 14 | 个人贷款利率(% TNA) | 日度 |
| 15 | 基础货币(百万比索) | 日度 |
| 16 | 货币流通量(百万比索) | 日度 |
| 17 | 公众持有的纸币和硬币(百万比索) | 日度 |
| 18 | 金融机构存款(百万比索) | 日度 |
| 19 | 对私人部门贷款(百万比索) | 日度 |
| 26 | 货币政策利率(% TNA) | 日度 |
| 27 | IPC月度变化率(%) | 月度 |
| 28 | IPC年度变化率(%) | 月度 |
| 29 | REM - 未来12个月通胀中位数(%) | 月度 |
| 30 | CER(指数,基准2.2.02=1) | 日度 |
| 31 | UVA(比索) | 日度 |
| 32 | UVI(比索) | 日度 |
| 40 | ICL - 租赁合同指数(比索) | 日度 |
| 1187 | 汇率区间 - 下限($/USD) | 日度 |
| 1188 | 汇率区间 - 上限($/USD) | 日度 |
| 1189 | 比索定期存款利率(% TNA) | 日度 |
| 1197 | 逾期利率TIM(% TNA) | 日度 |
| 1232 | M1(百万比索) | 日度 |
| 1233 | M2(百万比索) | 日度 |
| 1234 | M3(百万比索) | 日度 |
提示: API重构后ID可能变化。如需确认变量当前ID,请使用目录端点查询。
Categorías presentes en el catálogo
目录中的分类
| Categoría | Cantidad nacional | Descripción |
|---|---|---|
| Principales Variables | 35 | Indicadores macro headline (tasas, TC, reservas, base, CER, UVA, IPC) |
| Informe Monetario Diario | 33 | Series diarias del IMD (líneas del exterior, M1/M2/M3, créditos BCRA) |
| Series.xlsm | 154 | Factores de variación de la base monetaria y reservas |
| Tasas de interés de depósitos | 10 | Tasas de depósitos desagregadas por moneda y plazo |
| Préstamos por tipo de titular y destino | 74 | Préstamos por destino (hipotecarios, prendarios, personales) |
| Préstamos por tipo de titular | 120 | Préstamos al sector público/privado nacional, por moneda |
| Depósitos por tipo de titular | 212 | Depó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) |
| 每日货币报告 | 33 | IMD日度序列(外部线条、M1/M2/M3、BCRA信贷) |
| Series.xlsm | 154 | 基础货币和储备变化因素 |
| 存款利率 | 10 | 按货币和期限细分的存款利率 |
| 按主体类型和用途划分的贷款 | 74 | 按用途划分的贷款(抵押、质押、个人) |
| 按主体类型划分的贷款 | 120 | 对全国公共/私人部门的贷款,按货币划分 |
| 按主体类型划分的存款 | 212 | 全国公共/私人部门的存款,按货币和期限划分 |
排除项(582个省级/市级序列): ID 322及以上为省级细分数据(布宜诺斯艾利斯、科尔多瓦、圣达菲等),提及“省级政府”或“市级”且无全国汇总的项目也被排除。
Códigos de moneda
货币代码
| Código | Significado |
|---|---|
| Moneda local (pesos argentinos) |
| Moneda extranjera (dólares) |
| Agregado moneda local + extranjera |
| Dólares (sin conversión) |
| 代码 | 含义 |
|---|---|
| 本币(阿根廷比索) |
| 外币(美元) |
| 本币+外币汇总 |
| 美元(未转换) |
Tipos de serie
序列类型
Saldos a fin de mesSaldosTasa de interésFlujo diarioTipo de cambioVariaciónCocienteÍndiceUnidad de cuentaMargenMonto月末余额余额利率日度流量汇率变化率比率指数计价单位利差金额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 o
response.encoding.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): 尽力而为,无正式保障。