Saltar al contenido
Almanac.ar

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).

Iniciá sesión para generar tu API key. El MCP está disponible en todos los planes (con distinta cuota de consultas); la API REST para ingesta requiere Ultimate, Team o Enterprise. Mirá el detalle en Planes y precios.

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. 1

    Paso 1 · Público · sin key

    Descubrir el catálogo

    GET api.almanac.ar/v1/datasets es el índice: un item liviano por dataset (id, nombre, descripción, fuente, frecuencia, tags, país) con su detail_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.

    bash
    curl https://api.almanac.ar/v1/datasets
    curl https://api.almanac.ar/v1/datasets/bcra.monetarias.indicadores
  2. 2

    Paso 2 · Requiere key

    Obtener el snapshot vigente

    GET api.almanac.ar/v1/datasets/{id}/snapshot?format=parquet devuelve una URL firmada (válida 60 minutos) al Parquet del snapshot vigente, más su fecha, cantidad de filas y tamaño. Usá format=csv si preferís CSV (cuando exista).

    bash · request
    curl -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. 3

    Paso 3 · En tu infraestructura

    Cargar en tu Data Warehouse

    Con Python (polars/pandas) escribís al destino con tu conector habitual:

    python
    import 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 INTO desde la URL firmada (generala justo antes del load porque expira en 60 min):

    sql · duckdb
    INSTALL 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.

API de datos — ingesta en tu Data Warehouse — Almanac · Almanac