Base URL: https://arg-bursatil-scrapper.sitemaster.com.ar
Ver el markdown crudo en una pestaña aparte
/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"
}
/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:
activeSource: "homebroker" | "iol" | null (sin dato todavía)lastWriteAt: timestamp ISO de la última fila escrita en Postgres para esa clase, o nullisStale: si pasó el umbral de frescura de la fuente activa sin escritura nuevafallbackSince: desde cuándo está en fallback a IOL, o null si está en HomeBroker/
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.
/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.
curl https://arg-bursatil-scrapper.sitemaster.com.ar/health curl https://arg-bursatil-scrapper.sitemaster.com.ar/status