Saúde da plataforma e do provedor de canal
GET/health/deep
Endpoint público e sem autenticação, desenhado para o seu monitor sintético consultar a cada minuto. Leia o campo smsProvider, não apenas o código HTTP.
Faz as checagens internas da plataforma MAIS uma sonda de leitura no provedor de SMS (uma operação barata, nunca um envio). O resultado da sonda é cacheado por 30 segundos.
Leia o campo `smsProvider`, não apenas o código HTTP — é ele que separa os dois cenários:
| Leitura | Diagnóstico |
|---|---|
status: "fail" (HTTP 503) | Plataforma CCX indisponível |
status: "ok" + smsProvider: "fail" | CCX no ar, provedor do canal fora |
status: "ok" + smsProvider: "ok" | Ambos no ar |
smsProvider NÃO entra no status agregado de propósito: um provedor fora do ar não deve tirar a plataforma inteira de operação, levando junto WhatsApp, e-mail e painel.
skipped num campo significa que aquela dependência não está configurada neste ambiente — não é falha.
Respostas
200Default ResponseCampos e exemplo da resposta
Campo Tipo Descrição statusobrigatóriostringValores: okfailuptimeSecobrigatórionumberchecksobrigatórioobjectchecks.databaseobrigatórioobjectchecks.database.statusobrigatóriostringValores: okfailskippedchecks.database.latencyMsobrigatóriointegerchecks.cacheobrigatórioobjectchecks.cache.statusobrigatóriostringValores: okfailskippedchecks.cache.latencyMsobrigatóriointegerchecks.workersobrigatórioobjectchecks.workers.statusobrigatóriostringValores: okfailskippedchecks.workers.latencyMsobrigatóriointegerchecks.apiRoutesobrigatórioobjectchecks.apiRoutes.statusobrigatóriostringValores: okfailskippedchecks.apiRoutes.latencyMsobrigatóriointegerchecks.smsProvideropcionalobjectchecks.smsProvider.statusobrigatóriostringValores: okfailskippedchecks.smsProvider.latencyMsobrigatóriointegerJSON{ "status": "ok", "uptimeSec": 0, "checks": { "database": { "status": "ok", "latencyMs": 0 }, "cache": { "status": "ok", "latencyMs": 0 }, "workers": { "status": "ok", "latencyMs": 0 }, "apiRoutes": { "status": "ok", "latencyMs": 0 }, "smsProvider": { "status": "ok", "latencyMs": 0 } }}
503Default Response
As respostas de erro seguem o formato RFC 7807 (application/problem+json), com um código estável no campo code. Ver os códigos de erro
Exemplo em curl
curl 'https://api.messages.ccxcompany.co/health/deep'