Contents
The Levlix Public API
Levlix publishes a small read-only API that needs no login and no API key. It feeds the public status page and lets monitoring tools and AI agents check whether Levlix is up. Everything else the dashboard calls under /api/ is tied to a Discord login and is not part of this API.
Discovery
Agents find the API without guessing URLs. Two machine-readable files describe it:
- API catalog:
https://levlix.io/.well-known/api-catalogfollows RFC 9727. It is a linkset with one entry that points at the OpenAPI description, at this page and at the health endpoint. - OpenAPI description:
https://levlix.io/api/v1/openapi.jsondescribes every endpoint listed below in OpenAPI 3.1.
Every HTML page on levlix.io also carries a Link header with rel="api-catalog", alongside the links to the sitemap and llms.txt.
Endpoints
| Endpoint | What it returns |
|---|---|
GET /api/v1/health |
Overall status, the running version, the uptime and the health of the database, the cache and the bot connection. |
GET /api/v1/health/history |
The health checks of the last 24 hours and the uptime of the last 90 days. |
GET /api/v1/health/discord |
The status of Discord's own API, cached for one minute. |
GET /api/v1/health/incidents |
The active maintenance banner and past incidents. |
GET /api/v1/liveness |
Always {"status": "alive"} while the process runs. |
GET /api/v1/readiness |
{"status": "ready"} once the database answers, otherwise 503. |
GET /docs/api/search?q= |
Documentation search results. The German docs answer on the same path below the German site prefix. |
Rules
- Every response is JSON and only
GETis supported. - There is no authentication, so no endpoint reads or changes server data.
- The health endpoint is the right one to poll. Once a minute is plenty; the status page itself does not ask more often.
- The Discord bot has no public API of its own. Everything else runs through slash commands and the dashboard.