WebAPI for Multi-room Streaming Amplifier

  • Home |
  • WebAPI for Multi-room Streaming Amplifier
WebAPI for Multi-room Streaming Amplifier

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
        
0