Consultar status do servidor

GET /status

Saúde do servidor: a versão em execução e quantas inboxes há em cada estado. Sem token.

Responde 200 mesmo com o banco fora do ar: nesse caso vem status.database_status, e as contagens são as da última leitura boa. As contagens são atualizadas a cada, no máximo, 60 segundos. Não tem resposta de erro: com problema, o 200 traz o estado em status.

Autenticação

[]
{}

Respostas

{
  "200": {
    "description": "Status atual do servidor",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "info",
            "build",
            "instance_counts",
            "status"
          ],
          "properties": {
            "info": {
              "type": "string",
              "example": "Server health check completed",
              "description": "Resumo em texto (em inglês): `Server health check completed`, `Server is up but no instances connected` ou, com o banco degradado, `Server is accepting HTTP requests; database health check degraded`."
            },
            "build": {
              "type": "object",
              "required": [
                "version",
                "revision",
                "date"
              ],
              "properties": {
                "version": {
                  "type": "string",
                  "example": "2.2.2",
                  "description": "Versão (ex.: `2.6.8`)."
                },
                "revision": {
                  "type": "string",
                  "example": "a1b2c3d4e",
                  "description": "Commit do build."
                },
                "date": {
                  "type": "string",
                  "example": "2026-08-31",
                  "description": "Data do build."
                }
              },
              "description": "A versão da api em execução."
            },
            "instance_counts": {
              "type": "object",
              "required": [
                "total",
                "connected",
                "reconnecting",
                "connecting",
                "queued_reconnect",
                "disconnected",
                "hibernated",
                "other",
                "observed_at"
              ],
              "properties": {
                "total": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Todas as inboxes do servidor."
                },
                "connected": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Conectadas ao WhatsApp."
                },
                "reconnecting": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Caíram e estão reconectando sozinhas. Já saem da contagem dos outros estados."
                },
                "connecting": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Conectando ou esperando a leitura do QR code ou do código de pareamento."
                },
                "queued_reconnect": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Na fila para reconectar (por exemplo, logo depois de um reinício)."
                },
                "disconnected": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Desconectadas."
                },
                "hibernated": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Pausadas pelo servidor."
                },
                "other": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Em qualquer outro estado."
                },
                "observed_at": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Quando as contagens foram lidas. ISO 8601 em UTC, sem milissegundos."
                }
              },
              "description": "Quantas inboxes há em cada estado."
            },
            "status": {
              "type": "object",
              "required": [
                "server_status",
                "total_instances",
                "last_check",
                "dc",
                "node"
              ],
              "properties": {
                "server_status": {
                  "type": "string",
                  "example": "running",
                  "description": "Sempre `running` quando o servidor responde."
                },
                "total_instances": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Inboxes **conectadas** (o mesmo que `instance_counts.connected`), não o total. O total está em `instance_counts.total`."
                },
                "last_check": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Quando as contagens foram atualizadas. ISO 8601, sem milissegundos."
                },
                "dc": {
                  "type": "string",
                  "description": "Datacenter onde o servidor roda."
                },
                "node": {
                  "type": "string",
                  "description": "Máquina (nó) onde o servidor roda."
                },
                "database_status": {
                  "type": "string",
                  "description": "Só quando a leitura do banco falhou: `timeout`, `database_error` ou `database_unavailable`."
                },
                "database_error": {
                  "type": "string",
                  "description": "Detalhe do erro do banco, quando há."
                },
                "checked_instance": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Id da inbox verificada."
                    },
                    "is_healthy": {
                      "type": "boolean",
                      "description": "`true` se a sessão dela está pronta."
                    },
                    "connection_status": {
                      "type": "string",
                      "description": "O estado dela agora (`connected`, `disconnected`...)."
                    },
                    "message": {
                      "type": "string",
                      "description": "`Instance is healthy` ou `Instance health check failed`."
                    }
                  },
                  "description": "Uma inbox conectada, escolhida em rodízio, para conferir se as conexões respondem. Ausente quando não há inbox conectada ou o banco falhou."
                },
                "reconnecting_instances": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Inboxes que caíram e estão reconectando sozinhas. Ausente com o banco degradado."
                },
                "reconnecting_instances_oldest": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time",
                  "description": "Quando começou a reconexão mais antiga em andamento (ISO 8601 em UTC), ou `null` se nenhuma. Ausente com o banco degradado."
                }
              },
              "description": "O servidor e a última verificação."
            }
          }
        }
      }
    }
  }
}

Estado: Disponível

Formato: o mesmo da API v1 (caminho, campos e erros no padrão antigo).

Compatibilidade de canais

CanalCompatívelObservação
WhatsApp (Web)Sim
WhatsApp (API oficial)Sim
InstagramSim
MessengerSim
TelegramSim

Eventos que esta rota gera

Nenhum. Esta rota não gera evento no webhook (nem em GET /events): o resultado vem só na resposta.

Antes e depois (uazapi → Orkesio)

Na uazapi: GET /status.

  • Sem mudança: a mesma rota e o mesmo formato da uazapi (é a mesma rota nas duas).

Guias relacionados

Visão geral · O que funciona em cada canal · O que muda da uazapi