Skip to main content

Supervisor, plugins & misc endpoints

Root

MethodPathRoleDescription
GET/infoany appSystem overview
POST/reload_updatesadmin (v2: manager)Refresh updater information
POST/refresh_updatesmanagerRefresh updater and store (v1 only, discouraged)
GET/available_updatesmanagerPending updates (v1 only)

GET /supervisor/available_updates is a deprecated alias of /available_updates.

GET /info response data: supervisor, apexos (Core version), apexos_os, docker, hostname, operating_system, features, machine, machine_id, arch, state, supported_arch, supported, channel, logging, timezone. /info is a token-bypass path — every installed app may call it.

GET /available_updates response data: available_updates — entries with update_type (core | supervisor | os | addon), panel_path, version_latest, plus name/icon for apps.

Supervisor

MethodPathRoleDescription
GET/supervisor/pingnoneLiveness check (no auth)
GET/supervisor/infodefaultSupervisor details
GET/supervisor/statsmanagerContainer resource statistics
POST/supervisor/updatemanagerUpdate the Supervisor
POST/supervisor/reloadmanagerReload updater, secrets, and evaluations
POST/supervisor/restartmanagerSoft-restart the Supervisor
POST/supervisor/optionsmanagerChange Supervisor settings
POST/supervisor/repairmanagerRepair the local container setup
GET/supervisor/logs[...]managerJournal logs — same sub-paths as core logs (/follow, /latest, /boots/{bootid}, /boots/{bootid}/follow); falls back to container logs if the journal gateway is unavailable

GET /supervisor/info response data: version, version_latest, update_available, channel, arch, supported, healthy, ip_address, timezone, logging, debug, debug_block, diagnostics, auto_update, detect_blocking_io, country, feature_flags, wait_boot (deprecated), addons (installed apps: name, slug, version, version_latest, update_available, state, repository, icon), addons_repositories (name, slug).

POST /supervisor/options fields (all optional): channel (stable|beta|dev), addons_repositories (list, deprecated), timezone (string), wait_boot (deprecated), logging (debug|info|warning|error|critical), debug (bool), debug_block (bool), diagnostics (bool), auto_update (bool), detect_blocking_io (off|on|on-at-startup), country (string), feature_flags (map of flag name to bool; currently supervisor_v2_api).

