Status Page API
Consultá el estado de los servicios de Talo desde tu sistema y administrá suscripciones a las novedades de los incidentes.
Todos los endpoints de esta página son públicos y no requieren
Authorization header.
Consultar el estado público
Prod
GET https://api.talo.com.ar/admin/status-page/publicSandbox
GET https://sandbox-api.talo.com.ar/admin/status-page/publicDevuelve el mismo contenido que muestra status.talo.com.ar . La respuesta se cachea durante 30 segundos (Cache-Control: public, max-age=30).
Ejemplo
curl https://api.talo.com.ar/admin/status-page/publicRespuesta
{
"overall_status": "degraded_performance",
"components": [
{
"id": "banking-provider-webhooks",
"name": "Acreditaciones",
"description": "Procesamiento de transferencias",
"component_group": "Red bancaria",
"status": "degraded_performance",
"uptime_percentage": 99.98,
"daily_history": [
// 90 entradas, de la más antigua a la más reciente
{ "date": "2026-07-30", "status": "operational" },
{
"date": "2026-07-31",
"status": "partial_outage",
"downtime_minutes": 25,
"related_incidents": [
{
"id": "inc_1753974245000_ab12cd34",
"title": "Demoras en acreditaciones",
"status": "partial_outage"
}
]
}
]
}
],
"active_incidents": [
{
"id": "inc_1753974245000_ab12cd34",
"title": "Demoras en acreditaciones",
"status": "monitoring",
"impact": "major",
"affected_component_ids": ["banking-provider-webhooks"],
"updates": [
{
"id": "6a3f0b9e-2c41-4d1a-9f0e-0c6c1f8e2b11",
"status": "investigating",
"message": "Estamos investigando demoras en las acreditaciones.",
"creation_timestamp": "2026-07-31T15:04:05.000Z"
},
{
"id": "b7d2e4c1-8a90-4f3e-a2b6-5d1e9c7f0a22",
"status": "monitoring",
"message": "Aplicamos una solución y estamos monitoreando.",
"creation_timestamp": "2026-07-31T15:29:05.000Z"
}
],
"started_timestamp": "2026-07-31T15:04:05.000Z"
}
],
"recent_incidents": [],
"generated_at": "2026-07-31T15:30:00.000Z"
}Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
overall_status | string | Peor estado entre todos los componentes |
components[].id | string | Identificador del componente (ej. talo-api) |
components[].name | string | Nombre visible |
components[].description | string | Descripción. Opcional |
components[].component_group | string | Grupo al que pertenece (ej. Red bancaria). Opcional |
components[].status | string | Estado actual del componente |
components[].uptime_percentage | number | Disponibilidad de los últimos 90 días, con dos decimales |
components[].daily_history | object[] | 90 entradas, de la más antigua a la más reciente |
daily_history[].date | string | Fecha (YYYY-MM-DD) |
daily_history[].status | string | Peor estado del día |
daily_history[].downtime_minutes | number | Minutos afectados con el peor estado del día. Sólo presente si hubo incidentes |
daily_history[].related_incidents | object[] | Incidentes del día (id, title, status). Sólo presente si hubo incidentes |
active_incidents | object[] | Incidentes que todavía no están resueltos |
recent_incidents | object[] | Incidentes resueltos en los últimos 14 días |
generated_at | string | Momento en que se generó la respuesta (ISO 8601) |
Campos de un incidente
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador del incidente |
title | string | Título |
status | string | investigating, identified, monitoring o resolved |
impact | string | minor, major o critical |
affected_component_ids | string[] | id de los componentes afectados |
updates | object[] | Historial de actualizaciones (id, status, message, creation_timestamp), de la más antigua a la más reciente |
started_timestamp | string | Inicio del incidente (ISO 8601) |
resolved_timestamp | string | Fin del incidente (ISO 8601). Sólo presente cuando está resuelto |
Crear una suscripción
Prod
POST https://api.talo.com.ar/health/status-page/subscriptionsSandbox
POST https://sandbox-api.talo.com.ar/health/status-page/subscriptionsCampos del body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
channel | string | Sí | "email" o "webhook" |
email | string | Si channel es email | Email válido, hasta 254 caracteres |
url | string | Si channel es webhook | URL https://, hasta 2048 caracteres |
Las suscripciones de cada ambiente son independientes: una suscripción creada en sandbox no recibe las novedades de producción.
Ejemplo de solicitud
cURL
curl -X POST https://api.talo.com.ar/health/status-page/subscriptions \
-H "Content-Type: application/json" \
-d '{
"channel": "webhook",
"url": "https://tu-sitio.com/webhooks/talo-status"
}'Respuesta
201 Created
{
"id": "sub_3f1c2a9e-7b4d-4c8e-9a51-2d6f0e8b7c43",
"channel": "email",
"status": "pending_confirmation"
}| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la suscripción |
channel | string | email o webhook |
status | string | pending_confirmation (email sin confirmar) o confirmed |
Comportamiento según el canal
| Canal | Estado inicial | Qué pasa después |
|---|---|---|
pending_confirmation | Enviamos un email con el link de confirmación | |
| webhook | confirmed | Enviamos un POST de prueba con "event": "subscription.confirmed" a la URL |
Si ya existe una suscripción con el mismo canal y destino, la API devuelve la
existente. Si es un email pendiente de confirmación, además reenviamos el
email de confirmación (máximo uno por minuto; antes responde 429).
Confirmar una suscripción
Confirma una suscripción de email. Normalmente no necesitás llamarlo: lo hace la página https://status.talo.com.ar/subscriptions/confirm cuando abrís el link del email.
POST https://api.talo.com.ar/health/status-page/subscriptions/confirmCampos del body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | Sí | ID de la suscripción (parámetro id del link) |
token | string | Sí | Token de confirmación (parámetro token del link, UUID) |
Ejemplo
curl -X POST https://api.talo.com.ar/health/status-page/subscriptions/confirm \
-H "Content-Type: application/json" \
-d '{ "id": "sub_3f1c2a9e-7b4d-4c8e-9a51-2d6f0e8b7c43", "token": "<token>" }'Respuesta
200 OK
{
"id": "sub_3f1c2a9e-7b4d-4c8e-9a51-2d6f0e8b7c43",
"channel": "email",
"status": "confirmed"
}Confirmar una suscripción ya confirmada devuelve la misma respuesta.
Cancelar una suscripción
POST https://api.talo.com.ar/health/status-page/subscriptions/unsubscribeCampos del body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | Sí | ID de la suscripción (parámetro id del link de baja) |
token | string | Sí | Token de baja (parámetro token del link de baja, UUID) |
El link de baja llega en cada email de incidente o, para webhooks, en el unsubscribe_url del POST de prueba:
https://status.talo.com.ar/subscriptions/unsubscribe?id=sub_...&token=...Ejemplo
curl -X POST https://api.talo.com.ar/health/status-page/subscriptions/unsubscribe \
-H "Content-Type: application/json" \
-d '{ "id": "sub_3f1c2a9e-7b4d-4c8e-9a51-2d6f0e8b7c43", "token": "<token>" }'Respuesta
200 OK
{
"unsubscribed": true
}Cancelar una suscripción ya cancelada devuelve la misma respuesta.
Errores frecuentes
Los errores devuelven message, code y error:
{
"message": "subscription not found",
"code": 404,
"error": true
}| HTTP | message | Cuándo ocurre |
|---|---|---|
403 | invalid confirmation token | El token no corresponde a la suscripción (confirmar) |
403 | invalid unsubscribe token | El token no corresponde a la suscripción (cancelar) |
404 | subscription not found | La suscripción no existe, o fue cancelada (sólo al confirmar) |
409 | subscription changed, please retry | Otra suscripción se creó al mismo tiempo. Reintentá la solicitud |
422 | — | El body no cumple el contrato (ver abajo) |
429 | please wait before requesting another email | Pediste reenviar el email de confirmación hace menos de un minuto |
429 | subscriber limit reached | La página alcanzó el máximo de 100 suscripciones activas o pendientes |
Cuando el body no cumple el contrato, la respuesta 422 detalla el error por campo:
{
"body": {
"_errors": [],
"url": { "_errors": ["url must use https"] }
}
}