API Docs — Argentina Bursátil Scrapper

Base URL: https://arg-bursatil-scrapper.sitemaster.com.ar

Ver el markdown crudo en una pestaña aparte

GET /health

GET/health

Chequeo de proceso vivo (usado por Docker/Dokploy healthcheck). Sin autenticación.

Respuesta 200:

{
  "status": "ok",
  "uptimeSeconds": 12345,
  "timestamp": "2026-06-24T22:16:29.832Z"
}

GET /status

GET/status

Estado del pipeline: mercado abierto/cerrado, salud del sidecar de HomeBroker, fuente activa y frescura por clase de activo, cupo de requests de IOL. Sin autenticación.

Respuesta 200:

{
  "timestamp": "2026-06-24T22:16:30.228Z",
  "marketOpen": false,
  "sidecar": {
    "reachable": true,
    "homebrokerConnected": false,
    "lastTickAt": null
  },
  "assetClasses": {
    "acciones":  { "activeSource": "iol", "lastWriteAt": null, "isStale": true, "fallbackSince": "2026-06-24T19:58:47.454Z" },
    "bonos_ars": { "activeSource": "iol", "lastWriteAt": null, "isStale": true, "fallbackSince": "2026-06-24T19:58:47.466Z" },
    "bonos_usd": { "activeSource": "iol", "lastWriteAt": null, "isStale": true, "fallbackSince": "2026-06-24T19:58:47.481Z" },
    "cedears":   { "activeSource": "iol", "lastWriteAt": null, "isStale": true, "fallbackSince": "2026-06-24T19:58:47.528Z" },
    "opciones":  { "activeSource": "iol", "lastWriteAt": null, "isStale": true, "fallbackSince": "2026-06-24T19:58:47.536Z" }
  },
  "iol": { "requestsThisMonth": 0, "monthlyLimit": 25000 }
}

Campos por clase de activo:

GET /

GET/

Dashboard HTML legible para humanos: mismo contenido que /status en formato de tabla, más la última foto de precios conocida por símbolo (cache en memoria, el mismo que alimenta Google Sheets). Se autorrefresca cada 30s. Sin autenticación.

POST /internal/homebroker/ticks

POST/internal/homebroker/ticks

Interno — usado solo por el sidecar de HomeBroker (Python) corriendo en la misma red de Docker Compose. El puerto no está publicado externamente; no es parte de la API pública.

Auth: header X-Sidecar-Token si SIDECAR_TOKEN está seteado.

Respuesta: 204 sin cuerpo si el payload es válido (escriba o no, según WRITE_ENABLED); 400 si el payload no matchea el schema esperado; 401 si falta o no coincide el token.

Ejemplo con curl

curl https://arg-bursatil-scrapper.sitemaster.com.ar/health
curl https://arg-bursatil-scrapper.sitemaster.com.ar/status