POST /supervisor/update fields: version (version tag; only honored in dev channel — otherwise the updater's version is used, and the call fails when no update is available).

Jobs

MethodPathRoleDescription
GET/jobs/infomanagerJob tree and ignored conditions
POST/jobs/optionsmanagerSet ignore_conditions (list of job conditions)
POST/jobs/resetmanagerReset job manager options
GET/jobs/{uuid}managerSingle job subtree
DELETE/jobs/{uuid}managerRemove a completed job (errors if not done)

GET /jobs/info response data: ignore_conditions and jobs — a tree of job objects (newest roots first) each carrying child_jobs; internal jobs are hidden and parent_id is stripped.

Resolution center

MethodPathRoleDescription
GET/resolution/infomanagerIssues, suggestions, checks, health flags
POST/resolution/check/{check}/optionsmanagerEnable/disable a check (enabled bool)
POST/resolution/check/{check}/runmanagerRun a check now
POST/resolution/suggestion/{suggestion}managerApply a suggestion
DELETE/resolution/suggestion/{suggestion}managerDismiss a suggestion
DELETE/resolution/issue/{issue}managerDismiss an issue
GET/resolution/issue/{issue}/suggestionsmanagerSuggestions fixing an issue
POST/resolution/healthcheckmanagerRun backend healthcheck

GET /resolution/info response data: unsupported, unhealthy, suggestions (each with an auto flag when an automatic fix exists), issues, checks (enabled, slug).

Mounts

MethodPathRoleDescription
GET/mountsmanagerMounts and default backup mount
POST/mounts/optionsmanagerSet default_backup_mount (name or null)
POST/mountsmanagerCreate a mount
PUT/mounts/{mount}managerReplace a mount's configuration
DELETE/mounts/{mount}managerRemove a mount
POST/mounts/{mount}/reloadmanagerRemount

Mount configuration body (create/update):

FieldTypeRequiredNotes
namestring [A-Za-z0-9_]+yesImmutable on update
type"cifs" | "nfs"yes
usagestringyese.g. backup, media, share; backup mounts cannot be read-only
read_onlybooleanno (default false)
serverstringyes
portint (port)no
sharestringCIFS
username / passwordstringCIFS, optional (paired)
versionstring | nullCIFS, optionalCIFS protocol version
pathstringNFS

GET /mounts response entries add state and user_path to the stored configuration.

Audio plugin

MethodPathRoleDescription
GET/audio/infodefaultPlugin version and sound topology (host, audio.card/input/output/application)
GET/audio/statsmanagerContainer resource statistics
POST/audio/updatemanagerUpdate plugin (version optional)
POST/audio/restartmanagerRestart plugin
POST/audio/reloadmanagerRe-read sound state
POST/audio/profilemanagerActivate a card profile — body: card (string), name (string)
POST/audio/volume/{source}managerSet volume — body: index (int), volume (float)
POST/audio/volume/{source}/applicationmanagerSame, for an application stream
POST/audio/mute/{source}managerMute — body: index (int), active (bool)
POST/audio/mute/{source}/applicationmanagerSame, for an application stream
POST/audio/default/{source}managerSet default stream — body: name (string)
GET/audio/logs[...]managerJournal logs (same sub-paths as core logs)

{source} is the stream type (input or output).

DNS plugin

MethodPathRoleDescription
GET/dns/infodefaultversion, version_latest, update_available, host, servers, locals, mdns, llmnr, fallback
GET/dns/statsmanagerContainer resource statistics
POST/dns/updatemanagerUpdate plugin (version optional)
POST/dns/optionsmanagerservers (DNS server list), fallback (bool); changes trigger a restart
POST/dns/restartmanagerRestart plugin
POST/dns/resetmanagerReset plugin configuration
GET/dns/logs[...]managerJournal logs (same sub-paths as core logs)

CLI plugin

MethodPathRoleDescription
GET/cli/infodefaultversion, version_latest, update_available
GET/cli/statsmanagerContainer resource statistics
POST/cli/updatemanagerUpdate plugin (version optional)

Observer plugin

MethodPathRoleDescription
GET/observer/infodefaulthost, version, version_latest, update_available
GET/observer/statsmanagerContainer resource statistics
POST/observer/updatemanagerUpdate plugin (version optional)

Multicast plugin

MethodPathRoleDescription
GET/multicast/infodefaultversion, version_latest, update_available
GET/multicast/statsmanagerContainer resource statistics
POST/multicast/updatemanagerUpdate plugin (version optional)
POST/multicast/restartmanagerRestart plugin
GET/multicast/logs[...]managerJournal logs (same sub-paths as core logs)

Hardware

MethodPathRoleDescription
GET/hardware/infodefaultdevices (name, sysfs, dev_path, subsystem, by_id, attributes, children) and drives (vendor, model, revision, serial, id, size, time_detected, connection_bus, seat, removable, ejectable, filesystems)
GET/hardware/audiomanagerSound input/output profile maps

Docker

MethodPathRoleDescription
GET/docker/infodefaultversion, enable_ipv6, mtu, storage, logging, registries (usernames only)
POST/docker/optionsmanagerenable_ipv6 (bool | null), mtu (int 68–65535 | null); changes create a reboot-required issue
POST/docker/migrate-storage-drivermanagerstorage_driver (only "overlayfs"); requires a recent OS, creates a reboot-required issue
GET/docker/registriesmanagerConfigured registries
POST/docker/registriesmanagerAdd registries — body: { "<hostname>": {"username": "...", "password": "..."} }
DELETE/docker/registries/{hostname}managerRemove a registry

Security

MethodPathRoleDescription
GET/security/infodefaultpwned, force_security
POST/security/optionsmanagerpwned (bool), force_security (bool)
POST/security/integritymanagerAlways returns an error — the integrity-check feature has been removed (HTTP 410 semantics)

Services

Token-bypass paths — any installed app may call them; per-service roles from the app's configuration are enforced in the handler (write/delete require the provider role).

MethodPathDescription
GET/servicesList services: slug, available, providers
GET/services/{service}Read service data (v1 key addon, v2 key app)
POST/services/{service}Publish service data (validated per-service schema)
DELETE/services/{service}Remove the calling app's service data

Discovery

Token-bypass paths with handler-level restrictions: all reads (GET) are restricted to ApexOS Core; POST requires the calling app to declare the service in its config; DELETE only works on the app's own messages.

MethodPathCallerDescription
GET/discoverycoreMessages for started apps plus available services (v1 key addon, v2 key app)
POST/discoveryappSend a message — body: service (string, required), config (dict, required); returns {"uuid": "..."}
GET/discovery/{uuid}coreRead one message
DELETE/discovery/{uuid}owning appRemove a message

Auth

/auth is a token-bypass path; the handler additionally requires the calling app to have auth-API access. /auth/reset and /auth/list require admin; /auth/cache requires manager.

MethodPathRoleDescription
GET/POST/authapp with auth APIValidate user credentials via Basic auth header, JSON body (username/user + password), or form-encoded body
POST/auth/resetadminChange a user's password — body: username, password (both required)
DELETE/auth/cachemanagerClear the credential cache
GET/auth/listadminUsers: username, name, is_owner, is_active, local_only, group_ids

Ingress

MethodPathCallerDescription
POST/ingress/sessioncore onlyCreate a session — optional body user_id; returns {"session": "..."}
POST/ingress/validate_sessioncore onlyValidate/extend a session — body: session
GET/ingress/panelsmanagerPanel metadata per app: title, icon, admin, enable
ANY/ingress/{token}/{path}session cookieProxy into the app's web UI (HTTP and WebSocket); authenticated by the ingress_session cookie, not by bearer token

The ingress proxy injects remote-user headers from the session data and updates X-Forwarded-For; the Supervisor token header is stripped before forwarding.