端点
对于标记为 🔒 的 API 端点,您需要使用带有 Bearer
令牌的授权标头。
该令牌可用于附加组件和 Home Assistant,使用
SUPERVISOR_TOKEN
环境变量。
要查看更多关于每个端点的详细信息,请点击它以展开。
附加组件
get/addons
🔒
返回已安装附加组件的概览信息。
有效负载:
键 | 类型 | 描述 |
---|---|---|
addons | 列表 | 附加组件模型 的列表 |
示例响应:
{
"addons": [
{
"name": "很棒的附加组件",
"slug": "awesome_addon",
"description": "我的很棒的附加组件",
"advanced": false,
"stage": "stable",
"repository": "core",
"version": null,
"version_latest": "1.0.1",
"update_available": false,
"installed": false,
"detached": true,
"available": true,
"build": false,
"url": null,
"icon": false,
"logo": false,
"system_managed": false
}
]
}
post/addons/reload
🔒
重新加载关于附加组件的存储信息。
get/addons/<addon>/changelog
🔒
获取附加组件的变更日志。
get/addons/<addon>/documentation
🔒
获取附加组件的文档。
get/addons/<addon>/logs
🔒
通过 Systemd 日志后端获取附加组件的日志。
该端点接受相同的标头,并提供与
/host/logs
相同的功能。
get/addons/<addon>/logs/follow
🔒
与 /addons/<addon>/logs
相同,只是它持续返回新的日志条目。
get/addons/<addon>/logs/boots/<bootid>
🔒
获取与特定启动相关的附加组件日志。
bootid
参数的解释方式与
/host/logs/boots/<bootid>
相同,其他方面该端点提供的功能与 /host/logs
相同。
get/addons/<addon>/logs/boots/<bootid>/follow
🔒
与 /addons/<addon>/logs/boots/<bootid>
相同,只是它持续返回新的日志条目。
get/addons/<addon>/icon
🔒
获取附加组件图标
get/addons/<addon>/info
🔒
获取有关附加组件的 详细信息
返回数据:
键 | 类型 | 描述 |
---|---|---|
advanced | boolean | 如果启用了高级模式,则为 true |
apparmor | string | 禁用、默认或配置文件的名称 |
arch | list | 附加组件支持的体系结构列表 |
audio | boolean | 如果启用了音频,则为 true |
audio_input | float or null | 设备索引 |
audio_output | float or null | 设备索引 |
auth_api | boolean | 如果启用了 auth api 访问,则为 true |
auto_uart | boolean | 如果启用了 auto_uart 访问,则为 true |
auto_update | boolean | 如果启用了自动更新,则为 true |
available | boolean | 如果附加组件可用,则为 true |
boot | string | "auto" 或 "manual" |
boot_config | string | 附加组件的默认启动模式或如果无法自动启动则为 "manual_only" |
build | boolean | 如果是本地附加组件,则为 true |
changelog | boolean | 如果有变更日志,则为 true |
description | string | 附加组件描述 |
detached | boolean | 如果附加组件是分离运行,则为 true |
devices | list | 附加设备的列表 |
devicetree | boolean | 如果授予了 devicetree 访问权限,则为 true |
discovery | list | 发现服务的列表 |
dns | list | 附加组件使用的 DNS 服务器列表 |
docker_api | boolean | 如果启用了 docker_api 访问,则为 true |
documentation | boolean | 如果有文档,则为 true |
full_access | boolean | 如果授予了完全访问权限,则为 true |
gpio | boolean | 如果授予了 gpio 访问权限,则为 true |
hassio_api | boolean | 如果启用了 hassio api 访问,则为 true |
hassio_role | string | hassio 角色 (default, homeassistant, manager, admin) |
homeassistant | string or null | 最低 Home Assistant Core 版本 |
homeassistant_api | boolean | 如果启用了 homeassistant api 访问,则为 true |
host_dbus | boolean | 如果授予了主机 dbus 访问权限,则为 true |
host_ipc | boolean | 如果授予了主机 ipc 访问权限,则为 true |
host_network | boolean | 如果授予了主机网络访问权限,则为 true |
host_pid | boolean | 如果授予了主机 pid 访问权限,则为 true |
host_uts | boolean | 如果启用了主机 UTS 命名空间访问,则为 true |
hostname | string | 附加组件的主机名 |
icon | boolean | 如果有图标,则为 true |
ingress | boolean | 如果启用了入口,则为 true |
ingress_entry | string or null | 入口点 |
ingress_panel | boolean or null | 如果启用了 ingress_panel,则为 true |
ingress_port | int or null | 入口端口 |
ingress_url | string or null | 入口 URL |
ip_address | string | 附加组件的 IP 地址 |
kernel_modules | boolean | 如果授予了内核模块访问权限,则为 true |
logo | boolean | 如果有徽标,则为 true |
long_description | string | 附加组件的详细描述 |
machine | list | 附加组件支持的机器类型列表 |
name | string | 附加组件的名称 |
network | dictionary or null | 附加组件的网络配置 |
network_description | dictionary or null | 网络配置的描述 |
options | dictionary | 附加组件配置 |
privileged | list | 附加组件访问的硬件/系统属性列表 |
protected | boolean | 如果启用了保护模式,则为 true |
rating | int | 附加组件评分 |
repository | string | 附加组件仓库的 URL |
schema | dictionary or null | 附加组件配置的模式 |
services_role | list | 服务及其附加组件角色的列表 |
slug | string | 附加组件的 slug |
stage | string | 附加组件的阶段 (stable, experimental, deprecated) |
startup | string | 启动附加组件的阶段 (initialize, system, services, application, once) |
state | string or null | 附加组件的状态 (started, stopped) |
stdin | boolean | 如果附加组件接受 stdin 命令,则为 true |
system_managed | boolean | 指示附加组件是否由 Home Assistant 管理 |
system_managed_config_entry | string | 如果附加组件由 Home Assistant 管理,则提供配置条目 ID |
translations | dictionary | 包含附加组件翻译文件内容的字典 |
udev | boolean | 如果授予了 udev 访问权限,则为 true |
update_available | boolean | 如果有可用更新,则为 true |
url | string or null | 有关附加组件的更多信息的 URL |
usb | list | 附加的 USB 设备列表 |
version | string | 附加组件的已安装版本 |
version_latest | string | 附加组件的最新版本 |
video | boolean | 如果启用了视频,则为 true |
watchdog | boolean | 如果启用了看门狗,则为 true |
webui | string or null | 附加组件的 web UI 的 URL |
signed | boolean | 如果映像已签名并受信任,则为 true |
示例响应:
{
"advanced": false,
"apparmor": "default",
"arch": ["armhf", "aarch64", "i386", "amd64"],
"audio_input": null,
"audio_output": null,
"audio": false,
"auth_api": false,
"auto_uart": false,
"auth_api": false,
"auto_uart": false,
"auto_update": false,
"available": false,
"boot": "auto",
"boot_config": "auto",
"build": false,
"changelog": false,
"description": "description",
"detached": false,
"devices": ["/dev/xy"],
"devicetree": false,
"discovery": ["service"],
"dns": [],
"docker_api": false,
"documentation": false,
"full_access": false,
"gpio": false,
"hassio_api": false,
"hassio_role": "default",
"homeassistant_api": false,
"homeassistant": null,
"host_dbus": false,
"host_ipc": false,
"host_network": false,
"host_pid": false,
"host_uts": false,
"hostname": "awesome-addon",
"icon": false,
"ingress_entry": null,
"ingress_panel": true,
"ingress_port": 1337,
"ingress_url": null,
"ingress": false,
"ip_address": "172.0.0.21",
"kernel_modules": false,
"logo": false,
"long_description": "Long description",
"machine": ["raspberrypi2", "tinker"],
"name": "Awesome add-on",
"network_description": "{}|null",
"network": {},
"options": {},
"privileged": ["NET_ADMIN", "SYS_ADMIN"],
"protected": false,
"rating": "1-6",
"repository": "12345678",
"schema": {},
"services_role": ["service:access"],
"slug": "awesome_addon",
"stage": "stable",
"startup": "application",
"state": "started",
"stdin": false,
"system_managed": true,
"system_managed_config_entry": "abc123",
"translations": {
"en": {
"configuration": {
"lorem": "ipsum"
}
}
},
"udev": false,
"update_available": false,
"url": null,
"usb": ["/dev/usb1"],
"version_latest": "1.0.2",
"version": "1.0.0",
"video": false,
"watchdog": true,
"webui": "http://[HOST]:1337/xy/zx",
"signed": false
}
post/addons/<addon>/install
🔒
Install an add-on
Deprecated! Use /store/addons/<addon>/install
instead.
get/addons/<addon>/logo
🔒
Get the add-on logo
post/addons/<addon>/options
🔒
Set the options for an add-on.
To reset customized network/audio/options, set it null
.
Payload:
key | type | description |
---|---|---|
boot | string | (auto, manual) |
auto_update | boolean | true if the add-on should auto update |
network | dictionary | A map of network configuration. |
options | dictionary | The add-on configuration |
audio_output | float or null | The index of the audio output device |
audio_input | float or null | The index of the audio input device |
ingress_panel | boolean | true if ingress_panel is enabled |
watchdog | boolean | true if watchdog is enabled |
You need to supply at least one key in the payload.
Example payload:
{
"boot": "manual",
"auto_update": false,
"network": {
"CONTAINER": "1337"
},
"options": {
"awesome": true
},
"watchdog": true
}
post/addons/<addon>/sys_options
🔒
Change options specific to system managed addons.
This endpoint is only callable by Home Assistant and not by any other client.
Payload
key | type | description |
---|---|---|
system_managed | boolean | true if managed by Home Assistant |
system_managed_config_entry | boolean | ID of config entry managing addon |
You need to supply at least one key in the payload.
Example payload:
{
"system_managed": true,
"system_managed_config_entry": "abc123"
}
post/addons/<addon>/options/validate
🔒
Run a configuration validation against the current stored add-on configuration or payload.
Payload:
Optional the raw add-on options.
Returned data:
key | type | description |
---|---|---|
message | string | Include the error message |
valid | boolean | If config is valid or not |
pwned | boolean | None |
get/addons/<addon>/options/config
🔒
The Data endpoint to get his own rendered configuration.
post/addons/<addon>/rebuild
🔒
Rebuild the add-on, only supported for local build add-ons.
post/addons/<addon>/restart
🔒
Restart an add-on
post/addons/<addon>/security
🔒
Set the protection mode on an add-on.
This function is not callable by itself and you can not use self
as the slug here.
Payload:
key | type | description |
---|---|---|
protected | boolean | true if protection mode is on |
post/addons/<addon>/start
🔒
Start an add-on
get/addons/<addon>/stats
🔒
Returns a Stats model for the add-on.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/addons/<addon>/stdin
🔒
Write data to add-on stdin.
The payload you want to pass into the addon you give the endpoint as the body of the request.
post/addons/<addon>/stop
🔒
Stop an add-on
post/addons/<addon>/uninstall
🔒
Uninstall an add-on
Payload:
key | type | optional | description |
---|---|---|---|
remove_config | boolean | True | Delete addon's config folder (if used) |
post/addons/<addon>/update
🔒
Update an add-on
Deprecated! Use /store/addons/<addon>/update
instead.
Audio
post/audio/default/input
🔒
Set a profile as the default input profile
Payload:
key | type | optional | description |
---|---|---|---|
name | string | False | The name of the profile |
post/audio/default/output
🔒
Set a profile as the default output profile
Payload:
key | type | optional | description |
---|---|---|---|
name | string | False | The name of the profile |
get/audio/info
🔒
Return information about the audio plugin.
Returned data:
key | type | description |
---|---|---|
host | string | The IP address of the plugin |
version | string | The installed observer version |
version_latest | string | The latest published version |
update_available | boolean | true if an update is available |
audio | dictionary | An Audio model |
Example response:
{
"host": "172.0.0.19",
"version": "1",
"latest_version": "2",
"update_available": true,
"audio": {
"card": [
{
"name": "Awesome card",
"index": 1,
"driver": "Awesome driver",
"profiles": [
{
"name": "Awesome profile",
"description": "My awesome profile",
"active": false
}
]
}
],
"input": [
{
"name": "Awesome device",
"index": 0,
"description": "My awesome device",
"volume": 0.3,
"mute": false,
"default": false,
"card": null,
"applications": [
{
"name": "Awesome application",
"index": 0,
"stream_index": 0,
"stream_type": "INPUT",
"volume": 0.3,
"mute": false,
"addon": "awesome_addon"
}
]
}
],
"output": [
{
"name": "Awesome device",
"index": 0,
"description": "My awesome device",
"volume": 0.3,
"mute": false,
"default": false,
"card": 1,
"applications": [
{
"name": "Awesome application",
"index": 0,
"stream_index": 0,
"stream_type": "INPUT",
"volume": 0.3,
"mute": false,
"addon": "awesome_addon"
}
]
}
],
"application": [
{
"name": "Awesome application",
"index": 0,
"stream_index": 0,
"stream_type": "OUTPUT",
"volume": 0.3,
"mute": false,
"addon": "awesome_addon"
}
]
}
}
get/audio/logs
🔒
Get logs for the audio plugin container via the Systemd journal backend.
The endpoint accepts the same headers and provides the same functionality as
/host/logs
.
get/audio/logs/follow
🔒
Identical to /audio/logs
except it continuously returns new log entries.
get/audio/logs/boots/<bootid>
🔒
Get logs for the audio plugin container related to a specific boot.
The bootid
parameter is interpreted in the same way as in
/host/logs/boots/<bootid>
and the endpoint otherwise provides the same
functionality as /host/logs
.
get/audio/logs/boots/<bootid>/follow
🔒
Identical to /audio/logs/boots/<bootid>
except it continuously returns
new log entries.
post/audio/mute/input
🔒
Mute input devices
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
active | boolean | False | true if muted |
post/audio/mute/input/<application>
🔒
Mute input for a specific application
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
active | boolean | False | true if muted |
post/audio/mute/output
🔒
Mute output devices
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
active | boolean | False | true if muted |
post/audio/mute/output/<application>
🔒
Mute output for a specific application
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
active | boolean | False | true if muted |
post/audio/profile
🔒
Create an audio profile
Payload:
key | type | optional | description |
---|---|---|---|
card | string | False | The name of the audio device |
name | string | False | The name of the profile |
post/audio/reload
🔒
Reload audio information
post/audio/restart
🔒
Restart the audio plugin
get/audio/stats
🔒
Returns a Stats model for the audio plugin.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/audio/update
🔒
Update the audio plugin
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
post/audio/volume/input
🔒
Set the input volume
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
volume | float | False | The volume (between 0.0 and 1.0 ) |
post/audio/volume/input/<application>
🔒
Set the input volume for a specific application
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
volume | float | False | The volume (between 0.0 and 1.0 ) |
post/audio/volume/output
🔒
Set the output volume
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
volume | float | False | The volume (between 0.0 and 1.0 ) |
post/audio/volume/output/<application>
🔒
Set the output volume for a specific application
Payload:
key | type | optional | description |
---|---|---|---|
index | string | False | The index of the device |
volume | float | False | The volume (between 0.0 and 1.0 ) |
Auth
get/auth
🔒
You can do authentication against Home Assistant Core using Basic Authentication.
Use the X-Supervisor-Token
header to provide the Supervisor authentication token.
See the corresponding POST method to provide JSON or urlencoded credentials.
post/auth
🔒
You can do authentication against Home Assistant Core.
You can POST the data as JSON, as urlencoded (with application/x-www-form-urlencoded
header) or by using use basic authentication.
For using Basic authentication, you can use the X-Supervisor-Token
for Supervisor authentication token.
Payload:
key | type | description |
---|---|---|
username | string | The username for the user |
password | string | The password for the user |
post/auth/reset
🔒
Set a new password for a Home Assistant Core user.
Payload:
key | type | description |
---|---|---|
username | string | The username for the user |
password | string | The new password for the user |
delete/auth/cache
🔒
Reset internal authentication cache, this is useful if you have changed the password for a user and need to clear the internal cache.
get/auth/list
🔒
List all users in Home Assistant to help with credentials recovery. Requires an admin level authentication token.
Payload:
key | type | description |
---|---|---|
users | list | List of the Home Assistant users. |
Backup
get/backups
🔒
Return a list of Backups
Example response:
{
"backups": [
{
"slug": "skuwe823",
"date": "2020-09-30T20:25:34.273Z",
"name": "Awesome backup",
"type": "partial",
"size": 44,
"protected": true,
"location": "MountedBackups",
"compressed": true,
"content": {
"homeassistant": true,
"addons": ["awesome_addon"],
"folders": ["ssl", "media"]
}
}
]
}
get/backups/info
🔒
Return information about backup manager.
Returned data:
key | type | description |
---|---|---|
backups | list | A list of Backups |
days_until_stale | int | Number of days until a backup is considered stale |
Example response:
{
"backups": [
{
"slug": "skuwe823",
"date": "2020-09-30T20:25:34.273Z",
"name": "Awesome backup",
"type": "partial",
"size": 44,
"protected": true,
"compressed": true,
"location": null,
"content": {
"homeassistant": true,
"addons": ["awesome_addon"],
"folders": ["ssl", "media"]
}
}
],
"days_until_stale": 30
}
post/backups/new/full
🔒
Create a full backup.
Payload:
key | type | optional | description |
---|---|---|---|
name | string | True | The name you want to give the backup |
password | string | True | The password you want to give the backup |
compressed | boolean | True | false to create uncompressed backups |
location | string or null | True | Name of a backup mount or null for /backup |
homeassistant_exclude_database | boolean | True | Exclude the Home Assistant database file from backup |
background | boolean | True | Return job_id immediately, do not wait for backup to complete. Clients must check job for status and slug. |
Example response:
{
"slug": "skuwe823"
}
post/backups/new/upload
🔒
Upload a backup.
Example response:
{
"slug": "skuwe823",
"job_id": "abc123"
}
Error responses from this API may also include a job_id
if the message alone cannot accurately describe what happened.
Callers should direct users to review the job or supervisor logs to get an understanding of what occurred.
post/backups/new/partial
🔒
Create a partial backup.
Payload:
key | type | optional | description |
---|---|---|---|
name | string | True | The name you want to give the backup |
password | string | True | The password you want to give the backup |
homeassistant | boolean | True | Add home assistant core settings to the backup |
addons | list | True | A list of strings representing add-on slugs |
folders | list | True | A list of strings representing directories |
compressed | boolean | True | false to create uncompressed backups |
location | string or null | True | Name of a backup mount or null for /backup |
homeassistant_exclude_database | boolean | True | Exclude the Home Assistant database file from backup |
background | boolean | True | Return job_id immediately, do not wait for backup to complete. Clients must check job for status and slug. |
You need to supply at least one key in the payload.
Example response:
{
"slug": "skuwe823",
"job_id": "abc123"
}
Error responses from this API may also include a job_id
if the message alone cannot accurately describe what happened.
Callers should direct users to review the job or supervisor logs to get an understanding of what occurred.
post/backups/options
🔒
Update options for backup manager, you need to supply at least one of the payload keys to the API call.
Payload:
key | type | description |
---|---|---|
days_until_stale | int | Set number of days until a backup is considered stale |
You need to supply at least one key in the payload.
post/backups/reload
🔒
Reload backup from storage.
post/backups/freeze
🔒
Put Supervisor in a freeze state and prepare Home Assistant and addons for an external backup.
This does not take a backup. It prepares Home Assistant and addons for one but the expectation
is that the user is using an external tool to make the backup. Such as the snapshot feature in
KVM or Proxmox. The caller should call /backups/thaw
when done.
Payload:
key | type | optional | description |
---|---|---|---|
timeout | int | True | Seconds before freeze times out and thaw begins automatically (default: 600). |
post/backups/thaw
🔒
End a freeze initiated by /backups/freeze
and resume normal behavior in Home Assistant and addons.
get/backups/<backup>/download
🔒
Download the backup file with the given slug.
get/backups/<backup>/info
🔒
Returns a Backup details model for the add-on.
delete/backups/<backup>
🔒
Removes the backup file with the given slug.
post/backups/<backup>/restore/full
🔒
Does a full restore of the backup with the given slug.
Payload:
key | type | optional | description |
---|---|---|---|
password | string | True | The password for the backup if any |
background | boolean | True | Return job_id immediately, do not wait for restore to complete. Clients must check job for status. |
Example response:
{
"job_id": "abc123"
}
Error responses from this API may also include a job_id
if the message alone cannot accurately describe what happened.
Callers should direct users to review the job or supervisor logs to get an understanding of what occurred.
post/backups/<backup>/restore/partial
🔒
Does a partial restore of the backup with the given slug.
Payload:
key | type | optional | description |
---|---|---|---|
homeassistant | boolean | True | true if Home Assistant should be restored |
addons | list | True | A list of add-on slugs that should be restored |
folders | list | True | A list of directories that should be restored |
password | string | True | The password for the backup if any |
background | boolean | True | Return job_id immediately, do not wait for restore to complete. Clients must check job for status. |
You need to supply at least one key in the payload.
Example response:
{
"job_id": "abc123"
}
Error responses from this API may also include a job_id
if the message alone cannot accurately describe what happened.
Callers should direct users to review the job or supervisor logs to get an understanding of what occurred.
CLI
get/cli/info
🔒
Returns information about the CLI plugin
Returned data:
key | type | description |
---|---|---|
version | string | The installed cli version |
version_latest | string | The latest published version |
update_available | boolean | true if an update is available |
Example response:
{
"version": "1",
"version_latest": "2",
"update_available": true
}
get/cli/stats
🔒
Returns a Stats model for the CLI plugin.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/cli/update
🔒
Update the CLI plugin
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
Core
get/core/api
🔒
Proxy GET API calls to the Home Assistant API
post/core/api
🔒
Proxy POST API calls to the Home Assistant API
post/core/check
🔒
Run a configuration check
get/core/info
🔒
Returns information about the Home Assistant core
Returned data:
key | type | description |
---|---|---|
version | string | The installed core version |
version_latest | string | The latest published version in the active channel |
update_available | boolean | true if an update is available |
arch | string | The architecture of the host (armhf, aarch64, i386, amd64) |
machine | string | The machine type that is running the host |
ip_address | string | The internal docker IP address to the supervisor |
image | string | The container image that is running the core |
boot | boolean | true if it should start on boot |
port | int | The port Home Assistant is running on |
ssl | boolean | true if Home Assistant is using SSL |
watchdog | boolean | true if watchdog is enabled |
wait_boot | int | Max time to wait during boot |
audio_input | string or null | The description of the audio input device |
audio_output | string or null | The description of the audio output device |
backups_exclude_database | boolean | Backups exclude Home Assistant database file by default |
Example response:
{
"version": "0.117.0",
"version_latest": "0.117.0",
"update_available": true,
"arch": "arch",
"machine": "amd64",
"ip_address": "172.0.0.15",
"image": "homeassistant/home-assistant",
"boot": true,
"port": 8123,
"ssl": false,
"watchdog": true,
"wait_boot": 800,
"audio_input": "AMCP32",
"audio_output": "AMCP32"
}
get/core/logs
🔒
Get logs for the Home Assistant Core container via the Systemd journal backend.
The endpoint accepts the same headers and provides the same functionality as
/host/logs
.
get/core/logs/follow
🔒
Identical to /core/logs
except it continuously returns new log entries.
get/core/logs/boots/<bootid>
🔒
Get logs for the Home Assistant Core container related to a specific boot.
The bootid
parameter is interpreted in the same way as in
/host/logs/boots/<bootid>
and the endpoint otherwise provides the same
functionality as /host/logs
.
get/core/logs/boots/<bootid>/follow
🔒
Identical to /core/logs/boots/<bootid>
except it continuously returns
new log entries.
post/core/options
🔒
Update options for Home Assistant, you need to supply at least one of the payload keys to the API call.
You need to call /core/restart
after updating the options.
Passing image
, refresh_token
, audio_input
or audio_output
with null
resets the option.
Payload:
key | type | description |
---|---|---|
boot | boolean | Start Core on boot |
image | string or null | Name of custom image |
port | int | The port that Home Assistant run on |
ssl | boolean | true to enable SSL |
watchdog | boolean | true to enable the watchdog |
wait_boot | int | Time to wait for Core to startup |
refresh_token | string or null | Token to authenticate with Core |
audio_input | string or null | Profile name for audio input |
audio_output | string or null | Profile name for audio output |
backups_exclude_database | boolean | true to exclude Home Assistant database file from backups |
You need to supply at least one key in the payload.
post/core/rebuild
🔒
Rebuild the Home Assistant core container
Payload:
key | type | optional | description |
---|---|---|---|
safe_mode | boolean | True | Rebuild Core into safe mode |
force | boolean | True | Force rebuild during a Home Assistant offline db migration |
post/core/restart
🔒
Restart the Home Assistant core container
Payload:
key | type | optional | description |
---|---|---|---|
safe_mode | boolean | True | Restart Core into safe mode |
force | boolean | True | Force restart during a Home Assistant offline db migration |
post/core/start
🔒
Start the Home Assistant core container
get/core/stats
🔒
Returns a Stats model for the Home Assistant core.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/core/stop
🔒
Stop the Home Assistant core container
Payload:
key | type | optional | description |
---|---|---|---|
force | boolean | True | Force stop during a Home Assistant offline db migration |
post/core/update
🔒
Update Home Assistant core
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
backup | boolean | Create a partial backup of core and core configuration before updating, default is false |
get/core/websocket
🔒
Proxy to Home Assistant Core websocket.
Discovery
get/discovery
🔒
Return information about enabled discoveries.
Returned data:
key | type | description |
---|---|---|
discovery | list | A list of Discovery models |
services | dictionary | A dictionary of services that contains a list of add-ons that have that service. |
Example response:
{
"discovery": [
{
"addon": "awesome_addon",
"service": "awesome.service",
"uuid": "fh874r-fj9o37yr3-fehsf7o3-fd798",
"config": {}
}
],
"services": {
"awesome": ["awesome_addon"]
}
}
post/discovery
🔒
Create a discovery service
Payload:
key | type | optional | description |
---|---|---|---|
service | string | False | The name of the service |
config | dictionary | False | The configuration of the service |
Example response:
{
"uuid": "uuid"
}
get/discovery/<uuid>
🔒
Get a discovery model for a UUID.
delete/discovery/<uuid>
🔒
Delete a specific service.
DNS
get/dns/info
🔒
Return information about the DNS plugin.
Returned data:
key | type | description |
---|---|---|
fallback | bool | Try fallback DNS on failure |
host | string | The IP address of the plugin |
llmnr | bool | Can resolve LLMNR hostnames |
locals | list | A list of DNS servers |
mdns | bool | Can resolve MulticastDNS hostnames |
servers | list | A list of DNS servers |
update_available | boolean | true if an update is available |
version | string | The installed observer version |
version_latest | string | The latest published version |
Example response:
{
"host": "127.0.0.18",
"version": "1",
"version_latest": "2",
"update_available": true,
"servers": ["dns://8.8.8.8"],
"locals": ["dns://127.0.0.18"],
"mdns": true,
"llmnr": false,
"fallback": true
}
get/dns/logs
🔒
Get logs for the DNS plugin container via the Systemd journal backend.
The endpoint accepts the same headers and provides the same functionality as
/host/logs
.
get/dns/logs/follow
🔒
Identical to /dns/logs
except it continuously returns new log entries.
get/dns/logs/boots/<bootid>
🔒
Get logs for the DNS plugin container related to a specific boot.
The bootid
parameter is interpreted in the same way as in
/host/logs/boots/<bootid>
and the endpoint otherwise provides the same
functionality as /host/logs
.
get/dns/logs/boots/<bootid>/follow
🔒
Identical to /dns/logs/boots/<bootid>
except it continuously returns
new log entries.
post/dns/options
🔒
Set DNS options
Payload:
key | type | optional | description |
---|---|---|---|
fallback | bool | True | Enable/Disable fallback DNS |
servers | list | True | A list of DNS servers |
You need to supply at least one key in the payload.
post/dns/reset
🔒
Reset the DNS configuration.
post/dns/restart
🔒
Restart the DNS plugin
get/dns/stats
🔒
Returns a Stats model for the dns plugin.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/dns/update
🔒
Update the DNS plugin
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
Docker
get/docker/info
🔒
Returns information about the docker instance.
Returned data:
key | type | description |
---|---|---|
version | string | The version of the docker engine |
storage | string | The storage type |
logging | string | The logging type |
registries | dictionary | A dictionary of dictionaries containing username and password keys for registries. |
Example response:
{
"version": "1.0.1",
"storage": "overlay2",
"logging": "journald",
"registries": {}
}
get/docker/registries
🔒
Get all configured container registries, this returns a dict with the registry hostname as the key, and a dictionary containing the username configured for that registry.
Example response:
{
"registry.example.com": {
"username": "AwesomeUser"
}
}
post/docker/registries
🔒
Add a new container registry.
Payload:
key | type | description |
---|---|---|
hostname | dictionary | A dictionary containing username and password keys for the registry. |
Example payload:
{
"registry.example.com": {
"username": "AwesomeUser",
"password": "MySuperStrongPassword!"
}
}
To login to the default container registry (Docker Hub), use hub.docker.com
as the registry.
delete/docker/registries/<registry>
🔒
Delete a registry from the configured container registries.
Hardware
get/hardware/info
🔒
Get hardware information.
Example response:
{
"devices": [
{
"name": "ttyACM0",
"sysfs": "/sys/devices/usb/00:01",
"dev_path": "/dev/ttyACM0",
"by_id": "/dev/serial/by-id/usb-Silicon_Labs-RFUSB_9017F723B061A7C01410CFCF-if00-port1",
"subsystem": "tty",
"parent": null,
"attributes": {
"MINOR": "5"
},
"children": [
"/sys/devices/soc/platform/00ef"
]
}
],
"drives": [
{
"vendor": "Generic",
"model": "Flash Disk",
"revision": "8.07",
"serial": "AABBCCDD",
"id": "Generic-Flash-Disk-AABBCCDD",
"size": 8054112256,
"time_detected": "2023-02-15T21:44:22.504878+00:00",
"connection_bus": "usb",
"seat": "seat0",
"removable": true,
"ejectable": true,
"filesystems": [
{
"device": "/dev/sda1",
"id": "by-uuid-1122-1ABA",
"size": 67108864,
"name": "",
"system": false,
"mount_points": []
}
]
}
]
}
Returned data:
key | description |
---|---|
devices | A list of Device models |
drives | A list of Drive models |
get/hardware/audio
🔒
Get audio devices
Example response:
{
"audio": {
"input": {
"0,0": "Mic"
},
"output": {
"1,0": "Jack",
"1,1": "HDMI"
}
}
}
Host
get/host/info
🔒
Return information about the host.
Returned data
key | type | description |
---|---|---|
agent_version | string or null | Agent version running on the Host |
apparmor_version | string or null | The AppArmor version from host |
boot_timestamp | int | The timestamp for the last boot in microseconds |
broadcast_llmnr | bool or null | Host is broadcasting its LLMNR hostname |
broadcast_mdns | bool or null | Host is broadcasting its MulticastDNS hostname |
chassis | string or null | The chassis type |
virtualization | string or null | Virtualization hypervisor in use (if any) |
cpe | string or null | The local CPE |
deployment | string or null | The deployment stage of the OS if any |
disk_total | float | Total space of the disk in MB |
disk_used | float | Used space of the disk in MB |
disk_free | float | Free space of the disk in MB |
features | list | A list of features available for the host |
hostname | string or null | The hostname of the host |
kernel | string or null | The kernel version on the host |
llmnr_hostname | string or null | The hostname currently exposed on the network via LLMNR for host |
operating_system | string | The operating system on the host |
startup_time | float | The time in seconds it took for last boot |
Example response:
{
"agent_version": "1.2.0",
"apparmor_version": "2.13.2",
"chassis": "specific",
"cpe": "xy",
"deployment": "stable",
"disk_total": 32.0,
"disk_used": 30.0,
"disk_free": 2.0,
"features": ["shutdown", "reboot", "hostname", "services", "haos"],
"hostname": "Awesome host",
"llmnr_hostname": "Awesome host",
"kernel": "4.15.7",
"operating_system": "Home Assistant OS",
"boot_timestamp": 1234567788,
"startup_time": 12.345,
"broadcast_llmnr": true,
"broadcast_mdns": false
}
get/host/logs
🔒
Get systemd Journal logs from the host. Returns log entries in plain text, one log record per line.
HTTP Request Headers
Header | optional | description |
---|---|---|
Accept | true | Type of data (text/plain or text/x-log) |
Range | true | Range of log entries. The format is entries=cursor[[:num_skip]:num_entries] |
To get the last log entries the Range request header supports negative values
as num_skip
. E.g. Range: entries=:-9:
returns the last 10 entries. Or
Range: entries=:-200:100
to see 100 entries starting from the one 200 ago.
API returns the last 100 lines by default. Provide a value for Range
to see
logs further in the past.
The Accept
header can be set to text/x-log
to get logs annotated with
extra information, such as the timestamp and Systemd unit name. If no
identifier is specified (i.e. for the host logs containing logs for multiple
identifiers/units), this option is ignored - these logs are always annotated.
get/host/logs/follow
🔒
Identical to /host/logs
except it continuously returns new log entries.
/host/logs/identifiers
🔒
Returns a list of syslog identifiers from the systemd journal that you can use
with /host/logs/identifiers/<identifier>
and /host/logs/boots/<bootid>/identifiers/<identifier>
.
get/host/logs/identifiers/<identifier>
🔒
Get systemd Journal logs from the host for entries related to a specific log identifier. Some examples of useful identifiers here include
audit
- If developing an apparmor profile shows you permission issuesNetworkManager
- Shows NetworkManager logs when having network issuesbluetoothd
- Shows bluetoothd logs when having bluetooth issues
A call to GET /host/logs/identifiers
will show the complete list of possible
values for identifier
.
Otherwise it provides the same functionality as /host/logs
.
get/host/logs/identifiers/<identifier>/follow
🔒
Identical to /host/logs/identifiers/<identifier>
except it continuously returns
new log entries.
/host/logs/boots
🔒
Returns a dictionary of boot IDs for this system that you can use with
/host/logs/boots/<bootid>
and /host/logs/boots/<bootid>/identifiers/<identifier>
.
The key for each item in the dictionary is the boot offset. 0 is the current boot, a negative number denotes how many boots ago that boot was.
get/host/logs/boots/<bootid>
🔒
Get systemd Journal logs from the host for entries related to a specific boot.
Call GET /host/info/boots
to see the boot IDs. Alternatively you can provide a
boot offset:
- 0 - The current boot
- Negative number - Count backwards from current boot (-1 is previous boot)
- Positive number - Count forward from last known boot (1 is last known boot)
Otherwise it provides the same functionality as /host/logs
.
get/host/logs/boots/<bootid>/follow
🔒
Identical to /host/logs/boots/<bootid>
except it continuously returns
new log entries.
get/host/logs/boots/<bootid>/identifiers/<identifier>
🔒
Get systemd Journal logs entries for a specific log identifier and boot.
A combination of /host/logs/boots/<bootid>
and /host/logs/identifiers/<identifier>
.
get/host/logs/boot/<bootid>/<identifier>/entries/follow
🔒
Identical to /host/logs/boots/<bootid>/identifiers/<identifier>
except it continuously
returns new log entries.
post/host/options
🔒
Set host options
Payload:
key | type | optional | description |
---|---|---|---|
hostname | string | True | A string that will be used as the new hostname |
You need to supply at least one key in the payload.
post/host/reboot
🔒
Reboot the host
Payload:
key | type | optional | description |
---|---|---|---|
force | boolean | True | Force reboot during a Home Assistant offline db migration |
post/host/reload
🔒
Reload host information
post/host/service/<service>/start
🔒
Start a service on the host.
post/host/service/<service>/stop
🔒
Stop a service on the host.
post/host/service/<service>/reload
🔒
Reload a service on the host.
get/host/services
🔒
Get information about host services.
Returned data:
key | description |
---|---|
services | A dictionary of Host service models |
Example response:
{
"services": [
{
"name": "awesome.service",
"description": "Just an awesome service",
"state": "active"
}
]
}
post/host/shutdown
🔒
Shutdown the host
Payload:
key | type | optional | description |
---|---|---|---|
force | boolean | True | Force shutdown during a Home Assistant offline db migration |
Ingress
get/ingress/panels
🔒
Returned data:
key | type | description |
---|---|---|
panels | dictionary | dictionary of Panel models |
Example response:
{
"panels": {
"addon_slug": {
"enable": true,
"icon": "mdi:awesome-icon",
"title": "Awesome add-on",
"admin": true
}
}
}
post/ingress/session
🔒
Create a new session for access to the ingress service.
Payload:
key | type | optional | description |
---|---|---|---|
user_id | string | True | The ID of the user authenticated for the new session |
Returned data:
key | type | optional | description |
---|---|---|---|
session | string | False | The token for the ingress session |
post/ingress/validate_session
🔒
Validate an ingress session, extending it's validity period.
Payload:
key | type | optional | description |
---|---|---|---|
session | string | False | The token for the ingress session |
Jobs
get/jobs/info
🔒
Returns info on ignored job conditions and currently running jobs
Returned data:
key | type | description |
---|---|---|
ignore_conditions | list | List of job conditions being ignored |
jobs | list | List of currently running Jobs |
Example response:
{
"ignore_conditions": [],
"jobs": [{
"name": "backup_manager_full_backup",
"reference": "a01bc3",
"uuid": "123456789",
"progress": 0,
"stage": "addons",
"done": false,
"child_jobs": []
}]
}
post/jobs/options
🔒
Set options for job manager
Payload:
key | type | description |
---|---|---|
ignore_conditions | list | List of job conditions to ignore (replaces existing list) |
post/jobs/reset
🔒
Reset job manager to defaults (stops ignoring any ignored job conditions)
Root
get/available_updates
🔒
Returns information about available updates
Example response:
{
"available_updates": [
{
"panel_path": "/update-available/core",
"update_type": "core",
"version_latest": "321",
},
{
"panel_path": "/update-available/os",
"update_type": "os",
"version_latest": "321",
},
{
"panel_path": "/update-available/supervisor",
"update_type": "supervisor",
"version_latest": "321",
},
{
"name": "Awesome addon",
"icon": "/addons/awesome_addon/icon",
"panel_path": "/update-available/awesome_addon",
"update_type": "addon",
"version_latest": "321",
}
]
}
Returned data:
key | type | description |
---|---|---|
update_type | string | addon , os , core or supervisor |
name | string | Returns the name (only if the update_type is addon ) |
icon | string | Returns the path for the icon if any (only if the update_type is addon ) |
version_latest | string | Returns the available version |
panel_path | string | Returns path where the UI can be loaded |
post/reload_updates
🔒
This reloads information about main components (OS, Supervisor, Core, and Plug-ins).
post/refresh_updates
🔒
This reloads information about add-on repositories and fetches new version files.
This endpoint is currently discouraged. Use /reload_updates
or /store/reload
instead.
get/info
🔒
Returns a dict with selected keys from other /*/info
endpoints.
Returned data:
key | type | description |
---|---|---|
supervisor | string | The installed version of the supervisor |
homeassistant | string | The installed version of Home Assistant |
hassos | string or null | The version of Home Assistant OS or null |
docker | string | The docker version on the host |
hostname | string | The hostname on the host |
operating_system | string | The operating system on the host |
features | list | A list ov available features on the host |
machine | string | The machine type |
arch | string | The architecture on the host |
supported_arch | list | A list of supported host architectures |
supported | boolean | true if the environment is supported |
channel | string | The active channel (stable, beta, dev) |
logging | string | The active log level (debug, info, warning, error, critical) |
state | string | The core state of the Supervisor. |
timezone | string | The current timezone |
Example response:
{
"supervisor": "300",
"homeassistant": "0.117.0",
"hassos": "5.0",
"docker": "24.17.2",
"hostname": "Awesome Hostname",
"operating_system": "Home Assistant OS",
"features": ["shutdown", "reboot", "hostname", "services", "hassos"],
"machine": "ova",
"arch": "amd64",
"supported_arch": ["amd64"],
"supported": true,
"channel": "stable",
"logging": "info",
"state": "running",
"timezone": "Europe/Tomorrowland"
}
Mounts
get/mounts
🔒
Returns information about mounts configured in Supervisor
Returned data:
key | type | description |
---|---|---|
mounts | list | A list of Mounts |
default_backup_mount | string or null | Name of a backup mount or null for /backup |
Example response:
{
"default_backup_mount": "my_share",
"mounts": [
{
"name": "my_share",
"usage": "media",
"type": "cifs",
"server": "server.local",
"share": "media",
"state": "active",
"read_only": false
}
]
}
post/mounts/options
🔒
Set mount manager options
Payload:
key | type | optional | description |
---|---|---|---|
default_backup_mount | string or null | True | Name of a backup mount or null for /backup |
You need to supply at least one key in the payload.
post/mounts
🔒
Add a new mount in Supervisor and mount it
Payload:
Accepts a Mount
Value in name
must be unique and can only consist of letters, numbers and underscores.
Example payload:
{
"name": "my_share",
"usage": "media",
"type": "cifs",
"server": "server.local",
"share": "media",
"username": "admin",
"password": "password",
"read_only": false
}
put/mounts/<name>
🔒
Update an existing mount in Supervisor and remount it
Payload:
Accepts a Mount.
The name
field should be omitted. If included the value must match the existing
name, it cannot be changed. Delete and re-add the mount to change the name.
Example payload:
{
"usage": "media",
"type": "nfs",
"server": "server.local",
"path": "/media/camera",
"read_only": true
}
delete/mounts/<name>
🔒
Unmount and delete an existing mount from Supervisor.
post/mounts/<name>/reload
🔒
Unmount and remount an existing mount in Supervisor using the same configuration.
Multicast
get/multicast/info
🔒
Returns information about the multicast plugin
Returned data:
key | type | description |
---|---|---|
version | string | The installed multicast version |
version_latest | string | The latest published version |
update_available | boolean | true if an update is available |
Example response:
{
"version": "1",
"version_latest": "2",
"update_available": true
}
get/multicast/logs
🔒
Get logs for the multicast plugin via the Systemd journal backend.
The endpoint accepts the same headers and provides the same functionality as
/host/logs
.
get/multicast/logs/follow
🔒
Identical to /multicast/logs
except it continuously returns new log entries.
get/multicast/logs/boots/<bootid>
🔒
Get logs for the multicast plugin related to a specific boot.
The bootid
parameter is interpreted in the same way as in
/host/logs/boots/<bootid>
and the endpoint otherwise provides the same
functionality as /host/logs
.
get/multicast/logs/boots/<bootid>/follow
🔒
Identical to /multicast/logs/boots/<bootid>
except it continuously returns
new log entries.
post/multicast/restart
🔒
Restart the multicast plugin.
get/multicast/stats
🔒
Returns a Stats model for the multicast plugin.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/multicast/update
🔒
Update the multicast plugin
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
Network
get/network/info
🔒
Get network information.
Returned data:
key | description |
---|---|
interfaces | A list of Network interface models |
docker | Information about the internal docker network |
host_internet | Boolean to indicate if the host can reach the internet. |
supervisor_internet | Boolean to indicate if the Supervisor can reach the internet. |
Example response:
{
"interfaces": [
{
"interface": "eth0",
"type": "ethernet",
"primary": true,
"enabled": true,
"connected": true,
"ipv4": {
"method": "static",
"ip_address": "192.168.1.100/24",
"gateway": "192.168.1.1",
"nameservers": ["192.168.1.1"],
},
"ipv6": null,
"wifi": null,
"vlan": null,
}
],
"docker": {
"interface": "hassio",
"address": "172.30.32.0/23",
"gateway": "172.30.32.1",
"dns": "172.30.32.3"
},
"host_internet": true,
"supervisor_internet": true
}
get/network/interface/<interface>/info
🔒
Returns a Network interface model for a specific network interface.
post/network/reload
🔒
Update all Network interface data.
post/network/interface/<interface>/update
🔒
Update the settings for a network interface.
Payload:
key | type | optional | description |
---|---|---|---|
enabled | bool | True | Enable/Disable an ethernet interface / VLAN got removed with disabled |
ipv4 | dict | True | A struct with ipv4 interface settings |
ipv6 | dict | True | A struct with ipv6 interface settings |
wifi | dict | True | A struct with Wireless connection settings |
ipv4 / ipv6:
key | type | optional | description |
---|---|---|---|
method | string | True | Set IP configuration method can be auto for DHCP or Router Advertisements (only IPv6), static or disabled |
address | list | True | The new IP address for the interface in the X.X.X.X/XX format as list |
nameservers | list | True | List of DNS servers to use |
gateway | string | True | The gateway the interface should use |
wifi:
key | type | optional | description |
---|---|---|---|
mode | string | True | Set the mode infrastructure (default), mesh , adhoc or ap |
auth | string | True | Set the auth mode: open (default), web , wpa-psk |
ssid | string | True | Set the SSID for connect into |
psk | string | True | The shared key which is used with web or wpa-psk |
get/network/interface/<interface>/accesspoints
🔒
Return a list of available Access Points on this Wireless interface.
This function only works with Wireless interfaces!
Returned data:
key | description |
---|---|
accesspoints | A list of Access Points |
Example response:
{
"accesspoints": [
{
"mode": "infrastructure",
"ssid": "MY_TestWifi",
"mac": "00:00:00:00",
"frequency": 24675,
"signal": 90
}
]
}
post/network/interface/<interface>/vlan/<id>
🔒
Create a new VLAN id on this network interface.
This function only works with ethernet interfaces!
Payload:
key | type | optional | description |
---|---|---|---|
ipv4 | dict | True | A struct with ipv4 interface settings |
ipv6 | dict | True | A struct with ipv6 interface settings |
Observer
get/observer/info
🔒
Returns information about the observer plugin
Returned data:
key | type | description |
---|---|---|
host | string | The IP address of the plugin |
version | string | The installed observer version |
version_latest | string | The latest published version |
update_available | boolean | true if an update is available |
Example response:
{
"host": "172.0.0.17",
"version": "1",
"version_latest": "2",
"update_available": true
}
get/observer/stats
🔒
Returns a Stats model for the observer plugin.
Example response:
{
"cpu_percent": 14.0,
"memory_usage": 288888,
"memory_limit": 322222,
"memory_percent": 32.4,
"network_tx": 110,
"network_rx": 902,
"blk_read": 12,
"blk_write": 27
}
post/observer/update
🔒
Update the observer plugin
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
OS
post/os/config/sync
🔒
Load host configurations from a USB stick.
get/os/info
🔒
Returns information about the OS.
Returned data:
key | type | description |
---|---|---|
version | string | The current version of the OS |
version_latest | string | The latest published version of the OS in the active channel |
update_available | boolean | true if an update is available |
board | string | The name of the board |
boot | string | Which slot that are in use |
data_disk | string | Device which is used for holding OS data persistent |
boot_slots | dict | Dictionary of boot slots keyed by name |
Example response:
{
"version": "4.3",
"version_latest": "5.0",
"update_available": true,
"board": "ova",
"boot": "slot1",
"data_disk": "BJTD4R-0x123456789",
"boot_slots": {
"A": {
"state": "inactive",
"status": "good",
"version": "10.1"
},
"B": {
"state": "active",
"status": "good",
"version": "10.2"
}
}
}
post/os/update
🔒
Update Home Assistant OS
Payload:
key | type | description |
---|---|---|
version | string | The version you want to install, default is the latest version |
post/os/boot-slot
🔒
Change the active boot slot, This will also reboot the device!
Payload:
key | type | description |
---|---|---|
boot_slot | string | Boot slot to change to. See options in boot_slots from /os/info API. |
get/os/config/swap
🔒
Get current HAOS swap configuration. Unavailable on Supervised.
Returned data:
key | type | description |
---|---|---|
swap_size | string | Current swap size. |
swappiness | int | Current kernel swappiness value. |
Example response:
{
"swap_size": "2G",
"swappiness": 1
}