The Algo REST API provides flexibility and scalability when integrating Algo IP endpoints with other paging and alerting systems. By using the Algo REST API, devices can trigger or be triggered by unique actions or events.
This guide outlines how to begin using the Algo REST API for an Algo IP endpoint and what calls can be used for device management.
Prerequisites
Make sure the following requirements are met.
The Algo endpoint must be using firmware version 3.3 or higher.
The time difference between the requestor and the Algo devices should be less than 30 seconds to use standard authentication.
Ensure NTP (Network Time Protocol) is enabled on the device. The addresses of custom NTP servers may be configured in the Advanced Settings → Time tab.
The target endpoint must have RESTful API access enabled.
Check whether the target endpoint requires a password for API access. If yes, include the password information in your API commands.
Example Use Cases
Door Unlock for Building Entry
The REST API can be used to allow a user to unlock a door with the 8063 from a computer program.

School Bell
The REST API can be used to play a bell tone over Algo speakers when classes begin.

Temperature Check
The REST API can be used to trigger Algo visual alerters to flash a color based on a specific event.

Remote Button Activation
The REST API can be used to control Algo 8450 buttons to play pre-recorded announcements for urgent situations, such as lockdowns or medical alerts.
Initial Configuration
To allow API control on an Algo device, you must first enable REST API.
You can also set a passcode for REST API to ensure only authorized access is allowed.
Note
If you enable the REST API password, you must include this password in any API command sent to the device.
For example, to access the About page of a device with the default REST API password set to algo, use the following command:
curl -u admin:algo -X GET "https://10.12.123.12/api/info/about"
Enable RESTful API under the Advanced Settings → Admin tab.
Select an Authentication Method. There are three types of authentication:
Standard (recommended)
Uses a Hash-based Message Authentication Code (HMAC) with an SHA-256 encoded digest.
Basic
Uses Base64 encoding and should only be used over HTTPS.
None (not recommended)
It should only be used with extreme care as it provides no authentication.
Enter a RESTful API Password. The default password is algo.
.png)
Select Save.
Authentication Requirements
If you have set the Authentication Method to Standard, you must authenticate with the API before making any requests.
Authentication requires generating a valid HMAC signature using the provided RESTful API Password. The device verifies this signature before processing your API command.
Note
If authentication is set to None or Basic, requests signed with Standard Authentication may still succeed because the device does not validate HMAC in those modes.
Standard Authentication Request with a JSON Payload
A standard authentication payload will require generating an HMAC key. This is generated by the REST API password (secret key) and the HMAC input. Generate HMAC with password and HMAC input string as digest using SHA-256.
The HMAC input is formatted as: [request_method]:[request_uri]:[content_md5]:[content_type]:[timestamp]:[nonce]
Element | Notes | Example |
|---|---|---|
Request method | GET, POST, PUT, or DELETE | POST |
Request URI | Must start with a forward slash | /api/controls/tone/start |
Content-MD5 | Generated separately. Also required for the payload request. | 6e43c05d82f71e77c586e29edb93b129 |
Content-Type | Set as application/json | application/json |
Timestamp | Seconds (Unix epoch) | 1601312252 |
Nonce | Random string that is also required for the payload request. | 49936 |
Example HMAC Input (using algo as the secret key)
POST:/api/controls/tone/start:6e43c05d82f71e77c586e29edb93b129:application/json:1601312252:49936
Example HMAC Key
2e109d7aeed54a1cb04c6b72b1d854f442cf1ca15eb0af32f2512dd77ab6b330
Headers
Header Name | Required | Values |
|---|---|---|
Content-Type | Required | application/json |
Content-MD5 | Required | Same as HMAC input |
Authorization | Required | hmac admin:{nonce from HMAC input}:{HMAC key} |
Date | Required | day, date month year HH:MM:SS GMT |
Example Payload Request
Hypertext Transfer Protocol
POST /api/controls/tone/start HTTP/1.1\r\n
Host: 10.0.0.161\r\n
Accept: */*\r\n
Transfer-Encoding: chunked\r\n
Content-Type: application/json\r\n
Content-Md5: 6e43c05d82f71e77c586e29edb93b129\r\n
Authorization: hmac admin:1028014788:c450024af4493f9cdf582499456bf58d7e134b161566e764e61bd52d24f759dc\r\n
Date: Mon, 28 Sep 2020 17:07:18 GMT\r\n
\r\n
[Full request URI: https://10.0.0.161/api/controls/tone/start]
[HTTP request 1/1]
File data 39 bytes
JavaScript Object Notation: application/json
Object
Member Key: path
String value: page-notif.wav
Key: path
Member Key: loop
False value
Key: loopStandard Authentication Request without a JSON Payload
A standard authentication payload will require generating an HMAC key. This is generated by the REST API password (secret key) and the HMAC input. Generate HMAC with password and HMAC input string as digest using SHA-256.
The HMAC input is formatted as: [request_method]:[request_uri]:[timestamp]:[nonce]
Element | Notes | Example |
|---|---|---|
Request method | GET, POST, PUT, or DELETE | POST |
Request URI | Must start with a forward slash | /api/controls/tone/stop |
Timestamp | Seconds (Unix epoch) | 1601312252 |
Nonce | Random string that is also required for the payload request. | 49936 |
Example HMAC Input (using algo as the secret key)
GET:/api/settings/audio.page.vol:1601312252:49936
Example HMAC Key
c5b349415bce0b9e1b8122829d32fbe0a078791b311c4cf40369c7ab4eb165a8
Headers
Header Name | Required | Values |
|---|---|---|
Authorization | Required | hmac admin:{nonce from HMAC input}:{HMAC key} |
Date | Required | day, date month year HH:MM:SS GMT |
Example Payload Request
Hypertext Transfer Protocol
GET /api/settings/audio.page.vol HTTP/1.1\r\n
Host: 10.0.0.161\r\n
Accept: */*\r\n
Authorization: hmac admin:881767496:c5b349415bce0b9e1b8122829d32fbe0a078791b311c4cf40369c7ab4eb165a8\r\n
Date: Mon, 28 Sep 2020 17:07:18 GMT\r\n
\r\n
[Full request URI: https://10.0.0.161/api/controls/tone/start]
[HTTP request 1/1]
[Response in frame: 304]
Hypertext Transfer Protocol
HTTP/1.1 200 OK\r\n
Server: nginx/1.10.3\r\n
Date: Mon, 28 Sep 2020 17:07:05 GMT\r\n
Content-Type: application/json\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
Cache-Control: no-cache, no-store, must-revalidate\r\n
Pragma: no-cache\r\n
Expires: 0\r\n
X-Frame-Options: DENY\r\n
\r\n
[HTTP request 1/1]
[Time since request: 0.242859963 seconds]
[Request in frame: 297]
[Request URI: https://10.0.0.161/api/settings/audio.page.vol]
HTTP chunked response
File Date: 26 bytes
JavaScript Object Notation: application/json
Object
Member Key: audio.page.vol
String value: -42dB
Key: audio.page.vol Basic Authentication Request
A basic authentication payload requires encoding the username and password using Base64. This encoded string is then included in the Authorization header of the HTTP request.
Basic authentication should only be used over secure HTTPS connections, as it transmits credentials in a reversible format.
Headers
Header Name | Required | Values |
|---|---|---|
Authorization | Required | Basic [base64] |
Example Payload Request
Hypertext Transfer Protocol
POST /api/controls/tone/start HTTP/1.1\r\n
Host: 10.0.0.161\r\n
Accept: */*\r\n
Content-Type: application/json\r\n
Content-Md5: 6e43c05d82f71e77c586e29edb93b129\r\n
Content-Length: 39\r\n
Authorization: Basic YWRtaW46YWxnbw==\r\n
User-Agent: curl/7.58.0\r\n
\r\n
[Full request URI: https://10.0.0.161/api/controls/tone/start]
[HTTP request 1/1]
[Response in frame: 760]
File data 39 bytes
JavaScript Object Notation: application/json
Object
Member Key: path
String value: page-notif.wav
Key: path
Member Key: loop
False value
Key: loopREST API Calls
The details below describe how the Algo REST API can access, manipulate, and trigger actions on Algo IP endpoints on your network through HTTP/HTTPS requests. Requesting systems can interact with Algo devices through a uniform and predefined set of stateless operations.
HTTP/HTTPS requests to “{device IP address}/URI” with a JSON payload will provide a JSON response. The payload format of all the requests and responses is JSON, except for file operations.
A PUT request changes or creates a permanent resource that survives a reboot, while a POST request only controls a device for the current session.
Note
If a configuration parameter value in an API command differs from the value set in the device’s web interface, the API setting takes precedence.
For example, if the web interface configures the device as a multicast receiver, but the API command sets it as a multicast transmitter, the device will operate as a multicast transmitter when processing the API request.
Device Information
Use the following API commands to retrieve or configure specific device parameters.
Retrieve the value of a specific parameter
Get the value of a specific configuration set on the device. Any parameter name listed in the Provisioning Parameter Guide applicable to the device can be used.
Applicable Products: All
Minimum Firmware Version: 3.3
URI
GET /api/settings/{parameter name}
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
{parameter name} | Refers to the parameter name for the configuration setting of interest. | String | Required | All values will be retrieved as strings, no matter the parameter or setting. For the parameter names, see the Parameter column in the following Guides: |
Sample Request
GET https://10.12.123.12/api/settings/audio.page.vol
Sample Response
{
"audio.page.vol": "0dB"
}Related Links:
Set the value of a specific parameter
Change or set the value of a specific device configuration.
Applicable Products: All
Minimum Firmware Version: 3.3
URI
PUT /api/settings
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
{parameter name} | Refers to the parameter name for the configuration setting of interest. | String | Required | All values will be retrieved as strings, no matter the parameter or setting. For the parameter names, see the Parameter column in the following guides: |
Sample Request
PUT https://10.12.123.12/api/settings
{
"audio.page.vol": "0dB"
}Related Links:
Retrieve a list of all tone files installed on the device
Get the full list of tones available on the device, including both pre-loaded tones and custom tones that were uploaded manually.
Applicable Products: All
Minimum Firmware Version: 5.0
URI
GET /api/info/tonelist
Note
The parameter
tonelistrefers to the tone files uploaded to the device. All devices are pre-loaded with 10+ tone files.
Response
Element | Description | |
|---|---|---|
tonelist | array of tone files | |
tone file names | The file name of the tone uploaded to the device | |
Sample Request
GET https://10.12.123.12/api/info/tonelist
Sample Response
{
"tonelist": [
"bell-na.wav",
"bell-uk.wav",
"buzzer.wav",
"chime.wav",
"dogs.wav",
"gong.wav",
"page-notif.wav",
"speech-test.wav",
"tone-1kHz-max.wav",
"warble1-low.wav",
"warble2-med.wav",
"warble3-high.wav",
"warble4-trill.wav"
]
}Retrieve the device information from the Status page of the device web interface
Get a list of the device information that is also available on the Status page of the device web interface.
Note
Available status options may vary depending on your device model.
Applicable Products: All
Minimum Firmware Version: 5.4
URI
GET /api/info/status
Response
The response content may vary depending on the device type.
Element | Description | Type | Response |
|---|---|---|---|
Device Name | The assigned name of the device. | String | {device name} |
SIP Registration | The status of SIP registration for the device. | String |
|
Call Status | The status of calling. | String |
|
Next Scheduled Action | The next scheduled action. | String |
|
Next Scheduled Event | The next scheduled event. | String |
|
Proxy Status | The configured SIP proxy server status. | String |
|
Provisioning Status | The current status of provisioning. | String |
|
MAC | The MAC address of the device. | String | The device’s MAC address |
IPv4 | If available, the IPv4 address of the device and the default gateway. | String | The device’s IPv4 address |
IPv6 | If available, the IPv4 address of the device and the default gateway. | String | The device's IPv6 address |
Switch Port ID | The ID of the port on the switch the device is plugged into. | String | {Port ID} |
Date / Time | The date and time currently used by the device. | String | Day Mon Date HH:MM:SS GMT Year |
Current Action | Used for scheduler events (tone, audio stream, or SIP call with tone). | String |
|
Multicast Mode | The multicast mode the device is set to. If the device is in receiver or transmitter mode, the zone it is in will also be displayed when active. | String |
|
Volume | The volume set on the device, including dB. | String | Page Volume: ## (##dB) |
Relay Input Status | A status of whether or not the relay input is in use. | String |
|
Temperature | The temperature of the device. | String | {Temperature} |
Stand (Docking Station) | The connection status of the 8450 stand. | String |
|
Action Button | The status of the Action Button | String |
|
Console | The status of the 8450 console. | String |
|
Sample Request
GET https://10.12.123.12/api/info/status
Sample Response
{
"Device Name": "pagingadapter-12345",
"SIP Registration": "Page, No Account;",
"Call Status": "Idle",
"Provisioning Status": "None Found",
"MAC": "00:22:ee:11:11:11",
"IPv4": "10.10.101.10/1, Gateway: 10.0.1.1",
"IPv6": "Not Available",
"Switch Port ID": "name eth0",
"Date / Time": "Thu Feb 6 17:13:44 GMT 2025",
"Current Action": "None",
"Multicast Mode": "Disabled, RTP: 0, PPA: 0, Spk: 0",
"Volume": "Page Volume: 10 (0dB)",
"Relay Input Status": "Disabled"
}
Retrieve the device information from the About page of the device web interface
Get a list of the device information that is also available on the About page of the device web interface.
Applicable Products: All
Minimum Firmware Version: 5.4
URI
GET /api/info/about
Response
Element | Description | Type |
|---|---|---|
Product Name | The full name of the product. | String |
Firmware Version | The firmware currently installed on the device. | String |
MAC Address | The MAC address of the device. | String |
Hardware Info | The version of the hardware. | String |
Manufacturer Certificate | States whether or not the manufacturer’s certificate has been installed. | String |
Sample Request
GET https://10.12.123.12/api/info/about
Sample Response
{
"Product Name": "Algo 8301 IP Paging Adapter & Scheduler",
"Firmware Version": "5.5_beta11",
"MAC Address": "00:22:ee:11:11:11",
"Manufacturer Certificate": "Installed"
}Read Relay Input Status
Retrieve the current status of the relay input.
Applicable Products: All except 8450
Minimum Firmware Version: 3.3
URI
GET /api/info/input.relay.status
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
input.relay.status | Refers to the overall relay input status. | String | Required | Returns |
input.relay1.status | Refers to relay input 1 status (8063 only). | String | Optional | Use when reading relay 1 state on 8063. |
input.relay2.status | Refers to relay input 2 status (8063 only). | String | Optional | Use when reading relay 2 state on 8063. |
Sample Request
GET https://10.12.123.12/api/info/input.relay.status
Sample Response
{
"input.relay.status": "Idle"
}
Device Management
You can manage your device using API commands, such as restoring its factory default settings and checking for the latest firmware.
Restore the device to factory default
Restore the device to the factory default settings.
Applicable Products: All
Minimum Firmware Version: 5.4
URI
POST /api/settings/action/restore
Sample Request
POST https://10.12.123.12/api/settings/action/restore
Sample Response
{"Restore":"Restoring to default"}Reboot the device
Reboot the device.
Applicable Products: All
Minimum Firmware Version: 3.3
URI
POST /api/controls/reboot
Sample Request
POST https://10.12.123.12/api/controls/reboot
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Restart Main Application Process
Restart the main application process on the device.
Applicable Products: All
Minimum Firmware Version: 3.3
URI
POST /api/controls/reload
Sample Request
POST https://10.12.123.12/api/controls/reload
Check for the latest firmware available for the device
Get the firmware version the device is currently using.
Applicable Products: All
Minimum Firmware Version: 4.1
URI
POST /api/controls/upgrade/check
Response
Element | Responses | Type |
|---|---|---|
version |
| String |
Sample Request
POST https://10.30.238.37/api/controls/upgrade/check
Sample Response
{
"version": "updated"
}Upgrade the device with the most recently available firmware
Check the Algo provisioning server for the latest firmware version and upgrade to that version.
Applicable Products: All
Minimum Firmware Version: 4.1
URI
POST /api/controls/upgrade/start
Response
Element | Description | Type |
|---|---|---|
status |
| String |
url | The URL for the firmware download file. | String |
Sample Request
POST https://10.30.238.37/api/controls/upgrade/start
Sample Response
{
"status":"updated"
}Set the API multicast mode
Applicable to multicast streams controlled by the /api/controls/tone/start command. Use this call to update stream parameters, but not change the configurations directly on the device.
Applicable Products: All except 8450
Minimum Firmware Version: 5.0
URI
POST /api/state/mcast/update/
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
mode | The multicast mode of the device. | String | Required | Valid values:
|
address | Use the IP address used for the command: /api/controls/tone/start/ | String | Required | |
port | Use the port number used for the command: /api/controls/tone/start/ | String | Required | |
type | The multicast transfer type. | String | Required | Valid values:
|
group | The Poly group being used. | Integer | Optional | Valid values: numbers 1 through 25. Applicable only when “type” = “poly” |
Sample Request
POST https://10.12.123.12/api/state/mcast/update/
{
"mode": "sender",
"address": “224.0.2.60",
"port": "50002",
"type": "rtp",
"group": "1"
}File Management
You can manage files in the system File Manager using API commands, such as listing, uploading new files, or deleting existing files.
List the file folder contents or download a file
You can use GET /api/files/{filepath} or POST /api/files/download to do the following:
Retrieve a list of files available in a specified folder within the device's System → File Manager.
You must specify the target file folder name in the request.
Download a file that is available in the device's System → File Manager.
You must specify the target file name in the request.
Note
With a GET command, the payload is included in the URI. With a POST command, the payload is included in the JSON body.
Applicable Products: All except 8039
Minimum Firmware Version: 5.5
URI
GET /api/files/{filepath or filename}POST /api/files/download
Parameters
Element | Description | Type | Required | Valid Values |
|---|---|---|---|---|
{filepath} | The name of the folder from which to list the file contents. | string | Required if you want to get the file directory content. | Valid values: The name of any file that exists in your device's File Manager. |
{filename} | The name of the file to be downloaded. | string | Required if you want to download a file. | Valid values: The name of any file that exists in your device's File Manager. |
GET Sample Request for Listing a File Folder Contents
GET https://10.30.238.37/api/files/tones
GET Sample Response for Listing a File Folder Contents
{
"filelist": [
"bell-na.wav",
"bell-uk.wav",
"buzzer.wav",
"chime.wav",
"dogs.wav",
"gong.wav",
"page-notif.wav",
"speech-test.wav",
"tone-1kHz-max.wav",
"warble1-low.wav",
"warble2-med.wav",
"warble3-high.wav",
"warble4-trill.wav"
]
}
POST Sample Request for Listing a File Folder Contents
POST https://10.12.123.12/api/files/download
{
"path": "/tones"
}
POST Sample Response for Listing a File Folder Contents
{
"filelist": [
"netcap-20250110t194944re4.pcap",
"netcap-20250110t195031r55.pcap",
"netcap-20250122t221635rc9.pcap",
"netcap-20250130t222903r12.pcap",
"netcap-20250130t231453ra0.pcap",
"netcap-20250203t194006rf0.pcap",
"netcap-20250203t194559red.pcap"
]
}GET Sample Request for Downloading a File
GET https://10.30.238.37/api/files/tones/chime.wav
POST Sample Request for Downloading a File
POST https://10.12.123.12/api/files/download
{
"path": "/tones/chime.wav"
}
Add a new file or replace an existing one
When this call is used, a new file with the designated file path and file name will be added to the device. If the file path and file name already exist, the existing file will be replaced by the one used in the call.
Applicable Products: All except 8039
Minimum Firmware Version: 5.5
URI
PUT /api/files/{filepath}/{filename}
Parameters
Element | Description | Required | Type |
|---|---|---|---|
{filepath} | The folder structure to be directed to within the device's File Manager. | Required | String |
{filename} | The file name. | Required | String |
Sample Request
Here is an example using Postman to send this command:
Item | Configuration |
|---|---|
Method | PUT |
URL | |
Auth | Basic Auth Username: algo Password: algo |
Headers | Key: Content-Type Value: Application/octet-stream |
Body | Binary Select the target audio file from your local drive. |
.png)
Sample Response
None. Go to your device's web interface System → File Manager to check whether the file has been uploaded successfully.
Delete a file
Select a file to delete by specifying the file path.
Applicable Products: All except 8039
Minimum Firmware Version: 5.5
When this call is used, the specified file will be deleted from the device.
URI
DELETE /api/files/
Parameters
Element | Description |
|---|---|
{filepath} | The folder structure to be directed to within the device's File Manager. |
{filename} | The file name. |
Sample Request
DELETE https://10.12.123.12/api/files/
{
"path": "/tones/chime.wav"
}Sample Response
None. Go to your device’s web interface System → File Manager to check whether the file has been deleted successfully.
Door Control
You can lock or unlock a door using API commands.
Lock a door
Control whether the device being called or a secondary connected device locks a door.
Applicable Products: 8039, 8028(G2), 8201, 8063
Minimum Firmware Version: 3.3
URI
POST /api/controls/door/lock
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
doorid | Used to indicate whether lock control is to be triggered directly by the device or indirectly by a connected secondary device. | String | Required | Valid values:
|
Note
netdc1: Control the remote network door controller (8063)
local: Control the local relay.
Sample Request
POST https://10.12.123.12/api/controls/door/lock
{
"doorid": "local"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Unlock a door
Control whether the device being called or a secondary connected device unlocks a door.
Applicable Products: 8039, 8028(G2), 8201, 8063
Minimum Firmware Version: 3.3
URI
POST /api/controls/door/unlock
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
doorid | Used to indicate whether lock control is to be triggered directly by the device or indirectly by a connected secondary device. | String | Required | Valid values:
|
Note
netdc1: Control the remote network door controller (8063)
local: Control the local relay
Sample Request
POST https://10.12.123.12/api/controls/door/unlock
{
"doorid": "local"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Momentarily unlock a door
Control whether the device being called or a secondary connected device unlocks a door for a specified duration.
Applicable Products: 8039, 8028(G2), 8201, 8063
Minimum Firmware Version: 5.5
URI
POST /api/controls/door/munlock
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
doorid | Used to indicate whether lock control is to be triggered directly by the device or indirectly by a connected secondary device. | String | Required | Valid values:
|
duration | The time in seconds that the door should be unlocked for. | String | Required |
Note
netdc1: Control the remote network door controller (8063)
local: Control the local relay
Sample Request
POST https://10.12.123.12/api/controls/door/munlock
{
"doorid": "netdc1",
"duration": "10"
}Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Audio Control
You can use API commands to control device audio, such as retrieving ambient noise or playing and stopping an audio file.
Retrieve the ambient noise
Get the dB measurement of the ambient noise of the environment the device is in.
Applicable Products: All speakers, 8450
Minimum Firmware Version: 3.3
URI
GET /api/info/audio.noise.level
Response
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
audio.noise.level | The measured level of ambient noise in dB. | String | Required | Will only collect this data if ambient noise compensation is enabled. |
Sample Request
GET https://10.12.123.12/api/info/audio.noise.levelSample Response
{
"audio.noise.level": "54"
}
Change the ambient noise level
Manually update the ambient noise level. This is intended for devices controlling volumes, but may not be directly in the environment where the noise is. For example, a securely located 8301 set as a multicast transmitter controlling the audio of multiple speakers set as multicast receivers in a warehouse.
Applicable Products: 8190, 8190s, 8516, 8410, 8420, 8186, 8450, 8188, 8189, 8196, 8197, 8198, 8199, 8180g2, 8301, 8305, 8507
Minimum Firmware Version: 5.4
URI
POST /api/controls/noise/update
Parameters
Element | Description | Type | Required |
|---|---|---|---|
level | The measured level of ambient noise in dB. | String | Required |
Sample Request
POST https://10.12.123.12/api/controls/noise/update
{
"level": "50"
}
Sample Response
None. You can use an API command to get the ambient noise level to see whether the change has been made.
Play the default test tone or turn on a strobe light
Trigger a test tone on supported audio devices and activate a strobe light on visual alert devices.
Applicable Products:
8190, 8190s, 8300, 8039, 8028 (G2), 8186, 8373, 8375, 8188, 8189, 8196, 8197, 8198, 8199, 8180( G2), 8301, 8305, 8201, 8203: Play the default test tone.
8128 (G2), 8138: Start a steady strobe light for five seconds.
Minimum Firmware Version: 5.4
URI
POST /api/controls/test/start
Sample Request
POST https://10.12.123.12/api/controls/test/startSample Response
None. The observable outcome is whether the device performs the requested action or not.
Loop the default test tone or turn on a strobe light
Trigger a test tone loop on supported audio devices and activate a steady strobe light on visual alert devices.
Applicable Products:
8190, 8190s, 8516, 8300, 8039, 8410, 8420, 8028 (G2), 8186, 8373, 8375, 8188, 8189, 8196, 8197, 8198, 8199, 8180 (G2), 8301, 8305, 8201, 8203, 8507: Loop playing the default test tone.
8128 (G2), 8138: Start a steady strobe light.
Minimum Firmware Version: 5.4
URI
POST /api/controls/test/loop
Sample Request
POST https://10.12.123.12/api/controls/test/loopSample Response
None. The observable outcome is whether the device performs the requested action or not.
Stop the default tone or strobe light
Stop the default test tone on supported Algo audio devices and turn off the test strobe light on visual alert devices.
Applicable Products:
8190, 8190s, 8300, 8039, 8028 (G2), 8186, 8373, 8375, 8188, 8189, 8196, 8197, 8198, 8199, 8180 (G2), 8301, 8305, 8201, 8203: Stop default test tone.
8128 (G2), 8138: Stop the test strobe light.
Minimum Firmware Version: 5.4
URI
POST /api/controls/test/stop
Sample Request
POST https://10.12.123.12/api/controls/test/stopSample Response
None. The observable outcome is whether the device performs the requested action or not.
Play or loop a selected tone
Play a selected tone uploaded to the device once or on a loop.
Applicable Products: All speakers, paging adapters, 8028(G2), 8201, 8203, 8039
Minimum Firmware Version: 5.4
URI
POST /api/controls/tone/start
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
path | The file name of the tone to be played | string | Required | Default valid values:
Note: The file name of any file stored under the System → File Manager → tones folder is a valid value. |
loop | Set the tone file to loop | boolean | Required | Valid values:
|
mcast | Configure the device to multicast transmit and play a tone or loop a tone on a receiving device. | boolean | Optional | Valid values:
Multicast must be on to use. If multicast is turned on via Note: For firmware version 5.5 and earlier, this parameter is available only on 8301 devices. |
playback | Whether the receiving endpoint plays the multicast message | string | Optional | Valid values:
Note: For firmware version 5.5 and earlier, this parameter is available only on 8301 devices. |
state | The multicast parameters. | string | Optional | Note: For firmware version 5.5 and earlier, this parameter is available only on 8301 devices. |
mode | The multicast mode of the device | string | Optional | Valid values:
|
address | The IP address of the receiving device. | string | Optional | |
port | The port used by the receiving device. | string | Optional | |
type | The multicast transfer type. | string | Optional | Valid values:
|
group | The Poly group being used. | integer | Optional | Valid values: numbers 1 through 25. Applicable only when “type” is set as “poly”. |
Sample Request
{
"path": "chime.wav",
"loop": true,
"mcast": true,
"playback": false,
"state": {
"mode": "sender",
"address": "<address>",
"port": "<port>",
"type": "poly",
"group": 1
}
}POST https://10.12.123.12/api/controls/tone/start
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Stop looping tone on firmware 5.5 and later
Stop the looping tone.
Applicable Products: All speakers, paging adapters, 8028(G2), 8201, 8203, 8039
URI
POST /api/controls/tone/stop
Sample Request
POST https://10.12.123.12/api/controls/tone/stopSample Response
None. The observable outcome is whether the device performs the requested action or not.
Stop a selected tone on firmware 5.4
Stop the looping of a selected tone. For firmware 5.4, you must include a payload in the API request.
Applicable Products: All speakers, paging adapters, 8028(G2), 8201, 8203, 8039
URI
POST /api/controls/tone/stop
Parameters
Element | Description | Type | Required |
|---|---|---|---|
path | The file name of the tone being played. | string | Required |
Sample Request
POST https://10.12.123.12/api/controls/tone/stop
{
"path": "chime.wav"
}Start listening to a direct audio stream
Open the path to an audio stream to listen to.
Applicable Products: All except 8450
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/rx/start
Parameters
Element | Description | Type | Required |
|---|---|---|---|
port | Port to listen. | string | Required |
Sample Request
POST https://10.12.123.12/api/controls/rx/start
{
"port": "5001"
}Stop listening to a direct audio stream
Close the path to an audio stream to stop listening.
Applicable Products: All except 8450
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/rx/stop
Sample Request
POST https://10.12.123.12/api/controls/rx/stopCall Control
You can use API commands to control calls, such as starting or stopping a SIP call.
Call a phone extension and play an audio file
Call an assigned phone extension and play an audio file. The extension can be used to broadcast the audio file via multicast for a set amount of time if multicast is configured.
Applicable Products: All speakers, 8301
Minimum Firmware Version: 3.3
URI
POST /api/controls/call/start
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
extension | The phone extension to call. | String | Required | |
tone | The file name of the tone to play. | String | Required | Used to call and play a tone. |
interval | Specify how long to wait (in seconds) before the tone plays again after it ends. | String | Optional | |
maxdur | The total time (in seconds) to play the tone on a repeated loop. | String | Optional |
Sample Request
POST https://10.12.123.12/api/controls/call/start
{
"extension": "123",
"tone": "chime.wav",
"interval": "3",
"maxdur": "60"
}
End a call to a phone extension
End a call to a phone extension.
Applicable Products: All speakers, 8301
Minimum Firmware Version: 3.3
URI
POST /api/controls/call/stop
Sample Request
POST https://10.12.123.12/api/controls/call/stopInitiate a one-way page call to receive an audio stream from a specified extension
Open an extension to be able to receive an audio stream. The audio stream must be configured separately.
Applicable Products: All Speakers
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/call/page
Parameters
Element | Description | Type | Notes |
|---|---|---|---|
extension | The phone extension to call | String |
Sample Request
POST https://10.12.123.12/api/controls/call/page
{
"extension": "123"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Relay Control
You can use API commands to control relay input and output. For example, you can check the status of a relay input terminal or activate a relay output.
Retrieve the status of the relay input terminal
Get the status of a relay input terminal to see if it is in use on the device.
Applicable Products: 8301, 8305, 8186, 8188, 8189, 8180, 8190, 8190S, 8410, 8420, 8138, 8128
Minimum Firmware Version: 3.3
URI
GET api/info/input.relay.status
Response
Element | Description | Type | Notes |
|---|---|---|---|
input.relay.status | States whether or not the relay is connected and actively in use. | String | Responses include:
If active, will also describe the activity. |
Sample Request
GET https://10.12.123.12/api/info/input.relay.statusSample Response
{
"input.relay.status": "Disabled"
}Retrieve the status of an 8063 input terminal
Get the status of an input terminal to see if it is in use on the device.
Applicable Products: 8063
Minimum Firmware Version: 4.1
URI
GET api/info/input.relay1.status
or
GET api/info/input.relay2.status
Response
Element | Description | Type | Notes |
|---|---|---|---|
input.relay{number}.status | States whether or not the relay is connected and actively in use. | String | Responses include:
If active, will also describe the activity. |
Sample Request
GET https://10.12.123.12/api/info/input.relay1.statusSample Response
{
"input.relay1.status": "Idle"
}Enable the 8063 24V AUX Out Relay
Enable the 24V AUX out relay on the 8063.
Applicable Products: 8063
Minimum Firmware Version: 5.0
URI
POST /api/controls/24v/enable
Sample Request
POST https://10.12.123.12/api/controls/24v/enableDisable the 8063 24V AUX Out Relay
Disable the 24V AUX out relay on the 8063.
Applicable Products: 8063
Minimum Firmware Version: 5.0
URI
POST api/controls/24v/disable
Sample Request
POST https://10.12.123.12/api/controls/24v/disableEnable the 8063 Output Relay
Enable the output relay on the 8063.
Applicable Products: 8063
Minimum Firmware Version: 5.0
URI
POST api/controls/relay/enable
Sample Request
POST https://10.12.123.12/api/controls/relay/enableEnable the 8063 Output Relay Momentarily
Enable the output relay on the 8063.
Applicable Products: 8063
Minimum Firmware Version: 5.6
URI
POST api/controls/relay/menable
Parameters
Element | Description | Type | Required |
|---|---|---|---|
duration | The time (in seconds) the relay should stay enabled | Int | Required |
Sample Request
POST https://10.12.123.12/api/controls/relay/menable
{
"duration": 15
}Disable the 8063 Output Relay
Disable the output relay on the 8063.
Applicable Products: 8063
Minimum Firmware Version: 5.0
URI
POST api/controls/relay/disable
Sample Request
POST https://10.12.123.12/api/controls/relay/disableScreen Control
You can use API commands to control content displayed on the IP Display, such as displaying an image or turning on a strobe light.
Display a single image on the device screen
Display one static image on the device screen.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/start
Parameter
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
type | The type of background to display | String | Required | Set as “image” |
image1 | The file name of the image | String | Required |
Sample Request
POST https://10.12.123.12/api/controls/screen/start
{
"type": "image",
"image1": "school.jpeg"
}Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Display scrolling text over an image on the device screen
Display scrolling text on top of a static image on the device screen.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/start
Parameter
Element | Description | Type | Required | Notes | |
|---|---|---|---|---|---|
type | The type of background to display. | String | Required | Set as “image” | |
image1 | The file name of the image. | String | Required | ||
text1 | The text to be displayed on the device. | String | Required | ||
textColor | The color of the text. | String | Optional | Valid values:
For example, use either of the following to set the text color as black: For more information, see HTML Color Names. Default= “black” | |
textFont | The font of the text. | String | Optional | Valid values include:
Default= “inter” | |
textPosition | Where the text should be displayed on the screen. | String | Optional | Valid values include:
Default= “bottom” | |
textScroll | Turn text scroll on or off. | String | Optional | Valid values include:
Default=”true” | |
textScrollSpeed | The speed at which the text scrolls. | String | Optional | Valid values include:
Default= “1” | |
textSize | The size of the text. | String | Optional | Valid values include:
Default=”large” |
Sample Request
POST https://10.12.123.12/api/controls/screen/start
{
"type": "image",
"image1": "school.jpeg",
"text1": "Class is in session",
"textColor": "forestgreen",
"textFont": "inter",
"textPosition": "middle",
"textScroll": true,
"textScrollSpeed": "3",
"textSize": "medium"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Display a clock on the device screen
Display a digital or analog clock on the device screen.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/start
Parameter
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
type | The type of clock to display | String | Required | Valid values:
|
clockFormat | Display the time in a 12h or 24h format. | String | Optional | Use if type=digitalClock Valid values:
Default= “24h” |
clockSeconds | clockSeconds | Boolean | Optional | Use if type=digitalClock Default= “false” |
clockSecondsAnalog | Enable or disable displaying clock seconds | Boolean | Optional | Use if type= analogClock Default= “true” |
clockBgColor | The background color of the clock | String | Optional | Use if type=digitalClock Valid values:
|
clockFgColor | The foreground color of the clock | String | Optional | Use if type=digitalClock Valid values:
Default= “white” |
analogBgColor | The background color of the clock | String | Optional | Use if type=analogClock Valid values:
|
analogFgColor | The foreground color of the clock | String | Optional | Use if type=analogClock Valid values:
Default= “black” |
analogSecondsColor | The color of the seconds hand on the analog clock | String | Optional | Use if type=analogClock Valid values:
|
clockFont | The font of the clock text | String | Optional | Use if type=digitalClock Valid values include:
Default= “inter” |
clockBgImage | The file name of the background image to use behind the clock if needed. | String | Optional |
Sample Request for Digital Clock
POST https://10.12.123.12/api/controls/screen/start
{
"type": "digitalClock",
"clockFormat": "12h",
"clockSeconds": "1",
"clockBgColor": "navy",
"clockFgColor": "beige",
"clockFont": "inter",
"clockBgImage": "school-entrance.jpeg"
}
Sample Request for Analog Clock
POST https://10.12.123.12/api/controls/screen/start
{
"type": "analogClock”
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Display flashing images on the device screen
Display multiple images one after another on the device screen.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/start
Parameter
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
type | The type of background to display | String | Required | Set as “blitz” |
image1 | The image file name to use | String | Required | |
image2 | The image file name to use | String | Required |
Sample Request
POST https://10.12.123.12/api/controls/screen/start
{
"type": "blitz",
"image1": "school_entrance.jpeg",
"image2": "school_logo.jpeg"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Display a slideshow on the device screen using slide names
Select pre-configured slides to display on the screen by specifying the slide names.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/start
Parameter
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
duration | Duration of each slide in seconds | Integer | Required | |
slideNames | The file names of the slides to display in the slideshow | Comma-separated values as a string | Required | Format is: “slide1, slide2, slide3, …” |
overrideStrobe | Use specified strobe parameters for the slideshow instead of the strobe parameters of each individual slide. | Boolean | Required | Valid values include:
|
Sample Request
POST https://10.12.123.12/api/controls/screen/start
{
"duration": 10,
"slideNames": "slide1, slide2, slide3",
"overrideStrobe": true
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Turn on the strobe light
You can use the parameters below to turn on a strobe light. These parameters work with the following commands:
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
strobeFlash | The strobe flash pattern to use | Integer | Required | Valid values: See Algo Strobe Light Pattern Reference Guide |
strobeColor | The color to display on the strobe | String | Required | Valid values:
|
strobeColor2 | The second color to display on the strobe if desired | String | Required | Valid values:
|
strobeLedlvl | The brightness of the strobe light. | String | Required | Valid values are between 0-255. |
Related Links
Stop a screen pattern and return the screen to default
Return a screen to its default setting.
Applicable Products: 8410, 8420
Minimum Firmware Version: 5.3.4
URI
POST /api/controls/screen/stop
Sample Request
POST https://10.12.123.12/api/controls/screen/stopSample Response
None. The observable outcome is whether the device performs the requested action or not.
Strobe Lights
You can control strobe lights using API commands, such as starting or stopping a light.
Start a strobe light
Turn on a strobe light.
Applicable Products: 8128(G2), 8138, 8190S
Minimum Firmware Version: 3.3
URI
POST /api/controls/strobe/start
Parameters
Element | Description | Type | Notes |
|---|---|---|---|
pattern | The number of the pattern set. | Integer | Valid values: See Algo Strobe Light Pattern Reference Guide |
color1 | The color to set the strobe | String | Valid values:
|
color2 | The second color for the strobe to use if the pattern uses two colors. | String | Only applicable to 8138. Valid values:
|
ledlvl | The brightness of the strobe light. | String | Valid values are between 0-255. |
Related Links
Sample Request
POST https://10.12.123.12/api/controls/strobe/start
{
"pattern": 1,
"color1": "red",
"color2": "blue",
"ledlvl": "100"
}
Sample Response
None. The observable outcome is whether the device performs the requested action or not.
Stop a strobe light
Turn off a strobe light.
Applicable Products: 8128(G2), 8138, 8190S
Minimum Firmware Version: 3.3
URI
POST /api/controls/strobe/stop
Sample Request
POST https://10.12.123.12/api/controls/strobe/stopSample Response
None. The observable outcome is whether the device performs the requested action or not.
8450 Button Control
You can use API commands to activate or deactivate 8450 buttons. This lets you trigger or stop the actions linked to those buttons.
Activate an 8450 Button
Activate a button on an 8450 screen. This triggers the action associated with that button.
Applicable Products: 8450
Minimum Firmware Version: 5.6
URI
POST /api/controls/console/button/activate
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
id | The button identifier. | string | Required | Make sure it matches the Identifier you configured for the button on its configuration screen. To find your button ID:
|
Sample Request
POST https://10.12.123.12/api/controls/console/button/activate
{
"id":"weather-incident"
} Sample Response
None. The observable outcome is whether the device performs the requested action or not.
About duplicated button identifiers
In case of duplicated button identifiers, the action priority is determined by its hosting button or screen, in the following order:
Action button (single press)
Action button (double press)
Home screen
Emergency screen
Emergency Paging screen
Paging screen
Custom screens 1 → 20 (The custom screen with the lower number takes priority)
Stop Ongoing Actions on 8450
Stop active events, such as paging, SIP calls, or tone playback.
Applicable Products: 8450
Minimum Firmware Version: 5.6
URI
POST /api/controls/console/event/stop
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
type | The event type. | string | Required | Valid values:
|
Sample Request
POST https://10.12.123.12/api/controls/console/event/stop
{
"type":"all"
} Sample Response:
Stopped 1 event(s).
List active events on 8450
List active events on the 8450, such as ongoing paging, SIP calls, or tone playback.
Applicable Products: 8450
Minimum Firmware Version: 5.6
URI
GET /api/console/event/status
Sample Request
GET https://10.12.123.12/api/console/event/status Sample Response:
{"active":[
{"type":"emergency"},
{"type":"pageMic"}
]} .png)
.png)