Joakim Sørensen 7253f7ad6f
Add /resolution endpoint (#681)
* Add unsupported reason

* Add to example

* Add resolution endpoint
2020-10-13 12:57:48 +02:00

64 KiB

title
Endpoints

For API endpoints marked with 🔒 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
repositories list A list of Repository models

Example response:

{
  "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 <awesome@example.com>"
    }
  ]
}
/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:

{
  "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:

{
  "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 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
}
/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

Example response:

{
  "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 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
}
/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.0and 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.0and 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.0and 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.0and 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:

{
  "version": "1",
  "version_latest": "2"
}
/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
}
/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:

{
  "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 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
}
/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
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"]
  }
}
/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"
}
/discovery/[uuid]

Get a discovery model 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:

{
  "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 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
}
/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:

{
  "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:

{
  "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:

{
  "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:

{
    "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:

{
  "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:

{
  "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

Example response:

{
  "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

Example response:

{
  "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:

{
  "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:

{
  "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:

{
  "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 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
}
/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

Example response:

{
  "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 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.

Example response:

{
  "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:

{
  "host": "172.0.0.17",
  "version": "1",
  "version_latest": "2"
}
/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
}
/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:

{
  "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

Example response:

{
  "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:

{
  "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:

{
  "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

Example response:

{
  "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:

{
  "slug": "skuwe823"
}
/snapshots/new/upload

Upload a snapshot.

Example response:

{
  "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:

{
  "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 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
addons_repositories list A list of add-on repository URL's as strings

Example response:

{
  "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 for the supervisor.

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
}
/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 selfas 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