BOSE Work Rest API App User Guide
- June 5, 2024
- Bose
Table of Contents
BOSE Work Rest API App
Introduction
The Bose Videobar devices support representational state transfer application
programming interface (REST API) for network management and monitoring. This
guide provides instructions for enabling and configuring REST API on Videobar
devices, and it provides a detailed description of the supported variables and
operations.
Configuration items and operations are grouped in these categories:
- system
- behavior
- usb
- audio
- camera
- audioframing
- bluetooth
- network (VBl)
- wifi
- telemetry (VBl)
The API Command Reference section provides the following information for each object:
- Name/Description Name of the object and description of its use.
- Actions Actions that can be performed on the object. The action can
- be one or more of the following: get, put, delete, post.
- Range of Values Acceptable values for the object.
- Default Value Default value of the object. This is the value that is used if you revert the device to factory defaults.
All values are specified as strings.
Trademark Notices
- Bose, Bose Work, and Videobar are trademarks of Bose Corporation.
- The Bluetooth” word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by Bose Corporation is under license.
- The term HDMI is a trademark or registered trademark of HDMI Licensing Administrator, Inc.
- All other trademarks are the property of their respective owners.
Privacy Information
Your privacy is important to Bose so we’ve developed a Privacy Policy that
covers how we collect, use, disclose, transfer, and store your personal
information.
PLEASE READ THIS PRIVACY POLICY CAREFULLY TO UNDERSTAND HOW WE HANDLE YOUR
INFORMATION. IF YOU DO NOT AGREE TO THIS PRIVACY POLICY, PLEASE DO NOT USE THE
SERVICES.
Enabling and Configuring the REST API
To enable access to the REST API on a device, use the Bose Work Configuration app, the Bose Work Management app, or the Web UI. Access the Network> API settings. Enable API access and specify an API username and password. You will need these API credentials to use any of the REST API commands. Please reference the application user guides for more information.
Testing the REST API
You can test the Videobar REST API by using the Swagger OpenAPI interface that
is embedded in the device. To access this interface the Videobar must be
connected to an IP network via its wired or WiFi interface, and your host PC
must be on the same network or a network that can access the device via HTTPS.
Connect your PC to the Videobar via the USB interface. Start the Bose Work
Configuration app and sign in to access admin controls. Choose the Network >
API page and click the link:
REST API Documentation (Web UI)
If you are not connected to the device via USB and your PC is on the same
network, you can access the REST API via your browser by browsing to the
following address:
https://
REST API Commands
The Videobar REST API interface uses command IDs in each of the four HTTP
methods supported: get, put, delete, and post.
Below is a description of the four methods followed by a table describing the
methods supported for each of the commands.
GET
The “get” method accepts a single command ID or multiple comma-delimited IDs.
For example, to get the audio.micMute state, the command ID is 2. The URL is
like this:
https://192.168.1.40/api?query=2
The response body is as follows, with a value of “O” indicating the mic is not
muted:
{“2”: {“status”: “success”, “value”: “0”}}
To query for multiple values, separate multiple command IDs with a comma. For
example, you could query for audio.micMute (ID=2) and system.firmwareVersion
(ID=l6) li ke this:
https://192.168.1.40/api?query=2,16
Note: Do not include spaces between multiple IDs.
The result would be:
{“2”: {“status”: “success”, “value”: “0”}, “16”: {“status”: “success”,
“value”: “1.2.13_fd6cc0e”}}
PUT
A “put” command uses a JSON body format with the key being “data” and the
value being ID:value pairs.
For example, to set the audio.loudspeakerVolume (ID=3) to 39, the
“https://192.168.1.40/ api” body is:
{“data”:”{“3″:”39″}”}
The response is:
{“3”: {“status”: “success”, “code”: “0xe000”}}
Here is an example setting multiple values:
{“data”:”{“2″:”1″,”3″:”70″}”}
The response is:
{“2”: {“status”: “success”, “code”: “0xe000”}, “3”: {“status”: “success”,
“code”: “0xe000”}}
Response “code” values can be any of the following:
- 0xe000 : Success
- 0xe001 : Success – No change in value
- 0xe002 : Error – Invalid property
- 0xe003 : Error – Invalid property value
- 0xe004 : Error – Invalid property action
- 0xe005 : Error – Message malformed
- 0xe006 : Error – Access denied
POST
A “post” is similar to “put” and is used for actions, such as toggle mic mute
and speaker volume up/down. You specify the command ID and use an empty string
for the value.
For example, to increase the speaker volume one tick, use
audio.loudspeakerVolumeUp (ID=4) with the body format like this:
{“data”:”{“4″:””}”}
The response body is:
{“4”: {“status”: “success”, “code”: “0xe000”}}
The possible response “code” values are the same those listed for the PUT
command.
DELETE
The “delete” command format is similar to “get”, and the response body is
similar to “put”. Using delete will set the value back to its default.
For example, to set the audio.loudspeaker volume (ID=3) to its default value,
the URL is like this:
https://192.168.1.40/api?delete=3
The response body is:
{“3”: {“status”: “success”, “code”: “0xe000”}}
You would need to issue a “get” to retrieve the new value, which in this case
is 50. For example:
Command:
https://192.168.1.40/api?query=3
Response:
{“3”: {“status”: “success”, “value”: “50”}}
The possible response “code” values are the same those listed for the PUT
command
Videobar REST API Command Reference
Name/ Description| Actions| Cmd ID| Range of Values|
Default Value
---|---|---|---|---
system.reboot
Reboots the system.
| post| 32| N/A| N/A
system.serialNumber
Serial number of the device.
| get| 10| string
(17 chars)
| ooooooxooooooooxx
system.firmwareVersion
Version of the firmware running on the device. This is set automatically on system firmware upgrade.
| get| 16| string
(1-16 chars)
| 0.0.0
system.model
Model of this device.
| get| D6| string
(1-22 chars)
| Not set
system.name
Name of the device so it can be uniquely identified.
| get put delete| 25| string
(1-22 chars)
| Not set
system.room
Room location of the device
| get put delete| 26| string
(0-128 chars)
| Not set
system.floor
Floor location of the device.
| get put delete| 27| string
(0-128 chars)
| Not set
system.building
Building location of the device.
| get put delete| 28| string
(0-128 chars)
| Not set
system.gpiMuteStatus (VBl)
GPI mute status (on/off).
| get| C7| 110| (Supported in VBl) 0
system.maxOccupancy
Room maximum occupancy of the device.
| get put delete| DF| string
(0-128 chars)
| Not set
behavior.ethernetEnabled (VBl)
Turns on/off the system Ethernet interface.
| get put delete| 38| 110| (Supported in VBl) 1
behavior.bluetoothEnabled
Turns on/off the system Bluetooth.
| get put delete| 3A| 110| 1
behavior.wifiEnabled
Turns on/off the system WiFi.
| get put delete| 3B| 110| 1
behavior.hdmiEnabled (VBl)
Turns on/off the HDMI.
| get put delete| C9| 110| (Supported in VBl) 0
usb.connectionStatus
USB cable connection status; 0 when disconnected.
| get| 36| 110| 0
usb.callStatus
Call status from the host connected to USB port of the system.
| get| 37| 110| 0
audio.micMute
Mutes/unmutes the system microphone.
| get put| 2| 110| 0
audio.micMuteToggle
Toggles the mute state of the system microphone.
| post| 15| N/A| N/A
Name/ Description| Actions| Cmd ID| Range of Values|
Default Value
---|---|---|---|---
audio.loudspeakerMute
Mutes/unmutes the system loudspeaker.
| post| 34| N/A| N/A
audio.loudspeakerMuteToggle
Toggles the mute state of the system loudspeaker.
| post| 34| N/A| N/A
audio.loudspeakerVolume
Sets the system loudspeaker volume.
| get put delete| 3| 0-100| 50
audio.loudspeakerVolumeUp
Increases the system loudspeaker volume by one step.
| post| 4| N/A| N/A
audio.loudspeakerVolumeDown
Decreases the system loudspeaker volume by one step.
| post| 5| N/A| N/A
camera.zoom
The camera’s current zoom value.
| get put delete| 6| 1-10| 1
camera.pan
The camera’s current pan value.
| get put delete| 7| -10-10| 0
camera.tilt
The camera’s current tilt value.
| get put delete| 8| -10-10| 0
camera.zoom In
Zooms camera in by one step.
| post| 9| N/A| N/A
camera.zoomOut
Zooms camera out by one step.
| post| OA| N/A| N/A
camera.pan Left
Pans camera left by one step.
| post| OB| N/A| N/A
camera.pan Right
Pans camera right by one step.
| post| oc| N/A| N/A
camera.tiltUp
Tilts camera up by one step.
| post| OD| N/A| N/A
camera.tiltDown
Tilts camera down by one step.
| post| OE| N/A| N/A
camera.homePreset
Camera home preset in pan tilt zoom order
| get put delete| 56|
| 0 01
camera.firstPreset
Camera first preset in pan tilt zoom order.
| get put delete| 57|
| 0 01
camera.second Preset
Camera second preset in pan tilt zoom order.
| get put delete| 58|
| 0 01
camera.savePresetHome
Saves to the home preset the current PTZ values.
| post| 12| N/A| N/A
camera.savePresetFirst
Saves to the first preset the current PTZ values.
| post| 17| N/A| N/A
camera.savePresetSecond
Saves to the second preset the current PTZ values.
| post| 18| N/A| N/A
Name/ Description| Actions| Cmd ID| Range of Values|
Default Value
---|---|---|---|---
camera.apply ActivePreset
Applies the active preset to the PTZ settings.
| post| OF| N/A| N/A
camera.active Preset
This is the active preset. Note, at camera start or restart the active preset is set to Home.
| get put delete| 13| 11213| 1
camera.state
Camera state. When active, camera is streaming video. When inactive, camera is not streaming. When upgrading, camera is upgrading firmware.
| get| 60| activeI inactiveI upgrading| inactive
autoframing.state
Turn on/off the camera autoframing feature.
| get put delete| 19| 110| 0
bluetooth.pairingStateToggle
Toggle the pairing state from on/off to off/on.
| post| C6| N/A| N/A
bluetooth.pairingState
Bluetooth pairing state. The on state will allow pairing with the device for a fixed interval. Once the pairing interval is over, the state will change to off.
| get put| 14| 110| 0
bluetooth.state
Bluetooth and BLE state. The on state will indicate that Bluetooth and BLE are on; the off state will indicate that the Bluetooth and BLE are off.
| get| 67| 110| 0
bluetooth.paired
Paired device name.
| get| 6A| string
(0-128 chars)
| Not set
bluetooth.connected
Paired device connection status.
| get| 6B| 110| 0
bluetooth.streamState
Stream status of Bluetooth.
| get| C2| 110| 0
bluetooth.callState
Status of Bluetooth call.
| get| 6C| 110| 0
bluetooth.disconnect
Disconnect Bluetooth device.
| post| E4| 11213| N/A
network.dhcpState
DHCP state. When DHCP state is on, network will be configured through DHCP. When DHCP state is off, static values are used.
| get put delete| 74| 110| 1
network.ip (VBl)
Static IP address when DHCP state is off.
| get put delete| 75| | (Supported in VBl) 0.0.0.0
network.state (VBl)
State of the Ethernet module.
| get| 7F| idlel failure!
associationI configurationI readyI
disconnect! online
| (Supported in VBl) ready
Name/ Description| Actions| Cmd ID| Range of Values|
Default Value
---|---|---|---|---
network.mac (VBl)
MAC address of the LAN interface.
| get| 80| | (Supported in VBl) 00:00:00:00:00:00
wifi.dhcpState
DHCP state. When DHCP state is on, WiFi will be configured through DHCP. When DHCP state is off, static values are used.
| get put delete| Al| 110| 1
wifi.ip
Static IP address when DHCP state is off.
| get put delete| A2| | 0.0.0.0
wifi.mac
MAC address of the WiFi interface.
| get| AC| | 00:00:00:00:00:00
wifi.state
State of the WiFi module.
| get| BO| idlel failure!
associationI configurationI readyI
disconnect! online
| idle
telemetry.peopleCount (VBl)
The number of people counted by the camera autoframing algorithm.
| get put delete| DA| 0-99| (Supported in VBl) 0
telemetry.peoplePresent (VBl)
True when any people have been detected by the camera autoframing algorithm.
| get put delete| DC| 110| (Supported in VBl) 0
References
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>