Desarrolladores · API de datos
Ingestá los datasets en tu Data Warehouse.
Descubrí el catálogo, pedí la URL firmada del snapshot vigente y cargá el Parquet en tu destino. Los snapshots son inmutables y fechados, así que la ingesta incremental es directa. Todos los endpoints viven bajo api.almanac.ar/v1 (las direcciones anteriores en almanac.ar/api/… siguen funcionando un tiempo).
Autenticación. Las llamadas autenticadas usan el header Authorization: Bearer alm_.... Generá tu key en /account/api-keys . La API REST para ingesta a un Data Warehouse requiere plan Ultimate, Team o Enterprise (mirá Planes y precios). Los endpoints de descubrimiento del Paso 1 son públicos y no necesitan key.
El flujo, en tres pasos
- 1
Paso 1 · Público · sin key
Descubrir el catálogo
GET api.almanac.ar/v1/datasetses el índice: un item liviano por dataset (id, nombre, descripción, fuente, frecuencia, tags, país) con sudetail_url.GET api.almanac.ar/v1/datasets/{id}devuelve la ficha completa: schema de columnas, ejemplos, gotchas, patrón de actualización, SLA de freshness y metadata para IA.bashcurl https://api.almanac.ar/v1/datasets curl https://api.almanac.ar/v1/datasets/bcra.monetarias.indicadores
- 2
Paso 2 · Requiere key
Obtener el snapshot vigente
GET api.almanac.ar/v1/datasets/{id}/snapshot?format=parquetdevuelve una URL firmada (válida 60 minutos) al Parquet del snapshot vigente, más su fecha, cantidad de filas y tamaño. Usáformat=csvsi preferís CSV (cuando exista).bash · requestcurl -H "Authorization: Bearer alm_..." \ "https://api.almanac.ar/v1/datasets/bcra.monetarias.indicadores/snapshot?format=parquet"
json · respuesta{ "dataset_id": "bcra.monetarias.indicadores", "format": "parquet", "url": "https://...r2...firmada...", "expires_in_seconds": 3600, "snapshot": { "snapshot_at": "2026-05-30", "rows_count": 1347124, "file_size_bytes": 12345678 } } - 3
Paso 3 · En tu infraestructura
Cargar en tu Data Warehouse
Con Python (polars/pandas) escribís al destino con tu conector habitual:
pythonimport requests, polars as pl r = requests.get( "https://api.almanac.ar/v1/datasets/bcra.monetarias.indicadores/snapshot", headers={"Authorization": "Bearer alm_..."}, ) url = r.json()["url"] # URL firmada, válida 60 min df = pl.read_parquet(url) # cargás el snapshot completo # ...escribir df en tu DW (Snowflake / BigQuery / Postgres)O directo desde DuckDB / con
COPY INTOdesde la URL firmada (generala justo antes del load porque expira en 60 min):sql · duckdbINSTALL httpfs; LOAD httpfs; CREATE TABLE bcra_indicadores AS SELECT * FROM read_parquet('<url firmada>');
Ingesta incremental
Cada snapshot es inmutable y tiene su snapshot_at. Guardá el del último load y volvé a ingestar sólo si cambió. El update_pattern y el freshness_sla de GET api.almanac.ar/v1/datasets/{id} te dicen la cadencia esperada.
Alcance — y qué no hace la API REST
La API REST entrega snapshots completos: la foto vigente de un dataset, inmutable y fechada, para descargar e ingerir. No corre consultas — no hay SQL ni filtros server-side en este canal.
¿Necesitás correr SQL, agregar o traer sólo un recorte sin bajar todo? Eso es el canal MCP (tools data_query / data_query_parquet), desde tu agente o editor — Conectar tu agente (MCP). Son dos canales separados: REST para ingesta masiva, MCP para consulta.