Status & Maintenance
Public status page surfaces overall platform health, per-service indicators, and 90-day uptime history. Project operators schedule and lifecycle their project's maintenance windows through the project-scoped management API, which erectl maintenance and the desktop app call.
Status Page
The public status page at /status shows the current health
of all Erebine services. It is accessible without authentication and
works for both logged-in and anonymous visitors.
The status page displays:
- Overall platform status
- Per-service health indicators
- 90-day uptime history with percentage
- Recent platform maintenance windows (last 50, all lifecycle states)
Overall Status Levels
| Status Label | Status Key | Description |
|---|---|---|
| All Systems Operational | operational | All services are functioning normally. |
| Degraded Performance | degraded | One or more services are experiencing reduced performance. |
| Partial Outage | partial_outage | Some services are unavailable while others continue to function. |
| Major Outage | major_outage | All tracked services are reporting an outage. |
| Under Maintenance | maintenance | The platform is in an active maintenance window. This takes precedence over other status levels. |
Precedence: Maintenance overrides any service-level status. Otherwise, the worst per-service status wins: outage > degraded > operational.
Known limitation. The status page currently renders the same icon for every overall status level. The textual label and status key above are authoritative; the icon is being repaired.
Programmatic Health
The /status page itself is rendered as HTML and is not a JSON
surface. For machine-readable monitoring, use one of the dedicated health
endpoints below. Use a reasonable poll interval (60-300 seconds) so that
aggressive polling does not trip intermediate rate limits.
| Method | Endpoint | Auth | Purpose |
|---|---|---|---|
| GET | /healthz |
None (public) | Liveness probe. Returns a small JSON body when the process is alive. |
| GET | /:project_id/v1/health/dashboard |
Project API key | Per-project health dashboard including routing, workers, and endpoints. Returns HealthDashboardResponse JSON. |
# Liveness. Both hosts answer it; each reports its own process.
curl https://erebine.ai/healthz
curl https://api.erebine.ai/healthz
# The dashboard is a router route, so it answers on api.erebine.ai only.
curl -H "Authorization: Bearer $EREBINE_API_KEY" \
https://api.erebine.ai/$PROJECT_ID/v1/health/dashboard
Service Health Indicators
The status page tracks health for these services:
| Service | Health Derivation |
|---|---|
| Dashboard | Always Operational when the status page renders (same process). |
| Inference Routing | Derived from router instance records. Operational when all routers are online; Degraded when some are offline; Outage when none are online or no routers exist. |
| Shared Agents | Only shown when shared agents are registered on the platform. Health is based on heartbeat freshness (30-second stale threshold): Outage when more than 75% of agents are stale; Degraded when more than 50% are stale; Operational otherwise. |
| Model Storage | Always Operational (backend storage health is not polled in real time). |
For richer, machine-readable health that includes per-endpoint and per-worker
state, call GET /:project_id/v1/health/dashboard instead of
scraping the status page.
Maintenance Windows
Project operators schedule maintenance windows for their own projects
through the project-scoped management API
(/:project_id/v1/management/maintenance), the
erectl maintenance commands below, and the desktop app. A
project window is a notice for that project: the management API lists
it and GET /:project_id/v1/health/dashboard counts it. It
does not block API traffic, and it does not appear on the public status
page, which lists platform maintenance windows only: the 50 most recent,
newest first, in every lifecycle state.
While a platform maintenance window that disables API access is in
progress, API calls answer 503 with
type: server_error, code: service_unavailable
and a Retry-After header counting the seconds to the end of
the window.
Lifecycle States
Project-scoped windows persist an explicit status column
written by the management API and CLI. The status changes only when a
window is completed or cancelled; reaching the start or end time does
not change it.
status value |
Meaning |
|---|---|
| scheduled | Default on create. The window keeps this status through its start and end times until it is completed or cancelled. |
| active | Set only by a platform administrator. The management API and erectl maintenance never move a window to it. |
| completed | Window has been marked complete via POST /v1/management/maintenance/{id}/complete. |
| cancelled | Window has been cancelled via DELETE /v1/management/maintenance/{id}. |
Project-Scoped Management API Fields
Used by POST /:project_id/v1/management/maintenance and the
erectl maintenance commands below. All wire fields are
snake_case.
| Field | Type | Description |
|---|---|---|
title |
string, required | Short title for the window (1-200 characters). |
description |
string, required | Long-form description shown on the status page (up to 2000 characters). |
severity |
string, optional | One of info, warning, critical. Defaults to info. |
affected_services |
string[], optional | Names of services affected by the window. |
starts_at |
string (ISO 8601), required | When the maintenance window begins. |
ends_at |
string (ISO 8601), required | When the maintenance window ends. |
status |
string | Lifecycle state. One of scheduled, active, completed, cancelled. Defaults to scheduled on create. |
completed_at |
string (ISO 8601), response-only | Set when the window is marked complete. |
cancelled_at |
string (ISO 8601), response-only | Set when the window is cancelled. |
updated_at |
string (ISO 8601), response-only | Last modification time. |
created_by |
string, response-only | Identity of the operator who created the window. |
erectl maintenance
Project operators manage maintenance windows through the erectl
maintenance command group. Each leaf maps directly to the
project-scoped management API.
| Command | Method | API call |
|---|---|---|
erectl maintenance list |
GET | /:project_id/v1/management/maintenance |
erectl maintenance schedule |
POST | /:project_id/v1/management/maintenance |
erectl maintenance update <id> |
PATCH | /:project_id/v1/management/maintenance/{id} |
erectl maintenance cancel <id> |
DELETE | /:project_id/v1/management/maintenance/{id} |
erectl maintenance complete <id> |
POST | /:project_id/v1/management/maintenance/{id}/complete |
erectl maintenance purge <id> |
POST | /:project_id/v1/management/maintenance/{id}/purge |
erectl maintenance list
erectl maintenance schedule \
--title "Database upgrade" \
--description "Brief read-only window during the PG14 upgrade." \
--severity warning \
--starts-at 2026-05-22T02:00:00Z \
--ends-at 2026-05-22T03:00:00Z
erectl maintenance update mw_abc123 --severity critical
erectl maintenance complete mw_abc123
erectl maintenance cancel mw_abc123
erectl maintenance purge mw_abc123