Conteúdo
A API pública do Levlix
O Levlix publica uma pequena API somente leitura que não precisa de login nem de chave de API. Ela alimenta a página de status pública e permite que ferramentas de monitoramento e agentes de IA verifiquem se o Levlix está no ar. Todo o resto que o painel chama em /api/ depende de um login do Discord e não faz parte desta API.
Descoberta
Os agentes encontram a API sem adivinhar URLs. Dois arquivos legíveis por máquina a descrevem:
- Catálogo de API:
https://levlix.io/.well-known/api-catalogsegue a RFC 9727. É um linkset com uma entrada que aponta para a descrição OpenAPI, para esta página e para o endpoint de saúde. - Descrição OpenAPI:
https://levlix.io/api/v1/openapi.jsondescreve todos os endpoints listados abaixo em OpenAPI 3.1.
Toda página HTML em levlix.io também traz um cabeçalho Link com rel="api-catalog", junto com os links para o sitemap e para o llms.txt.
Endpoints
| Endpoint | O que retorna |
|---|---|
GET /api/v1/health |
Status geral, a versão em execução, o tempo no ar e a saúde do banco de dados, do cache e da conexão do bot. |
GET /api/v1/health/history |
As verificações de saúde das últimas 24 horas e o tempo no ar dos últimos 90 dias. |
GET /api/v1/health/discord |
O status da própria API do Discord, em cache por um minuto. |
GET /api/v1/health/incidents |
O aviso de manutenção ativo e os incidentes anteriores. |
GET /api/v1/liveness |
Sempre {"status": "alive"} enquanto o processo estiver rodando. |
GET /api/v1/readiness |
{"status": "ready"} assim que o banco de dados responde, caso contrário 503. |
GET /docs/api/search?q= |
Resultados da busca na documentação. A documentação em alemão responde no mesmo caminho, abaixo do prefixo do site em alemão. |
Regras
- Toda resposta é JSON e só
GETé suportado. - Não há autenticação, então nenhum endpoint lê ou altera dados de servidores.
- O endpoint de saúde é o certo para consultar periodicamente. Uma vez por minuto é mais que suficiente; a própria página de status não consulta com mais frequência.
- O bot do Discord não tem uma API pública própria. Todo o resto funciona pelos comandos de barra e pelo painel.