Die öffentliche API von Levlix
Levlix veröffentlicht eine kleine API, die nur liest und weder Login noch API-Schlüssel braucht. Sie versorgt die öffentliche Statusseite und lässt Monitoring-Werkzeuge und KI-Agenten prüfen, ob Levlix läuft. Alles andere, was das Dashboard unter /api/ aufruft, hängt an einem Discord-Login und gehört nicht zu dieser API.
Auffindbarkeit
Agenten finden die API, ohne URLs zu raten. Zwei maschinenlesbare Dateien beschreiben sie:
- API-Katalog:
https://levlix.io/.well-known/api-catalogfolgt RFC 9727. Es ist ein Linkset mit einem Eintrag, der auf die OpenAPI-Beschreibung, auf diese Seite und auf den Health-Endpunkt zeigt. - OpenAPI-Beschreibung:
https://levlix.io/api/v1/openapi.jsonbeschreibt jeden unten aufgeführten Endpunkt in OpenAPI 3.1.
Jede HTML-Seite auf levlix.io trägt außerdem einen Link-Header mit rel="api-catalog", neben den Verweisen auf die Sitemap und llms.txt.
Endpunkte
| Endpunkt | Was er zurückgibt |
|---|---|
GET /api/v1/health |
Gesamtstatus, laufende Version, Betriebszeit und den Zustand von Datenbank, Cache und Bot-Verbindung. |
GET /api/v1/health/history |
Die Health-Checks der letzten 24 Stunden und die Verfügbarkeit der letzten 90 Tage. |
GET /api/v1/health/discord |
Den Status der Discord-API selbst, eine Minute lang zwischengespeichert. |
GET /api/v1/health/incidents |
Das aktive Wartungsbanner und vergangene Vorfälle. |
GET /api/v1/liveness |
Immer {"status": "alive"}, solange der Prozess läuft. |
GET /api/v1/readiness |
{"status": "ready"}, sobald die Datenbank antwortet, sonst 503. |
GET /docs/api/search?q= |
Suchergebnisse aus der Dokumentation. Die deutschen Docs antworten auf demselben Pfad unter dem deutschen Präfix der Website. |
Regeln
- Jede Antwort ist JSON, und nur
GETwird unterstützt. - Es gibt keine Authentifizierung, darum liest oder ändert kein Endpunkt Serverdaten.
- Der Health-Endpunkt ist der richtige zum Abfragen. Einmal pro Minute reicht völlig; die Statusseite selbst fragt nicht öfter.
- Der Discord-Bot hat keine eigene öffentliche API. Alles Weitere läuft über Slash-Befehle und das Dashboard.