WebAPI for Multi-room Streaming Amplifier
A Web API for Multi-room Streaming Amplifier is a set of rules and protocols that allow different software applications to interact with OpenAudio Multi-room Streaming Amplifier over the internet, typically using HTTP or HTTPS. It acts as a middleman, enabling communication and data exchange between a client (like a web browser or mobile app) and a server (which might host a database or other services).
OpenAudio Web API for Multi-room Streaming Amplifier or Whole Home Audio System, support all HOLOWHAS series products: HOLOWHAS, HOLOWHAS Ultra, HOLOWHAS Plus, HOLOWHAS Max, HOLOWHAS Ultra-GC, HOLOWHAS Plus-GC, and AVR-16200.
OpenAudio Web API for Multi-room Streaming Amplifier or Whole Home Audio System is R RESTful APIs. REST (Representational State Transfer) is an architectural style that uses standard HTTP methods (GET, POST, PUT, DELETE) to perform operations on resources. RESTful APIs are stateless and utilize URLs to identify and manipulate resources. They are widely used and known for their simplicity, scalability, and compatibility.
HOLO Series Streamer Web API
V1.0.3
Change Log
1.0.3 Add get/set input source name command. April 30, 2025
Index
Devices 6
/api/v3/devices/ 6
/api/v3/devices/info 7
/api/v3/devices/server 10
/api/v3/devices/server-lock 11
/api/v3/devices/server-lock (Not implement temporary) 12
/api/v3/devices/update/latest (Not implement temporary) 13
/api/v3/devices/update/schedule (Not implement temporary) 14
/api/v3/devices/update/status (Not implement temporary) 15
/api/v3/devices/upload_logs (Not implement temporary) 16
/api/v3/devices/{device_id}/attributes 17
/api/v3/devices/{device_id}/available_aps (Not implement temporary) 19
/api/v3/devices/{device_id}/config 20
/api/v3/devices/{device_id}/connection 21
/api/v3/devices/{device_id}/features (Not implement temporary) 23
/api/v3/devices/{device_id}/metrics 24
/api/v3/devices/{device_id}/model 25
/api/v3/devices/{device_id}/name (Not implement temporary) 26
/api/v3/devices/{device_id}/password (Not implement temporary) 27
/api/v3/devices/{device_id}/reboot 28
/api/v3/devices/{device_id}/remote_debug 29
/api/v3/devices/{device_id}/remote_debug 30
/api/v3/devices/{device_id}/reset (Not implement temporary) 31
/api/v3/devices/{device_id}/reset (Not implement temporary) 32
/api/v3/devices/{device_id}/run-diagnostics (Not implement temporary) 33
/api/v3/devices/{device_id}/update_status (Not implement temporary) 34
/api/v3/devices/{device_id}/wifi 35
Inputs 36
/api/v3/inputs/ 36
/api/v3/inputs/info 38
/api/v3/inputs/notify (Not implement temporary) 39
/api/v3/inputs/subscribe (Not implement temporary) 40
/api/v3/inputs/unsubscribe (Not implement temporary) 41
/api/v3/inputs/{input_id} 42
/api/v3/inputs/{input_id}/available-types 44
/api/v3/inputs/{input_id}/enable (Not implement temporary, Always enable) 45
/api/v3/inputs/{input_id}/name (Not implement temporary) 46
/api/v3/inputs/{input_id}/restart (Not implement temporary) 47
/api/v3/inputs/{input_id}/type 48
/api/v3/inputs/{input_id}/types 49
/api/v3/inputs/{input_id}/volume 50
/api/v3/inputs/{input_id}/zone/add 51
/api/v3/inputs/{input_id}/zone/remove 52
/api/v3/inputs/name 53
/api/v3/inputs/name 54
/api/v3/inputs/{input_id}/name 55
/api/v3/inputs/{input_id}/name 56
Zones 57
/api/v3/zones/ 57
/api/v3/zones/info 58
/api/v3/zones/notify (Not implement temporary) 63
/api/v3/zones/subscribe (Not implement temporary) 64
/api/v3/zones/unsubscribe (Not implement temporary) 65
/api/v3/zones/{zone_id} 66
/api/v3/zones/{zone_id}/enable (Not implement temporary) 68
/api/v3/zones/{zone_id}/icon_id (Not implement temporary) 69
/api/v3/zones/{zone_id}/input 70
/api/v3/zones/{zone_id}/input/active 71
/api/v3/zones/{zone_id}/input/active 72
/api/v3/zones/{zone_id}/input/add 73
/api/v3/zones/{zone_id}/input/remove 74
/api/v3/zones/{zone_id}/input/streaming 75
/api/v3/zones/{zone_id}/input/{input_type}/enable (Not implement temporary) 76
/api/v3/zones/{zone_id}/mute 77
/api/v3/zones/{zone_id}/name 78
/api/v3/zones/{zone_id}/volume 79
/api/v3/zones/{zone_id}/volume_eq 80
/api/v3/zones/{zone_id}/warnings 82
Devices
GET /api/v3/devices/
Get the device ids of the HoloCast system
This will return the device id of all HoloCast in the system.
Parameters
No parameters
Responses
Code Description
200 Successfully retrieved the device id of all HoloCast Example Value Model
{
"device_ids": [ "string"
}
Example {
]
“deice_ids”:[ “DynamoAmp-00001”
]
}
GET /api/v3/devices/info
Get information on all HoloCast devices
Returns information on all HoloCast devices in the network. The information consolidates DeviceAttributes, DeviceMetrics, DeviceConnection, and DeviceConfig
Parameters
No parameters
Responses
Code Description
200 Successfully retrieved the consolidated info on all devices in the HoloCast network Example Value Model
[
{
"attributes": { "adapter1_mac": "string", "adapter2_mac": "string", "device_id": "string", "eth_mac": "string",
"firmware_version": "string", "serial_number": "string", "wlan_mac": "string"
},
"config": {
"device_id": "string", "is_server": true, "locked_server": true, "name": "string", "remote_debug": true, "ssid": "string"
},
"connection": { "device_id": "string", "id": 0,
"ip_address": "string", "signal_strength": 0, "ssid": "string",
"type": "none",
"uptime": 0
},
"device_id": "string", "metrics": {
"cpu_usage": 0, "device_id": "string", "disk_usage": 0,
"internal_temp": 0,
"ram_usage": 0
]
Example [
"
}
}
{
"attributes": {
"adapter1_mac": "D8:3A:DD:40:A8:0B", "adapter2_mac": "",
"device_id": "DynamoAmp-DEV99", "eth_mac": "d8:3a:dd:40:a8:09", "firmware_version": "1.0.9", "serial_number": "DEV99", "wlan_mac": "d8:3a:dd:40:a8:0a"
},
"config": {
"device_id": "DynamoAmp-DEV99", "is_server": true,
"locked_server": true, "name": "", "remote_debug": false, "ssid": ""TP-LINK_Leonis"
},
"connection": {
"device_id": "DynamoAmp-DEV99", "id": 0,
"ip_address": "192.168.0.115
",
"signal_strength": 65., "ssid": ""TP-LINK_Leonis"
",
"type": "none", "uptime": 0
},
"device_id": "DynamoAmp-DEV99", "metrics": {
"cpu_usage": 0,
"device_id": "DynamoAmp-DEV99", "disk_usage": 0,
"internal_temp": 0,
"ram_usage": 0
}
}
]
400 The provided device id does not exist Example Value Model
string
Get the server HoloCast device id
Gets the device id of the server HoloCast .
Under the hood, this will simply return the device id of the device that is hosting the API, which should always be the server HoloCast .
Parameters
No parameters
Responses
Code Description
200 Successfully retrieved the device id of the server HoloCast Example Value Model
{
"device_ids": [ "string"
}
Example {
]
"device_ids":[ "DynamoAmp-DEV99"
]
}
Gets the HoloCast that are locked in as a server
Note: this should always return a list with a single entry for the server's device id. If not, then the system is in an invalid state.
Parameters
No parameters
Responses
Code Description
200 A list of device_ids with a single entry for the server Example Value Model
{
"device_ids": [ "string"
}
Example {
]
"device_ids":[ "DynamoAmp-DEV99"
]
}
Lock in a HoloCast as server
Sets which HoloCast will persist as a server. Note that this will cause some instability in the system while the devices are reconfiguring their
server-client relationships. The system should settle after 10-15 seconds. To clear any servers, pass a null value to the device id query field
Parameters
Name Description
device_id * (body)
The id of the device to lock as a server Example Value Model
{
"device_id": "string"
}
Responses
Code Description
200 Successfully set the server HoloCast
400 The provided device id does not exist Example Value
Model string
Checks for the latest firmware version that the HoloCast system can update to Returns an empty name and description if no update is available
Parameters
No parameters
Responses
Code Description
200 The latest available firmware version for the HoloCast system. An empty string is returned if the system is up to date
Example Value Model
{
"description": "string", "description_md": "string", "name": "string"
}
Schedules an update for the devices in the system to the latest version Nothing will be done if the system is already up to date
Parameters
No parameters
Responses
Code Description
200 Update has successfully been scheduled or the unit is already up to date Example Value Model
string
Returns a summary of the current update status of the system of HoloCast The states are as follows:
-updating:
-All units report their update status as 'updating' or 'success'
-updating_w_failure
-At least update status is 'updating' and at least one other is 'failed' or 'error'
-complete_w_success
-All update statuses are 'idle' or 'success'
-complete_w_failure
-No update statuses are 'updating' and at least one is 'failed' or 'error'
-idle:
-All update statuses are 'idle'
Parameters
No parameters
Responses
Code Description
200 The latest available firmware version for the HoloCast system. An empty string is returned if the system is up to date
Example Value Model updating
Uploads the device logs for all HoloCast in the system
Parameters
Name Description
Log context * (body)
The context for the logs that are being uploaded Example Value Model
{
"context": "string",
"email": "string", "first_name": "string", "last_name": "string"
}
Responses
Code Description
200 Uploads the device logs for all HoloCast in the system Example Value Model
string
Get Device Attributes
Gets the attributes of the HoloCast. These fields help to uniquely identify the HoloCast and are not configurable.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Successfully retrieved the attributes of a given device. Returns a single-entry list of device ids.
Example Value Model
{
}
Example {
}
"adapter1_mac": "string", "adapter2_mac": "string", "device_id": "string", "eth_mac": "string", "firmware_version": "string", "serial_number": "string", "wlan_mac": "string"
"adapter1_mac": "D8:3A:DD:40:A8:0B", "adapter2_mac": "",
"device_id": "DynamoAmp-DEV99", "eth_mac": "d8:3a:dd:40:a8:09", "firmware_version": "1.0.9", "serial_number": "DEV99", "wlan_mac": "d8:3a:dd:40:a8:0a"
400 The provided device id does not exist Example Value Model
Code Description string
implement temporary)
Gets the list of available access points, and their signal strengths
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Returns the list of available access points, and their signal strengths
400 The provided device id does not exist Example Value Model
[
{
"rss": 0,
"ssid": "string"
}
]
Get Device Config
Gets the current configurations of the HoloCast.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Successfully retrieved the configurations of a given device Example Value Model
{
}
Example {
}
"device_id": "string", "is_server": true, "locked_server": true, "name": "string", "remote_debug": true, "ssid": "string"
"device_id": "DynamoAmp-DEV99", "is_server": true,
"locked_server": true, "name": "", "remote_debug": false, "ssid": "TP-LINK_Leonis"
400 The provided device id does not exist Example Value Model
string
Get Device Connection Information
Returns the current connection status of the HoloCast and any relevant information about it. If the connection is 'wired' or 'none' the
signal strength and ssid fields will be null. If the device is not connected its uptime will be 'None.'
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Successfully retrieved the connection info on a given device Example Value Model
{
}
Example {
}
"device_id": "string", "id": 0,
"ip_address": "string", "signal_strength": 0, "ssid": "string",
"type": "none", "uptime": 0
"device_id": "DynamoAmp-DEV99", "id": 0,
"ip_address": "192.168.0.115",
"signal_strength": 64, "ssid": "TP-LINK_Leonis", "type": "none", "uptime": 0
400 The provided device id does not exist
Code Description
Example Value Model string
implement temporary)
Gets the list of supported features for a particular HoloCast device
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Returns the list of supported features on the device
400 The provided device id does not exist Example Value Model
string
Get device metrics
Returns device performance and health metrics.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Successfully retrieved the metrics of a given device Example Value Model
{
}
Example {
}
"cpu_usage": 0, "device_id": "string", "disk_usage": 0,
"internal_temp": 0,
"ram_usage": 0
"cpu_usage": 0,
"device_id": "DynamoAmp-DEV99", "disk_usage": 0,
"internal_temp": 0,
"ram_usage": 0
400 The provided device id does not exist Example Value Model
string
Gets the model of a particular HoloCast device
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Returns the model of the device Example Value Model
HoloCast Example DynamoAmp
400 The provided device id does not exist Example Value Model
string
Set Device Name
Sets the name for a particular HoloCast device ID
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
name (body)
The name to set the device to Example Value Model
{
"name": "string"
}
Responses
Code Description
200 Successfully set the device name
400 The provided device id does not exist Example Value Model
string
Set Password
Sets the password for a particular HoloCast device id. This will require a new basic authentication string for subsequent API calls.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
password (body)
The current password and new password of the device Example Value Model
{
"new_password": "string", "old_password": "string"
}
Responses
Code Description
200 Successfully set the new password
400 The provided device id does not exist or a the password does not match Example Value Model
string
Scheduled a reboot on a particular unit
Reboots the device 1 second after the request is made
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Reboot scheduled Example Value Model string
400 The provided device id does not exist Example Value
Model string
Check if remote debugging is enabled
Checks whether or not remote debugging is enabled
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 true if enabled, false otherwise Example Value Model
string example false
400 The provided device id does not exist Example Value Model
string
Set remote debugging
Sets whether or not to enable remote debug
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
name (body)
Whether to enable or disable remote debugging Example Value Model
{
"enable": true
}
Responses
Code Description
200 Successfully enabled/disabled remote debug
400 The provided device id does not exist Example Value Model
string
temporary)
Checks the status of a reset operation
Returns the current reset operation (if any) and the time in seconds before the operation times out.
Parameters
Name
Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Password reset scheduled Example Value Model string
400 The provided device id does not exist or an invalid reset type was provided Example Value Model
string
POST /api/v3/devices/{device_id}/reset (Not implement temporary)
Initiates a reset operation on a particular unit
Valid reset operations are 'password_reset' and 'factory_reset'. Password resets change the password to the default password 'Admin.' Factory reset will wipe the device of all data including password, WiFi credentials, zone names, etc.
For the reset operation to succeed, the device must be hard rebooted within 60 seconds of the request being made. This means that the device must be powered off and back on as opposed to performing a reboot from the interface (soft reboot).
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
reset_type (body)
The type of reset to perform Example Value Model
{
"reset_type": "password_reset"
}
Responses
Code Description
200 Password reset scheduled Example Value Model string
400 The provided device id does not exist Example Value
Model string
POST /api/v3/devices/{device_id}/run-diagnostics (Not implement temporary)
Run diagnostics
Runs diagnostics for a particular device.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Zone diagnostics operation completed
400 The provided device id does not exist Example Value Model
string
implement temporary)
Gets the status of a particular unit as it pertains to firmware updates. The possible update statuses are:
-idle: An update is availble but the device is not currently being updated
-in_progress: An update is in progress
-failed: An update has failed
-error: An error occurred while trying to schedule an update
-success: The most recent update was successful
-up_to_date: There is no update available for the unit
A device will remain in the failed or error state for up to 24 hours before returning to the idle state.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
Responses
Code Description
200 Returns the update status of the device Example Value Model
idle
400 The provided device id does not exist Example Value Model
string
Set Wi-Fi Credentials
Sets the Wi-Fi credentials that the HoloCast will connect to. Note that this will cause the system to attempt to connect to the SSID provided and may cause the device to disappear from its current network.
If the device is connected via Ethernet, it will not attempt to connect to the wireless access point until disconnected.
Parameters
Name Description
device_id * string (path)
The id of the device to operate on
wifi_credentials The ssid and password of the Wi-Fi network
(body)
Example Value Model
{
"password": "string", "ssid": "string"
}
Responses
Code Description
200 Wifi credentials received
400 The provided device id does not exist Example Value Model
string
Inputs
GET /api/v3/inputs/
Get all input ids
Gets all the available inputs in the HoloCast system.
The input ids can be 1 to 8, it depends on there are how many input source of HOLO Series device.
For example,
Device is streamer series, the input ids just 1
Device is HoloWHAS with 4 input sources, the input ids are 1,2,3,4.
Device is HoloWHAS with 8 input sources, the input ids are 1,2,3,4,5,6,7,8.
Parameters
Name Description
class_filterFilter based on input classification
int (query)
Available values : 1 to 8
Responses
Code Description
200 The list of available input ids Example Value
Model
{
"input_ids": [ "string"
}
Example {
]
"input_ids": [
"1",
"2",
"3",
"4"
]
Code Description
}
GET /api/v3/inputs/info
Get all input info
Gets the information of all the available inputs in the HoloCast system.
Parameters
Name Description
class_filterFilter based on input classification
int (query)
Available values : 1 to 8
Responses
Code Description
200 The list of available input ids
Example {
"input_ids": [
"1",
"2",
"3",
"4"
]
}
Notify that a change has been made to the given inputs Note: This is reserved for internal HoloCast use only Parameters
Name Description
input_ids (body)
The input ids that have changed Example Value Model
Set up a webhook to receive changes to the input models
The HoloCast will make a POST request to the provided URL containing an array of InputInfo for each zone_id whose property changed. To understand the properties of the InputInfo, see the 'Models' section below.
Note: The webhooks do not persist after the unit reboots. It's recommended that whenever event-based changes are needed, the integration should reregister its webhook. If the webhook has already been registered, nothing will be done and a 200 response will be returned.
Parameters
Name Description
url (body)
The url to post to when the input changes Example Value Model
{
"url": "string"
}
Responses
Code Description
200 Successfully subscribed to input changes
400 Invalid URL provided
Example Value Model string
Remove a particular webhook from receiving changes from the input models.
Parameters
Name Description
url (body)
The url to remove from input changes Example Value Model
{
"url": "string"
}
Get input information
Gets the configuration and status for a particular input in the HoloCast system
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
Responses
Code Description
200 The configuration of the input provided Example Value Model
{
"available_types": [
"Airplay”, “DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical”, “Bluetooth"
],
"enabled": true, "input_class": 0, "input_id": "string",
"input_type": [ "Airplay”, “DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical”, “Bluetooth" ],
"name": "string", "streaming": true, "volume": 0,
"zones": [ "string"
}
Example {
]
"available_types": [
"Airplay”, ”DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical"
],
"enabled": true, "input_class": 0,
"input_id": "1",
Code Description
"input_type": ["USB"],
"name": "1",
"type": ["USB"],
"streaming": true, "volume": 0,
"zones": [ “1”
]
}
400 The provided input id does not exist Example Value Model
string
Get available input types
Get the input types available on the HoloCast for a particular input. The results will depend on the existing configuration of inputs. For example, if there is a USB device connected to the upper port, 'USB' will become available. However, once a input has been configured to 'USB,' it will not appear for other inputs.
Currently, only one source can be set to USB, Analog , ARC, Optical, Bluetooth and DLNA. USB will not appear if there is nothing connected
the top and bottom USB, respectively.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
Responses
Code Description
200 A list of available types that the input can be set to Example Value Model
{
"available_types": [
"Airplay”, “DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical”, “Bluetooth"
}
Example {
]
"available_types": [ Airplay, DLNA, Spotify
]
}
temporary, Always enable)
NOTE:After Mar. 2025, the firmware enable assign same zone to different input source. This command was dropped.
Enable/Disable a particular input
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
enable (body)
True to enable the input, False to disable it Example Value Model
{
"enable": true
}
Responses
Code Description
200 Successfully enabled/disabled the input Example Value Model
string
NOTE: After July 2024, the firmware use zones name what these zones assign to input source to identified input source name. This command was dropped.
Set input name
Sets the human-friendly name for a particular input id.
Note: this action can only be performed on General input classes.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
name (body)
The name to set the input to Example Value Model
{
"name": "string"} Parameter content type
Responses
Code Description
200 Successfully set input name
400 The provided input id does not exist Example Value Model
string
Restart input
Restarts the service providing the input on the HoloCast
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
Responses
Code Description
200 Successfully reset input
400 The provided input id does not exist Example Value Model
string
Set input type
Sets the type of the input for a particular input id.
Note: this action can only be performed on General input classes.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
type (body)
The type to set the input to Example Value Model
{
"type": "Airplay"
}
Responses
Code Description
200 Successfully set input type
400 The provided input id does not exist or the input type is unavailable Example Value Model
string
Get all possible input types
Get all possible input types available in the HoloCast System, regardless of their availablility.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
Responses
Code Description
200 A list of available types that the input can be set to Example Value Model
{
"available_types": [
"Airplay”, “DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical”, “Bluetooth"
}
Example {
]
"available_types": [
"Airplay”, “DLNA”, “Spotify”, “USB”, “RCA”, “ARC”, “Optical”, “Bluetooth"
]
}
Set input volume
Sets the volume associated with a input id.
Note: This currently only affects USB, RCA, and Optical inputs.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
volume (body)
The volume to set the input to Example Value Model
{
"volume": 0
}
Responses
Code Description
200 Successfully set input volume
400 The provided input id does not exist or the volume is out of range Example Value Model
string
Adds a zone that an input should map to
Note: this action can only be performed on General input classes.
The first input to stream will become active on the zone, it is possible to override which streaming
input is active by using the API to set the active input.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
zone_id * (body)
The zones id to map the input to Example Value Model
{
"zone_id": "string"
}
Responses
Code Description
200 Successfully mapped input to given zones
400 The provided input id does not exist Example Value Model
string
Removes a zone that an input should map to
Note: this action can only be performed on General input classes.
The first input to stream will become active on the zone, it is possible to override which streaming
input is active by using the API to set the active input.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
zone_id * (body)
The zones id to map the input to Example Value Model
{
"zone_id": "string"
}
Responses
Code Description
200 Successfully unmapped input from given zones
400 The provided input id does not exist Example Value Model
string
Get input source name setting status
Return boolean, true means user can change input source name, false means user can not change input source name.
Responses
Code Description
200 A list of available types that the input can be set to Example Value Model
{
}
Example {
}
"enable":true
"enable":true
Set input source name setting status
Parameters
Name Description
Enable Boolean, true means user can change input source name, false means user can not change input source name.
Example Value Model
{
"enable": true
}
Responses
Code Description
200 Successfully set input name status
400 Set input name status failure.
Set input source name
Sets the name of the input for a particular input id.
Note: this action can only be performed on General input classes.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
type (body)
The type to set the input to Example Value Model
{
"name": "Bedroom with Airplay"
}
Responses
Code Description
200 Successfully set input type
400 The provided input id does not exist or the input type is unavailable Example Value Model
string
Get input source name
Get all possible input types available in the HoloCast System, regardless of their availablility.
Parameters
Name Description
input_id * string (path)
The id of the input to operate on
Responses
Code Description
200 A list of available types that the input can be set to Example Value Model
{
}
Example {
}
"name": “Bedroom with Airplay"
"name": “Bedroom with Airplay"
Zones
GET /api/v3/zones/
Get all zones ids
Gets all the available zones in the HoloCast system. The zone-id is an ID that uniquely identifies each zone on each of the HoloCast devices.
Parameters
No parameters
Responses
Code Description
200 Gets a list of all available zone ids Example Value Model
{
"zone_ids": [ "string"
}
Example {
}
]
"zone_ids": [ "DynamoAmp-DEV99-Z1", "DynamoAmp-DEV99-Z2", "DynamoAmp-DEV99-Z3", "DynamoAmp-DEV99-Z4", "DynamoAmp-DEV99-Z5", "DynamoAmp-DEV99-Z6", "DynamoAmp-DEV99-Z7", "DynamoAmp-DEV99-Z8"
]
GET /api/v3/zones/info
Get all zone info
Gets the information for all zones in the HoloCast system.
Parameters
No parameters
Responses
Code Description
200 All information related to a particular zone
Example [
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
1
],
"label": "Zone1", "muted": false, "name": "Zone1", "volume": 42,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z1"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
2
],
"label": "Zone2", "muted": false, "name": "Zone2", "volume": 39,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z2"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
3
],
"label": "Zone3", "muted": false, "name": "Zone3", "volume": 50,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z3"
},
{
"active_input": "",
"enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
4
],
"label": "Zone4", "muted": false, "name": "Zone4", "volume": 50,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z4"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
],
"label": "Zone5", "muted": false, "name": "Zone5", "volume": 50,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z5"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
],
"label": "Zone6", "muted": false, "name": "Zone6", "volume": 50,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z6"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
],
"label": "Zone7", "muted": false, "name": "Zone7", "volume": 50,
"volume_eq": [ 0
],
"warnings": [
""
],
"zone_id": "DynamoAmp-DEV99-Z7"
},
{
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
],
"label": "Zone8", "muted": false, "name": "Zone8", "volume": 50,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z8"
}
]
400 The provided zone id does not exist Example Value Model
string
Notify that a change has been made to the given zones Note: This is reserved for internal HoloCast use only Parameters
Name Description
zone_ids (body)
The zone ids that have changed Example Value Model
Parameter content type application/json
Set up a webhook to receive changes to the zone models
The HoloCast will make a POST request to the provided URL containing an array of ZoneInfo for each zone_id whose property changed. To understand the properties of the ZoneInfo, see the 'Models' section below.
Note: The webhooks do not persist after the unit reboots. It's recommended that whenever event-based changes are needed, the integration should reregister its webhook. If the webhook has already been registered, nothing will be done and a 200 response will be returned.
Parameters
Name Description
url (body)
The url to post to when the zone changes Example Value Model
{
"url": "string"
}
Parameter content type application/json
Remove particular webhook url from receiving changes from the zone models.
Parameters
Name Description
url (body)
The url to remove from zone changes Example Value Model
{
"url": "string"
}
Parameter content type application/json
Responses
Code Description
200 Successfully subscribed to zone changes
400 Invalid URL provided
Example Value Model string
Get zone information
Gets the configuration and status for a particular zone in the HoloCast system.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
Responses
Code Description
200 The configuration and status of a particular zone Example Value Model
{
"active_input": "string", "enabled": true, "enabled_zone_inputs": [
"airplay"
],
"icon_id": "string", "input": [
"string"
],
"label": "string", "muted": true, "name": "string", "volume": 0,
"volume_eq": [ 0
],
"warnings": [ "string"
],
"zone_id": "string"
}
Code Description
Example {
"active_input": "", "enabled": true, "enabled_zone_inputs": [
"airplay2", "spotify"
],
"icon_id": "", "input": [
1
],
"label": "Zone1", "muted": false, "name": "Zone1", "volume": 42,
"volume_eq": [ 0
],
"warnings": [ ""
],
"zone_id": "DynamoAmp-DEV99-Z1"
}
400 The provided zone id does not exist Example Value Model
string
Set zone enable
Enables or disables a particular zone. All other operations will
work except no audio will be heard from the zone. Performs a similar function as muting a zone but can be extended to act as a flag for whether a zone should be displayed in UI.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
enable * (body)
Whether or not to enable the zone Example Value Model
{
"enable": true
}
Parameter content type application/json
Responses
Code Description
200 Successfully enabled/disabled zone
400 The provided zone id does not exist Example Value Model
string
Set zone icon id
Sets the id of the icon associated with a particular zone.
Note: This endpoint is reserved for official HoloCast integrations and is not intended to be used by third-party developers.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
icon_id (body)
The ID of the icon to store in the zone Example Value Model
{
"icon_id": "string"
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone icon id
400 The provided zone id does not exist Example Value Model
string
Sets the input(s) that a zone is mapped to
Note: this action can only be performed on General input classes.
Sets a zone to play audio from a set of input ids, existing mappings will be overriden. An empty list will clear the zone of any inputs.
The first input to stream will become active on the zone, it is possible to override which streaming
input is active by using the API to set the active input.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
input_id * (body)
The id of the input(s) to map to the zone Example Value Model
{
"input_ids": [ "string"
]
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone input
400 The provided zone id or at least one of the input id(s) failed to be set.
Example Value Model string
Gets the current input that is actively playing on a zone. Returns an empty string if no input is active.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
Responses
Code Description
200 The input id that is active on the zone
400 The provided zone id is invalid Example Value Model
string
Sets the current input that is actively playing on a zone
This input must be streaming for it to be set to be the active input.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
input_id (body)
The id of the input to actively play to the zone Example Value Model
{
"input_id": "string"
}
Parameter content type application/json
Responses
Code Description
200 The input was made active on the zone
400 The provided zone id is invalid Example Value Model
string
Adds a set of input(s) to a zone's mappings
Note: this action can only be performed on General input classes.
The first input to stream will become active on the zone, it is possible to override which streaming
input is active by using the API to set the active input.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
input_id (body)
The id of the input(s) to add to the zone mapping Example Value Model
{
"input_ids": [ "string"
]
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone input
400 The provided zone id or at least one of the input id(s) failed to be added Example Value Model
string
Removes a set of input(s) from a zone's mappings
Note: this action can only be performed on General input classes.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
input_id (body)
The id of the input(s) to remove from the zone mapping Example Value Model
{
"input_ids": [ "string"
]
}
Parameter content type application/json
Responses
Code Description
200 Successfully removed zone input
400 The provided zone id or at least one of the input id(s) failed to be remove Example Value Model
string
Gets the list of inputs that a zone is mapped to that are currently streaming on the HoloCast
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
Responses
Code Description
200 Returns list of streaming inputs on the zone
{
}
Example {
}
1, 2, 3, 4
1, 2, 3
400 The provided zone id is invalid Example Value Model
string
e (Not implement temporary)
Enabled/disables any zone-based inputs associated with the zone
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
input_type * string
(path)
The type of the zone-based input Available values : spotify, airplay, all
enable (body)
Whether to enable/disable Example Value Model
{
"enable": true
}
Parameter content type application/json
Responses
Code Description
200 Succesfully enabled/disabled the inputs
400 The provided zone id is invalid Example Value Model
string
Mute/umute zones
Sets whether or not a zone is muted.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
enable (body)
Whether to mute/unmute Example Value Model
{
"enable": true
}
Parameter content type application/json
Responses
Code Description
200 Successfully muted/unmuted
400 The provided zone id does not exist Example Value Model
string
Set zone name
Sets the name associated with a particular zone id
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
name (body)
The name to set the zone to Example Value Model
{
"name": "string"
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone name
400 The provided zone id does not exist Example Value Model
string
Set zone volume
Sets the volume for a particular zone (value 0-100).
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
volume (body)
The volume to set the zone to Example Value Model
{
"volume": 0
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone volume
400 The provided zone id does not exist Example Value Model
string
Set zone volume equalizer
Sets the gain on the 10 frequency bands of a particular zone. The frequency bands are in order as follows:
- 31.25Hz
- 62.5Hz
- 125Hz
- 250Hz
- 500Hz
-1KHz
-2KHz
-4KHz
-8KHz
-16KHz
Values are given as a percentage from 0 to 100.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
volume_eq (body)
The volume to set the zone to Example Value Model
{
"volume_eq": [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
Parameter content type application/json
Responses
Code Description
200 Successfully set zone eq
Code Description
400 The provided zone id does not exist Example Value Model
string
GET /api/v3/zones/{zone_id}/warnings
Get zone warnings
Gets any warnings associated with any one particular zone on the HoloCast. Note that this will not be updated until a zone diagnostics operation is performed.
Parameters
Name Description
zone_id * string (path)
The id of the zone to operate on
Responses
Code Description
200 All warnings associated with a particular zone Example Value Model
{
"zone_id": "string", "zone_warnings": [
"string"
]
}
400 The provided zone id does not exist Example Value Model
string