API de estado
Puntos finales públicos JSON y RSS para integraciones, paneles de estado y monitoreo.
Todas las marcas de tiempo en las respuestas usan ISO-8601 cuando corresponda.
URL base de producción: https://status.licensechain.app
CORS
GET respuestas de
/api/status,
/api/v2/status,
/api/status/stream,
/api/v2/status/stream,
/api/status/uptime,
/api/v2/status/uptime,
/api/incidents, y
/api/v2/incidents
incluir Access-Control-Allow-Origin: *
para que los paneles basados en navegador puedan recuperarlos sin un proxy del mismo origen.
Integración móvil y en la aplicación
Los shells nativos de Android, iOS e híbridos pueden tratar el host de estado como un API JSON de solo lectura (no se requiere sesión LicenseChain).
| Punto final | Usar en móvil |
|---|---|
GET /api/status |
Pantalla de inicio/configuración resumen del “estado del sistema” (services, metrics). |
GET /api/incidents?limit=20 |
Lista de incidentes; apoya q, status, service parámetros de consulta. |
GET /api/status/uptime?days=30 |
Minigráfico o datos de gráficos. |
GET /api/status/stream?interval=15 |
SSE - mismo JSON que /api/status en cada evento; OkHttp y NSURLSession pueden consumir transmisiones o realizar encuestas /api/status cada 30 a 60 s. |
GET /api/status/rss |
Opcional: entrega al lector del sistema RSS. |
Android (Kotlin): búsqueda única con OkHttp
val client = OkHttpClient()
val req = Request.Builder()
.url("https://status.licensechain.app/api/status")
.get()
.build()
client.newCall(req).execute().use { resp ->
val body = resp.body?.string() ?: ""
// Parse JSON: status, services, metrics, lastUpdated
}
iOS (Swift) — URLSession
let url = URL(string: "https://status.licensechain.app/api/status")!
URLSession.shared.dataTask(with: url) { data, _, _ in
guard let data = data else { return }
// Decode JSON: status, services, metrics, lastUpdated
}.resume()
Usar HTTPS, respete la batería (evite sondeos de menos de un segundo) y la superficie
lastUpdated o
checkedAt
de cargas útiles para que los usuarios conozcan la actualidad de los datos.
Resumen del servicio
GET /api/status
Devuelve filas de servicios agregadas con etiquetas orientadas a humanos y cadenas de tiempo de actividad formateadas.
Respuesta (200):
status—operational|degradedservices[]—name,status,description,lastChecked,responseTime,uptime,categoryy opcionalregions[]cuando se configura la monitorización multirregional (code,status,responseTime?,checkedAtISO). Las URL de verificación de estado nunca se incluyen.metrics—operational,total,avgResponseTime,uptimelastUpdated— Marca de tiempo ISO
Monitoreo multirregional
Cuando se configuran sondas multirregionales, la API pública expone la región códigos y solo estado acumulado: nunca sondee las URL.
GET /api/status/stream
Server-Sent Events (text/event-stream):
instantáneas JSON repetidas con el misma forma como
GET /api/status.
El intervalo de inserción predeterminado es 15s; consulta opcional
interval
(segundos, sujetado 5–60).
Los navegadores y WebViews móviles pueden suscribirse con
EventSource
cuando el mismo origen o CORS lo permita.
GET /api/status/uptime
Parámetros de consulta:
days— ventana retrospectiva (predeterminada 30, máximo 90).service- opcional; filtrar a un nombre de servicio.region- opcional; filtrar a un código de región de sonda. Requiereservicecuando esté configurado.
Respuesta: { success, service, region, days, points[] }
donde cada punto tiene bucket (fecha),
uptime (0-100), y
checks.
API v2 (esquema estable para integraciones)
Prefiera estos caminos para nuevos clientes; v1 sigue siendo compatible con incrustaciones existentes.
GET /api/v2/status
api.version—"2.0"generatedAt— ISO-8601overall.status—operational|degradedmetrics—operational,total,avgResponseTimeMs,avgUptimePercentservices[]—id,name,status,description,lastCheckedAt(ISO),responseTimeMs,uptimePercent,category,monitorRegions[](codesólo), opcionalregions[](code,status,responseTimeMs,checkedAtISO). Las URL de verificación de estado nunca se incluyen.
GET /api/v2/status/stream
SSE con el mismo cuerpo JSON que GET /api/v2/status;
consulta interval
(artículos de segunda clase, 5–60, por defecto 15).
GET /api/v2/status/uptime
Misma semántica de consulta que v1, con sobre:
api,
generatedAt,
success,
service,
region,
days,
points.
GET /api/v2/incidents
Los mismos parámetros de consulta que v1 (limit,
q,
status,
service).
La respuesta incluye api,
generatedAt,
success, y
incidents[]
con campos de fecha ISO (startsAt,
endsAt,
createdAt,
updatedAt,
resolvedAt — anulable cuando corresponda).
Cada incidente puede incluir timeline:
una serie de { at, fromStatus?, toStatus?, message? }
con mensajes públicos y transiciones de estado únicamente.
GET /api/v2/status/customization
Carga útil de marca pública:
brandName,
logoUrl,
supportUrl,
whiteLabelEnabled,
publicSiteUrl,
themeCssVars.
GET /api/v2/enterprise/features
Indicadores y contadores empresariales de alto nivel para capacidades de página de estado.
RSS alimentación
GET /api/status/rss
RSS/Atom feed de incidentes recientes (vinculados a través de
<link rel="alternate">
en el sitio de estado).
Incidentes
GET /api/incidents
Admite filtros como q,
status, y
service.
Devuelve registros de incidentes para la interfaz de usuario de estado y los consumidores externos.
La carga útil coincide con los objetos del incidente v2, incluido el opcional
timeline
(actividad de flujo de trabajo público).
Webhook de cambio de servicio saliente
Cuando un servicio monitoreado cambia de estado (por ejemplo, operativo → degradado), un webhook saliente opcional puede notificar a su punto final. Cuerpo de ejemplo:
{
"source": "licensechain-status",
"event": "service_status_changed",
"service": {
"name": "API Service",
"previousStatus": "operational",
"newStatus": "degraded",
"checkedAt": "2026-04-04T12:00:00.000Z"
}
}
Estado en vivo
Vea el tablero de estado público o obtenga el resumen JSON directamente: