--- title: "Endpoints" --- For API endpoints marked with :lock: you need use an authorization header with a `Bearer` token. The token is available for add-ons and Home Assistant using the `SUPERVISOR_TOKEN` environment variable. To see more details about each endpoint, click on it to expand it. ### Addons
/addons Return overview information about add-ons and add-on repositories. **Payload:** | key | type | description | | ------------ | ---- | -------------------------------------------------- | | addons | list | A list of [Addon models](api/supervisor/models.md#addon) | | repositories | list | A list of [Repository models](api/supervisor/models.md#repository) | **Example response:** ```json { "addons": [ { "name": "Awesome add-on", "slug": "awesome_addon", "description": "My awesome add-on", "advanced": false, "stage": "stable", "repository": "core", "version": "1.0.1", "installed": null, "detached": true, "available": true, "build": false, "url": null, "icon": false, "logo": false } ], "repositories": [ { "slug": "12345678", "name": "Awesome repository", "source": "https://github.com/awesome/repository", "url": null, "maintainer": "Awesome maintainer " } ] } ```
/addons/reload Reloads the information stored about add-ons.
/addons/[addon]/changelog Get the changelog for a add.on.
/addons/[addon]/documentation Get the documentation for a add.on.
/addons/[addon]/logs Returns the raw container logs from docker.
/addons/[addon]/icon Get the add-on icon
/addons/[addon]/info Get details about a add-on **Returned data:** | key | type | description | | ------------------- | ------------------ | -------------------------------------------------------------------------------------- | | advanced | boolean | `true` if advanced mode is enabled | | apparmor | string | disabled, default or the name of the profile | | arch | list | A list of supported architectures for the add-on | | audio | boolean | `true` if audio is enabled | | audio_input | float or null | The device index | | audio_output | float or null | The device index | | auth_api | boolean | `true` if auth api access is granted is enabled | | auto_uart | boolean | `true` if auto_uart access is granted is enabled | | auto_update | boolean | `true` if auto update is enabled | | available | boolean | `true` if the add-on is available | | boot | string | "boot" or "manual" | | build | boolean | `true` if local add-on | | changelog | boolean | `true` if changelog is available | | description | string | The add-on description | | detached | boolean | `true` if the add-on is running detached | | devices | list | A list of attached devices | | devicetree | boolean | `true` if devicetree access is granted is enabled | | discovery | list | A list of discovery services | | dns | list | A list of DNS servers used by the add-on | | docker_api | boolean | `true` if docker_api access is granted is enabled | | documentation | boolean | `true` if documentation is available | | full_access | boolean | `true` if full access access is granted is enabled | | gpio | boolean | `true` if gpio access is granted is enabled | | hassio_api | boolean | `true` if hassio api access is granted is enabled | | hassio_role | string | The hassio role (default, homeassistant, manager, admin) | | homeassistant | string or null | The minimum Home Assistant Core version | | homeassistant_api | boolean | `true` if homeassistant api access is granted is enabled | | host_dbus | boolean | `true` if host dbus access is granted is enabled | | host_ipc | boolean | `true` if host ipc access is granted is enabled | | host_network | boolean | `true` if host network access is granted is enabled | | host_pid | boolean | `true` if host pid access is granted is enabled | | hostname | string | The host name of the add-on | | icon | boolean | `true` if icon is available | | ingress | boolean | `true` if ingress is enabled | | ingress_entry | string or null | The ingress entrypoint | | ingress_panel | boolean or null | `true` if ingress_panel is enabled | | ingress_port | int or null | The ingress port | | ingress_url | string or null | The ingress URL | | ip_address | string | The IP address of the add-on | | kernel_modules | boolean | `true` if kernel module access is granted is enabled | | logo | boolean | `true` if logo is available | | long_description | string | The long add-on description | | machine | list | A list of supported machine types for the add-on | | name | string | The name of the add-on | | network | dictionary or null | The network configuration for the add-on | | network_description | dictionary or null | The description for the network configuration | | options | dictionary | The add-on configuration | | privileged | list | A list of hardwars/system attributes the add-onn has access to | | protected | boolean | `true` if protection mode is enabled | | rating | int | The addon rating | | repository | string | The URL to the add-on repository | | schema | dictionary or null | The schema for the add-on configuration | | services_role | list | A list of services and the add-ons role for that service | | slug | string | The add-on slug | | stage | string | The add-on stage (stable, experimental, deprecated) | | startup | string | The stage when the add-on is started (initialize, system, services, application, once) | | state | string or null | The state of the add-on (started, stopped) | | stdin | boolean | `true` if the add-on accepts stdin commands | | udev | boolean | `true` if udev access is granted is enabled | | url | string or null | URL to more information about the add-on | | usb | list | A list of attached USB devices | | version | string | The installed version of the add-on | | version_latest | string | The latest version of the add-on | | video | boolean | `true` if video is enabled | | watchdog | boolean | `true` if watchdog is enabled | | webui | string or null | The URL to the web UI for the add-on | **Example response:** ```json { "advanced": false, "apparmor": "default", "arch": ["armhf", "aarch64", "i386", "amd64"], "audio_input": null, "audio_output": null, "audio": false, "auth_api": false, "auto_uart": false, "auto_update": false, "available": false, "boot": "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, "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, "udev": 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" } ```
/addons/[addon]/install Install a add-on
/addons/[addon]/logo Get the add-on logo
/addons/[addon]/options Set the protection mode on a add-on. This function is not callable by itself and you can not use `self` as the slug here. :::tip 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 | string | The path for the ingress panel | | watchdog | boolean | `true` if watchdog is enabled | **You need to supply at least one key in the payload.** **Example payload:** ```json { "boot": "manual", "auto_update": false, "network": { "CONTAINER": "1337" }, "options": { "awesome": true }, "watchdog": true } ```
/addons/[addon]/options/validate Run a configuration validation against the current stored add-on configuration.
/addons/[addon]/rebuild Rebuild the add-on, only supported for local build add-ons.
/addons/[addon]/restart Restart a add-on
/addons/[addon]/security Set the protection mode on a 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 |
/addons/[addon]/start Start a add-on
/addons/[addon]/stats Returns a [Stats model](api/supervisor/models.md#stats) for the add-on. **Example response:** ```json { "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 } ```
/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.
/addons/[addon]/stop Stop a add-on
/addons/[addon]/uninstall Uninstall a add-on
/addons/[addon]/update Update a add-on
### Audio
/audio/default/input Set a profile as the default input profile **Payload:** | key | type | optional | description | | ---- | ------ | -------- | ----------------------- | | name | string | False | The name of the profile |
/audio/default/output Set a profile as the default output profile **Payload:** | key | type | optional | description | | ---- | ------ | -------- | ----------------------- | | name | string | False | The name of the profile |
/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 | | audio | dictionary | A [Audio model](api/supervisor/models.md#audio) | **Example response:** ```json { "host": "172.0.0.19", "version": "1", "latest_version": "2", "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" } ] } } ```
/audio/logs Returns the raw container logs from docker.
/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 |
/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 |
/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 |
/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 |
/audio/profile Create a audio profile **Payload:** | key | type | optional | description | | ---- | ------ | -------- | ---------------------------- | | card | string | False | The name of the audio device | | name | string | False | The name of the profile |
/audio/reload Reload audio information
/audio/restart Restart the audio plugin
/audio/stats Returns a [Stats model](api/supervisor/models.md#stats) for the audio plugin. **Example response:** ```json { "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 } ```
/audio/update Update the audio plugin **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
/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`) |
/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`) |
/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`) |
/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
/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. **Payload:** | key | type | description | | -------- | ------ | ------------------------- | | username | string | The username for the user | | password | string | The password for the user |
/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 |
### CLI
/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 | **Example response:** ```json { "version": "1", "version_latest": "2" } ```
/cli/stats Returns a [Stats model](api/supervisor/models.md#stats) for the CLI plugin. **Example response:** ```json { "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 } ```
/cli/update Update the CLI plugin **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### Core
/core/api Proxy GET API calls to the Home Assistant API
/core/api Proxy POST API calls to the Home Assistant API
/core/check Run a configuration check
/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 | | 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 | **Example response:** ```json { "version": "0.117.0", "version_latest": "0.117.0", "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" } ```
/core/logs Returns the raw container logs from docker.
/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. :::tip Passing `image` with `null` and `version_latest` with `null` resets these options. ::: **Payload:** | key | type | description | | -------------- | -------------- | ----------------------------------- | | image | string | Name of custom image or null | | version_latest | string or null | Optional for custom image or null | | port | string | The port that Home Assistant run on | | ssl | boolean | `true` if SSL is enabled | | watchdog | boolean | `true` if watchdog is enabled | | audio_input | string or null | Profile name for audio input | | audio_output | string or null | Profile name for audio output | **You need to supply at least one key in the payload.**
/core/rebuild Rebuild the Home Assistant core container
/core/restart Restart the Home Assistant core container
/core/start Start the Home Assistant core container
/core/stats Returns a [Stats model](api/supervisor/models.md#stats) for the Home Assistant core. **Example response:** ```json { "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 } ```
/core/stop Stop the Home Assistant core container
/core/update Update Home Assistant core **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
/core/websocket Proxy to Home Assistant Core websocket.
### Discovery
/discovery Return information about enabled discoveries. **Returned data:** | key | type | description | | --------- | ---------- | ------------------------------------------------------------------------------- | | discovery | list | A list of [Discovery models](api/supervisor/models.md#discovery) | | services | dictionary | A dictionary of services that contains a list of add-ons that have that service. | **Example response:** ```json { "discovery": [ { "addon": "awesome_addon", "service": "awesome.service", "uuid": "fh874r-fj9o37yr3-fehsf7o3-fd798", "config": {} } ], "services": { "awesome": ["awesome_addon"] } } ```
/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:** ```json { "uuid": "uuid" } ```
/discovery/[uuid] Get a [discovery model](api/supervisor/models.md#discovery) for a UUID.
/discovery/[uuid] Delete a specific service.
### DNS
/dns/info Return information about the DNS 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 | | servers | list | A list of DNS servers | | locals | list | A list of DNS servers | **Example response:** ```json { "host": "127.0.0.18", "version": "1", "version_latest": "2", "servers": ["dns://8.8.8.8"], "locals": ["dns://127.0.0.18"] } ```
/dns/logs Returns the raw container logs from docker.
/dns/options Set DNS options **Payload:** | key | type | optional | description | | ------- | ---- | -------- | --------------------- | | servers | list | True | A list of DNS servers | **You need to supply at least one key in the payload.**
/dns/reset Reset the DNS configuration.
/dns/restart Restart the DNS plugin
/dns/stats Returns a [Stats model](api/supervisor/models.md#stats) for the dns plugin. **Example response:** ```json { "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 } ```
/dns/update Update the DNS plugin **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### Docker
/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:** ```json { "version": "1.0.1", "storage": "overlay2", "logging": "journald", "registries": {} } ```
/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:** ```json { "registry.example.com": { "username": "AwesomeUser" } } ```
/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:** ```json { "registry.example.com": { "username": "AwesomeUser", "password": "MySuperStrongPassword!" } } ```
/docker/registries/[registry] Delete a registry from the configured container registries.
### Hardware
/hardware/info Get hardware information. **Example response:** ```json { "serial": ["/dev/xy"], "input": ["Input device name"], "disk": ["/dev/sdax"], "gpio": ["gpiochip0", "gpiochip100"], "audio": { "CARD_ID": { "name": "xy", "type": "microphone", "devices": [ "chan_id": "channel ID", "chan_type": "type of device" ] } } } ```
/hardware/audio Get audio devices **Example response:** ```json { "audio": { "input": { "0,0": "Mic" }, "output": { "1,0": "Jack", "1,1": "HDMI" } } } ```
/hardware/trigger Trigger UDEV reload.
### Host
/host/info Return information about the host. **Returned data** | key | type | description | | ---------------- | -------------- | ----------------------------------------- | | chassis | string or null | The chassis type | | 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 | | operating_system | string | The operating system on the host | **Example response:** ```json { "chassis": "specific", "cpe": "xy", "deployment": "stable", "disk_total": 32.0, "disk_used": 30.0, "disk_free": 2.0, "features": ["shutdown", "reboot", "hostname", "services", "hassos"], "hostname": "Awesome host", "kernel": "4.15.7", "operating_system": "Home Assistant OS" } ```
/host/logs Get the dmesg logs from the host.
/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.**
/host/reboot Reboot the host
/host/reload Reload host information
/host/service/[service]/start Start a service on the host.
/host/service/[service]/stop Stop a service on the host.
/host/service/[service]/reload Reload a service on the host.
/host/services Get information about host services. **Returned data:** | key | description | | -------- | ------------------------------------------------------------ | | services | A dictionary of [Host service models](api/supervisor/models.md#host-service) | **Example response:** ```json { "services": [ { "name": "awesome.service", "description": "Just an awesome service", "state": "active" } ] } ```
/host/shutdown Shutdown the host
### ingress
/ingress/panels **Returned data:** | key | type | description | | ------ | ---------- | -------------------------------------------- | | panels | dictionary | dictionary of [Panel models](api/supervisor/models.md#panel) | **Example response:** ```json { "panels": { "addon_slug": { "enable": true, "icon": "mdi:awesome-icon", "title": "Awesome add-on", "admin": true } } } ```
/ingress/session Create a new session for access to the ingress service. **Payload:** | key | type | optional | description | | ------- | ------ | -------- | --------------------------------- | | session | string | False | The token for the ingress session |
### Misc
/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) | | timezone | string | The current timezone | **Example response:** ```json { "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", "timezone": "Europe/Tomorrowland" } ```
/resolution **Returned data:** | key | type | description | | -------- | ---------- | ------------------------------------------------ | | unsupported | list | A list of reasons why a installation is marked as unsupported (container, dbus, docker_configuration, docker_version, lxc, network_manager, os, privileged, systemd) | **Example response:** ```json { "unsupported": ["os"] } ```
### Multicast
/multicast/info Returns information about the multicast plugin **Returned data:** | key | type | description | | -------------- | ------ | ------------------------------ | | version | string | The installed observer version | | version_latest | string | The latest published version | **Example response:** ```json { "version": "1", "version_latest": "2" } ```
/multicast/logs Returns the raw container logs from docker.
/multicast/restart Restart the multicast plugin.
/multicast/stats Returns a [Stats model](api/supervisor/models.md#stats) for the multicast plugin. **Example response:** ```json { "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 } ```
/multicast/update Update the multicast plugin **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### Network
/network/info Get network information. **Returned data:** | key | description | | ---------- | ---------------------------------------------------------------------- | | interfaces | A dictionary of [Network interface models](api/supervisor/models.md#network-interface) | **Example response:** ```json { "interfaces": { "eth0": { "ip_address": "192.168.1.100/24", "gateway": "192.168.1.1", "id": "Wired connection 1", "type": "802-3-ethernet", "nameservers": ["192.168.1.1"], "method": "static", "primary": true } } } ```
/network/[interface]/info Returns a [Network interface model](api/supervisor/models.md#network-interface) for a specific network interface.
/network/[interface]/update Update the settings for a network interface. **Payload:** | key | type | optional | description | | ------- | ------ | -------- | ---------------------------------------------------------------------- | | address | string | True | The new IP address for the interface in the X.X.X.X/XX format | | dns | list | True | List of DNS servers to use | | gateway | string | True | The gateway the interface should use | | method | string | True | Set if the interface should use DHCP or not, can be `dhcp` or `static` | **You need to supply at least one key in the payload.** :::warning If you change the `address` or `gateway` you may need to reconnect to the new address ::: When the call is complete it returns the changed [Network interface model](api/supervisor/models.md#network-interface). **Example response:** ```json { "ip_address": "192.168.1.100/24", "gateway": "192.168.1.1", "id": "Wired connection 1", "type": "802-3-ethernet", "nameservers": ["192.168.1.1"], "method": "static", "primary": true } ```
### Observer
/observer/info Returns information about the observer plugin **Returned data:** | key | type | description | | -------------- | ------ | ----------------------------------------- | | host | string | The IP address the observer is running on | | version | string | The installed observer version | | version_latest | string | The latest published version | **Example response:** ```json { "host": "172.0.0.17", "version": "1", "version_latest": "2" } ```
/observer/stats Returns a [Stats model](api/supervisor/models.md#stats) for the observer plugin. **Example response:** ```json { "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 } ```
/observer/update Update the observer plugin **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### OS
/os/config/sync Load host configurations from an USB stick.
/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 | | board | string | The name of the board | | boot | string | Which slot that are in use | **Example response:** ```json { "version": "4.3", "version_latest": "5.0", "board": "ova", "boot": "slot1" } ```
/os/update Update Home Assistant OS **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### Service
/services **Returned data:** | key | type | description | | -------- | ---------- | ------------------------------------------------ | | services | dictionary | dictionary of [Service models](api/supervisor/models.md#service) | **Example response:** ```json { "services": [ { "slug": "name", "available": true, "providers": ["awesome_addon"] } ] } ```
/services/mqtt **Returned data:** | key | type | description | | -------- | ------- | --------------------------------------- | | addon | string | The add-on slug | | host | string | The IP of the addon running the service | | port | string | The port the service is running on | | ssl | boolean | `true` if SSL is in use | | username | string | The username for the service | | password | string | The password for the service | | protocol | string | The MQTT protocol | **Example response:** ```json { "addon": "awesome_mqtt", "host": "172.0.0.17", "port": "8883", "ssl": true, "username": "awesome_user", "password": "strong_password", "protocol": "3.1.1" } ```
/services/mqtt Create a service definition **Payload:** | key | type | description | | -------- | ------- | --------------------------------------- | | host | string | The IP of the addon running the service | | port | string | The port the service is running on | | ssl | boolean | `true` if SSL is in use | | username | string | The username for the service | | password | string | The password for the service | | protocol | string | The MQTT protocol |
/services/mqtt Deletes the service definitions
/services/mysql **Returned data:** | key | type | description | | -------- | ------- | --------------------------------------- | | addon | string | The add-on slug | | host | string | The IP of the addon running the service | | port | string | The port the service is running on | | ssl | boolean | `true` if SSL is in use | | username | string | The username for the service | | password | string | The password for the service | | protocol | string | The MQTT protocol | **Example response:** ```json { "addon": "awesome_mysql", "host": "172.0.0.17", "port": "8883", "username": "awesome_user", "password": "strong_password" } ```
/services/mysql Create a service definition **Payload:** | key | type | description | | -------- | ------ | --------------------------------------- | | host | string | The IP of the addon running the service | | port | string | The port the service is running on | | username | string | The username for the service | | password | string | The password for the service |
/services/mysql Deletes the service definitions
### Snapshot
/snapshots Return a list of [Snapshot models](api/supervisor/models.md#snapshot) **Example response:** ```json { "snapshots": [ { "slug": "skuwe823", "date": "2020-09-30T20:25:34.273Z", "name": "Awesome snapshot", "type": "full", "protected": true } ] } ```
/snapshots/new/full Create a full snapshot. **Payload:** | key | type | optional | description | | -------- | ------ | -------- | ------------------------------------------ | | name | string | True | The name you want to give the snapshot | | password | string | True | The password you want to give the snapshot | **Example response:** ```json { "slug": "skuwe823" } ```
/snapshots/new/upload Upload a snapshot. **Example response:** ```json { "slug": "skuwe823" } ```
/snapshots/new/partial Create a partial snapshot. **Payload:** | key | type | optional | description | | -------- | ------ | -------- | ------------------------------------------- | | name | string | True | The name you want to give the snapshot | | password | string | True | The password you want to give the snapshot | | addons | list | True | A list of strings representing add-on slugs | | folders | list | True | A list of strings representing directories | **You need to supply at least one key in the payload.** **Example response:** ```json { "slug": "skuwe823" } ```
/snapshots/reload Reload snapshots from storage.
/snapshots/[snapshot]/download Download the snapshot file with the given slug.
/snapshots/[snapshot]/info Returns a [Snapshot details model](api/supervisor/models.md#snapshot-details) for the add-on.
/snapshots/[snapshot] Removes the snapshot file with the given slug.
/snapshots/[snapshot]/restore/full Does a full restore of the snapshot with the given slug. **Payload:** | key | type | optional | description | | -------- | ------ | -------- | ------------------------------------ | | password | string | True | The password for the snapshot if any |
/snapshots/[snapshot]/restore/partial Does a partial restore of the snapshot 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 snapshot if any | **You need to supply at least one key in the payload.**
### Supervisor
/supervisor/info Returns information about the supervisor **Returned data:** | key | type | description | | ------------------- | ------------ | ------------------------------------------------------------- | | version | string | The installed supervisor version | | version_latest | string | The latest published version in the active channel | | arch | string | The architecture of the host (armhf, aarch64, i386, amd64) | | channel | string | The active channel (stable, beta, dev) | | timezone | string | The current timezone | | healthy | bool | The supervisor is in a healthy state | | supported | bool | The environment is supported | | logging | string | The current log level (debug, info, warning, error, critical) | | ip_address | string | The internal docker IP address to the supervisor | | wait_boot | int | Max time to wait during boot | | debug | bool | Debug is active | | debug_block | bool | `true` if debug block is enabled | | diagnostics | bool or null | Sending diagnostics is enabled | | addons | list | A list of installed [Addon models](api/supervisor/models.md#addon) | | addons_repositories | list | A list of add-on repository URL's as strings | **Example response:** ```json { "version": "246", "version_latest": "version_latest", "arch": "amd64", "channel": "dev", "timezone": "TIMEZONE", "healthy": true, "supported": false, "logging": "debug", "ip_address": "172.0.0.2", "wait_boot": 800, "debug": false, "debug_block": false, "diagnostics": null, "addons": [ { "name": "Awesome add-on", "slug": "7kshd7_awesome", "description": "Awesome description", "repository": "https://example.com/addons", "version": "1.0.0", "installed": "1.0.0", "icon": false, "logo": true, "state": "started" } ], "addons_repositories": ["https://example.com/addons"] } ```
/supervisor/logs Returns the raw container logs from docker.
/supervisor/options Update options for the supervisor, you need to supply at least one of the payload keys to the API call. You need to call `/supervisor/reload` after updating the options. **Payload:** | key | type | description | | ------------------- | ------ | ------------------------------------------------------ | | channel | string | Set the active channel (stable, beta, dev) | | timezone | string | Set the timezone | | wait_boot | int | Set the time to wait for boot | | debug | bool | Enable debug | | debug_block | bool | Enable debug block | | logging | string | Set logging level | | addons_repositories | list | Set a list of URL's as strings for add-on repositories |
/supervisor/ping Ping the supervisor to check if it can return a response.
/supervisor/reload Reload parts of the supervisor, this enable new options, and check for updates.
/supervisor/repair Repair docker overlay issues, and lost images.
/supervisor/stats Returns a [Stats model](api/supervisor/models.md#stats) for the supervisor. **Example response:** ```json { "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 } ```
/supervisor/update Update the supervisor **Payload:** | key | type | description | | ------- | ------ | -------------------------------------------------------------- | | version | string | The version you want to install, default is the latest version |
### Placeholders Some of the endpoints uses placeholders indicated with `[]` in the endpoint URL. | placeholder | description | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | addon | The slug for the addon, to get the slug you can call `/addons`, to call endpoints for the add-on calling the endpoints you can use `self`as the slug. | | application | The name of a application, call `/audio/info` to get the correct name | | interface | A valid interface name, example `eth0`, to get the interface name you can call `/network/info` | | registry | A registry hostname defined in the container registry configuration, to get the hostname you can call `/docker/registries` | | service | The service name for a service on the host. | | snapshot | A valid snapshot slug, example `skuwe823`, to get the slug you can call `/snapshots` | | uuid | The UUID of a discovery service, to get the UUID you can call `/discovery` |