Supervisor endpoints
Supervisor API endpoints for the Supervisor itself, system information, updates, jobs, resolution, and security settings.
These endpoints are about the Supervisor and the system as a whole. GET /info works for every app, without extra permissions. The other /info endpoints work with any role. The rest needs hassio_api: true with the manager or admin role.
| Method | Path | Description |
|---|---|---|
GET |
/info |
Overview of the system |
GET |
/available_updates |
Updates that are available |
POST |
/reload_updates |
Check for updates |
POST |
/refresh_updates |
Check for updates and reload the store |
| Key | Type | Description |
|---|---|---|
supervisor |
string | Version of the Supervisor |
homeassistant |
string or null | Version of Home Assistant Core |
hassos |
string or null | Version of Home Assistant OS, null on other systems |
docker |
string | Version of Docker |
hostname |
string or null | Host name |
operating_system |
string or null | Name of the operating system |
features |
list | Features the host supports |
machine |
string | Machine type, like generic-x86-64 |
machine_id |
string or null | Machine ID of the host |
arch |
string | Main architecture |
supported_arch |
list | All architectures the system can run |
state |
string | State of the Supervisor, like running |
supported |
boolean | true if the installation is supported |
channel |
string | Update channel: stable, beta, or dev |
logging |
string | Log level of the Supervisor |
timezone |
string | Time zone |
{
"supervisor": "2026.10.0",
"homeassistant": "2026.10.1",
"hassos": "17.0",
"docker": "28.3.3",
"hostname": "homeassistant",
"operating_system": "Home Assistant OS 17.0",
"features": ["reboot", "shutdown", "services", "network", "hostname"],
"machine": "generic-x86-64",
"machine_id": "d4d2b9f5a6b84e2f9c3e1a7b8c9d0e1f",
"arch": "amd64",
"supported_arch": ["amd64"],
"state": "running",
"supported": true,
"channel": "stable",
"logging": "info",
"timezone": "Europe/Amsterdam"
}Returns the updates that are available for Core, the Supervisor, the OS, and installed apps. The older path /supervisor/available_updates returns the same.
| Key | Type | Description |
|---|---|---|
available_updates |
list | One entry per update, with update_type (core, supervisor, os, or addon), panel_path, and version_latest. App updates also have name and icon |
Checks for new versions of Core, the Supervisor, the OS, and the plugins.
Does the same as POST /reload_updates, and also reloads the app store. Prefer POST /reload_updates and POST /store/reload.
| Method | Path | Description |
|---|---|---|
GET |
/supervisor/ping |
Check that the Supervisor is up. Needs no token |
GET |
/supervisor/info |
Information about the Supervisor |
POST |
/supervisor/options |
Change Supervisor settings |
POST |
/supervisor/update |
Update the Supervisor |
POST |
/supervisor/reload |
Reload versions, secrets, and system checks |
POST |
/supervisor/restart |
Restart the Supervisor |
POST |
/supervisor/repair |
Repair the installation |
GET |
/supervisor/stats |
Resource usage of the Supervisor |
GET |
/supervisor/logs |
Logs of the Supervisor, and the other log endpoints. When the journal cannot deliver them, you get the Docker logs of the container instead |
Returns success when the Supervisor is up. It needs no token, so you can call it before anything else.
| Key | Type | Description |
|---|---|---|
version |
string | Installed version |
version_latest |
string | Latest available version |
update_available |
boolean | true if an update is available |
channel |
string | stable, beta, or dev |
arch |
string | Architecture |
supported |
boolean | true if the installation is supported |
healthy |
boolean | true if the installation is healthy |
ip_address |
string | IP address of the Supervisor on the internal network |
timezone |
string or null | Time zone |
logging |
string | Log level |
debug |
boolean | true if debug mode is on |
debug_block |
boolean | true if the Supervisor waits for a debugger at startup |
diagnostics |
boolean or null | true if diagnostics are shared |
auto_update |
boolean | true if the Supervisor updates automatically |
detect_blocking_io |
boolean | true if detection of blocking I/O is on |
country |
string or null | Country code |
feature_flags |
dictionary | Development feature flags and whether they are on |
wait_boot |
integer | Deprecated |
addons |
list | Deprecated. Installed apps, with name, slug, version, version_latest, update_available, state, repository, and icon. Use GET /addons |
addons_repositories |
list | Deprecated. Repositories, with name and slug. Use GET /store/repositories |
| Key | Type | Required | Description |
|---|---|---|---|
channel |
string | No | stable, beta, or dev |
timezone |
string | No | Time zone, like Europe/Amsterdam. On Home Assistant OS 16.2 or newer, also sets the time zone of the host |
logging |
string | No | debug, info, warning, error, or critical |
debug |
boolean | No | Debug mode |
debug_block |
boolean | No | Wait for a debugger at startup |
diagnostics |
boolean | No | Share diagnostics |
auto_update |
boolean | No | Update the Supervisor automatically |
detect_blocking_io |
string | No | on, off, or on-at-startup |
country |
string | No | Country code |
feature_flags |
dictionary | No | Development feature flags to turn on or off, like {"supervisor_v2_api": true}. Flags you leave out keep their value |
wait_boot |
integer | No | Deprecated |
addons_repositories |
list | No | Deprecated. Replaces the list of repositories. Use the repository endpoints |
Updates the Supervisor to the latest version. Fails when there is no update. A version key only works in a Supervisor development environment, where SUPERVISOR_DEV is 1. Everywhere else, the Supervisor ignores it and installs the latest version.
Checks for new versions, reloads the Home Assistant secrets, and checks the system again.
Restarts the Supervisor.
Repairs the installation: fixes missing images, containers, and files where it can.
Returns the resource usage of the Supervisor as a stats model.
The Supervisor runs long tasks, like installs, updates, and backups, as jobs. Jobs form a tree: a backup job has child jobs per app, for example.
| Method | Path | Description |
|---|---|---|
GET |
/jobs/info |
All jobs |
GET |
/jobs/<job_id> |
One job |
DELETE |
/jobs/<job_id> |
Remove a finished job |
POST |
/jobs/options |
Change job settings |
POST |
/jobs/reset |
Reset the job settings |
| Key | Type | Description |
|---|---|---|
ignore_conditions |
list | Conditions the Supervisor ignores before it starts a job |
jobs |
list | Job models, newest first |
Returns one job model, with its child jobs. Use it to follow a job you started with background: true.
{
"name": "backup_manager_partial_backup",
"reference": "a1b2c3d4",
"uuid": "e2b7a9c4f1d34e5a8b6c0d1e2f3a4b5c",
"progress": 0,
"stage": "addons",
"done": false,
"errors": [],
"created": "2026-10-01T09:30:00.000000+00:00",
"extra": null,
"child_jobs": []
}Unless the supervisor_websocket_v2_api development feature flag is on, some jobs still use their older names here. Backup and restore jobs report stages like addons instead of apps, and the job that updates an app is addon_manager_update.
Removes a job from the list. Fails when the job is not done.
| Key | Type | Required | Description |
|---|---|---|---|
ignore_conditions |
list | No | Conditions to ignore before starting a job, like healthy or internet_host. Replaces the current list. This can break things, so only use it to debug |
Resets the job settings to the defaults, so no conditions are ignored anymore.
The resolution center finds problems with the system and suggests fixes. An issue is a problem, a suggestion is a fix for one, and a check is the test that finds them.
| Method | Path | Description |
|---|---|---|
GET |
/resolution/info |
Issues, suggestions, and checks |
GET |
/resolution/issue/<issue>/suggestions |
Suggestions for one issue |
DELETE |
/resolution/issue/<issue> |
Dismiss an issue |
POST |
/resolution/suggestion/<suggestion> |
Apply a suggestion |
DELETE |
/resolution/suggestion/<suggestion> |
Dismiss a suggestion |
POST |
/resolution/check/<check>/options |
Turn a check on or off |
POST |
/resolution/check/<check>/run |
Run a check |
POST |
/resolution/healthcheck |
Run all checks, and apply the fixes that run by themselves |
<issue> and <suggestion> are UUIDs. <check> is the slug of a check.
| Key | Type | Description |
|---|---|---|
unsupported |
list | Reasons the installation is unsupported |
unhealthy |
list | Reasons the installation is unhealthy |
issues |
list | Issue models |
suggestions |
list | Suggestion models |
checks |
list | Check models |
Some issue types and check slugs still use their older names here, like deprecated_addon and addon_pwned.
| Key | Type | Description |
|---|---|---|
suggestions |
list | Suggestion models that fix this issue |
| Key | Type | Required | Description |
|---|---|---|---|
enabled |
boolean | No | Turn the check on or off |
| Method | Path | Description |
|---|---|---|
GET |
/security/info |
Security settings |
POST |
/security/options |
Change the security settings |
POST |
/security/integrity |
Removed. Always returns 410 |
| Key | Type | Description |
|---|---|---|
pwned |
boolean | true if app passwords are checked against known leaks |
force_security |
boolean | true if apps with leaked passwords are not allowed to start |
| Key | Type | Required | Description |
|---|---|---|---|
pwned |
boolean | No | Check app passwords against known leaks |
force_security |
boolean | No | Block apps with leaked passwords |