Core endpoints
These endpoints manage the ApexOS Core runtime container. The canonical prefix is /core; every endpoint is also mirrored at the legacy /apexos prefix on the v1 tree (same handlers, same payloads).
Minimum role: apexos (the apexos role grants /core/* and /apexos/*; manager and admin also qualify). GET /core/info is additionally readable by every role via the info-path rule.
| Method | Path | Role | Description |
|---|---|---|---|
| GET | /core/info | default | Core runtime information |
| GET | /core/stats | apexos | Container resource statistics |
| POST | /core/options | apexos | Change Core settings |
| POST | /core/update | apexos | Update Core (background-capable) |
| POST | /core/restart | apexos | Restart Core |
| POST | /core/stop | apexos | Stop Core |
| POST | /core/start | apexos | Start Core |
| POST | /core/check | apexos | Validate Core configuration |
| POST | /core/rebuild | apexos | Rebuild the Core container |
| GET | /core/logs | apexos | Journal logs (text/plain) |
| GET | /core/logs/follow | apexos | Streamed journal logs |
| GET | /core/logs/latest | apexos | Logs since last container start, colors stripped |
| GET | /core/logs/boots/{bootid} | apexos | Logs for a specific boot |
| GET | /core/logs/boots/{bootid}/follow | apexos | Streamed logs for a specific boot |
Update, stop, restart, and rebuild are refused while an offline Core database migration is in progress, unless force is set where supported.
GET /core/info
Response data keys: version, version_latest, update_available, machine, ip_address, arch, image, boot, port, ssl, watchdog, audio_input, audio_output, backups_exclude_database, duplicate_log_file.
GET /core/stats
Response data keys: cpu_percent, memory_usage, memory_limit, memory_percent, network_rx, network_tx, blk_read, blk_write.
POST /core/options
All request fields optional:
| Field | Type | Description |
|---|---|---|
boot | boolean | Start Core on boot |
image | string | null | Override container image |
port | int (port) | Core API port |
ssl | boolean | Core API uses SSL |
watchdog | boolean | Enable watchdog |
refresh_token | string | null | Refresh token for Core API access |
audio_output | string | null | Default audio output |
audio_input | string | null | Default audio input |
backups_exclude_database | boolean | Exclude Core database from backups by default |
duplicate_log_file | boolean | Duplicate the log file |
POST /core/update
| Field | Type | Default | Description |
|---|---|---|---|
version | version tag | latest | Target version |
backup | boolean | — | Create a backup before updating |
background | boolean | false | Return immediately with job_id |
Background mode returns {"job_id": "..."}.
POST /core/restart, POST /core/rebuild
| Field | Type | Default |
|---|---|---|
safe_mode | boolean | false |
force | boolean | false (bypass the DB-migration guard) |
POST /core/stop
| Field | Type | Default |
|---|---|---|
force | boolean | false |
POST /core/check
No body. Runs Core configuration validation; returns an error envelope containing the validation log when the configuration is invalid.
Log query options
All logs endpoints accept:
linesquery parameter (default 100, minimum effective value 2)verbosequery parameter orAccept: text/x-logheader for the verbose formatterno_colorsquery parameter to strip ANSI colors- A
Range: entries=cursor[[:num_skip]:num_entries]header for cursor-based paging
The response carries X-First-Cursor with the journal cursor of the first returned line.