Skip to main content

AXIS Audio Manager Pro API

The VAPIX® AXIS Audio Manager Pro API can be used together with the AXIS Audio Manager Pro software to manage larger and more advanced audio installations. Supported features include central control, zone management, scheduling, system health monitoring and real time configuration. Using this API makes it possible to make programmatic interactions with an existing Audio Manager Pro installation, including:

  • Start/Stop the playback of an audio file.
  • Silence either the whole or parts of a site.

Access to the API is enabled in the System settings in the Audio Manager Pro interface. Clients are then able to authenticate using the Digest Authentication method and the username and password specified in the System settings.

Further information on how to use the API is available in the document How To AXIS Audio Manager Pro API, available from AXIS Audio Manager Pro.

Overview

The API is divided into the following sections containing their own operations and methods:

  • Audio sessions — Plays a live or pre-recorded announcement to either the entire or parts of a site. The session contains a list of designated targets and a priority setting. An audio session can be used one time or saved for future use.
  • Targets — Endpoints used to interact with available targets such as physical zones and destinations. Targets can be enabled/disabled or be used to define where audio sessions should be played.
  • Audio files — Announcements or music available on the AXIS Audio Manager Pro server. These endpoints can be used to retrieve and list information about them.
  • Volume controllers — Offsets the volume of content classes in whole or parts of the audio site. The volume controllers are typically created during installation and setup, where the endpoints are used to interact with already created volume controllers.
  • Visual profiles — Configures the display and light behavior of compatible Axis devices. These endpoints can be used to retrieve the profiles that define text messages, colors, patterns and synchronization for visual alerts and information.
  • Server info — Returns basic information about the AXIS Audio Manager Pro server.
  • Paging configs — Provides SIP paging configuration details, including the information needed to call a SIP extension for one-way or two-way communication.

Authentication

Only Digest authentication over HTTPS is supported for AXIS Audio Manager Pro API.

Audio sessions

List audio sessions

Use this method to retrieve a list of available audio sessions.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codecs": [
{
"audioProfile": "g711aMono8kHz",
"payloadType": 127
}
],
"multicastGroup": "string",
"port": 0,
"type": "RTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"type": "SIP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"holdup": 200,
"type": "WS"
}
]
ParameterExample valueValid valuesDescription
HTTPThe HTTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.
RTPThe RTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
audioProfile=<string>g711aMono8kHzg711aMono8kHz g711uMono8kHz g722Mono16kHz l16Stereo48kHz l16Mono48kHz l16Stereo44kHz l16Mono44kHz l16Stereo32kHz l16Mono32kHz l16Stereo16kHz l16Mono16kHz mp2Stereo48kHz opusStereo48kHz opusMono48kHzThe audio profile.
payloadType=<integer>The payload type. Only used by codecs with dynamic payload types.
multicastGroup=<string>IPv4 and IPv6 address of a multicast group. Should be specified when the RTP stream is transmitted via multicast instead of unicast.
port=<integer>The RTP IP port. If a port is not included, the server will assign one and return it to the client. If a port is specified and occupied on the server, or doesn't meet the configured range, an error will be returned.
type=<string>RTPRTPThe type of the audio session.
SIPThe SIP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The dialing extension. When a user dials this number, the audio session will be used.
type=<string>SIPSIPThe audio session type.
WSThe WebSocket audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>WSWSThe audio session type.

Error responses

Create an audio session

Use this method to create a new audio session. Available types are HTTP, RTP, SIP and WS.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/audioSessions" \
--data '[
{
"customId": "my-app-session-12345",
"customText": "string",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codecs": [
{
"audioProfile": "g711aMono8kHz",
"payloadType": 127
}
],
"multicastGroup": "string",
"port": 0,
"type": "RTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"type": "SIP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"holdup": 200,
"type": "WS"
}
]'
ParameterExample valueValid valuesDescription
HTTPThe HTTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.
RTPThe RTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
audioProfile=<string>g711aMono8kHzg711aMono8kHz g711uMono8kHz g722Mono16kHz l16Stereo48kHz l16Mono48kHz l16Stereo44kHz l16Mono44kHz l16Stereo32kHz l16Mono32kHz l16Stereo16kHz l16Mono16kHz mp2Stereo48kHz opusStereo48kHz opusMono48kHzThe audio profile.
payloadType=<integer>The payload type. Only used by codecs with dynamic payload types.
multicastGroup=<string>IPv4 and IPv6 address of a multicast group. Should be specified when the RTP stream is transmitted via multicast instead of unicast.
port=<integer>The RTP IP port. If a port is not included, the server will assign one and return it to the client. If a port is specified and occupied on the server, or doesn't meet the configured range, an error will be returned.
type=<string>RTPRTPThe type of the audio session.
SIPThe SIP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The dialing extension. When a user dials this number, the audio session will be used.
type=<string>SIPSIPThe audio session type.
WSThe WebSocket audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>WSWSThe audio session type.

Successful response

  • HTTP Code: 200 Audio session created
  • Content-Type: application/json

Response body example

[
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codecs": [
{
"audioProfile": "g711aMono8kHz",
"payloadType": 127
}
],
"multicastGroup": "string",
"port": 0,
"type": "RTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"type": "SIP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"holdup": 200,
"type": "WS"
}
]
ParameterExample valueValid valuesDescription
HTTPThe HTTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.
RTPThe RTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
audioProfile=<string>g711aMono8kHzg711aMono8kHz g711uMono8kHz g722Mono16kHz l16Stereo48kHz l16Mono48kHz l16Stereo44kHz l16Mono44kHz l16Stereo32kHz l16Mono32kHz l16Stereo16kHz l16Mono16kHz mp2Stereo48kHz opusStereo48kHz opusMono48kHzThe audio profile.
payloadType=<integer>The payload type. Only used by codecs with dynamic payload types.
multicastGroup=<string>IPv4 and IPv6 address of a multicast group. Should be specified when the RTP stream is transmitted via multicast instead of unicast.
port=<integer>The RTP IP port. If a port is not included, the server will assign one and return it to the client. If a port is specified and occupied on the server, or doesn't meet the configured range, an error will be returned.
type=<string>RTPRTPThe type of the audio session.
SIPThe SIP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"LOW""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The dialing extension. When a user dials this number, the audio session will be used.
type=<string>SIPSIPThe audio session type.
WSThe WebSocket audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>PCMPCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>WSWSThe audio session type.

Error responses

Delete an audio session

Use this method to delete an existing audio session identified with the customId. Deleting the audio session will cancel any ongoing audio playback defined by the session.

Request

curl --request DELETE \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/custom/{customId}"
ParameterExample valueValid valuesDescription
customId=<string> OptionalThe custom ID of the audio session. Must match the customIdspecified when the session was created.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Start playback of audio files in an audio session

Use this method to trigger playback of an array of audio files from the content library of a site to an audio session. If called when an audio files is played in the audio session, the current playback will be replaced.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/custom/{customId}/playAudioFiles"
ParameterExample valueValid valuesDescription
customId=<string> OptionalThe custom ID of the audio session. Must match the customIdspecified when the session was created.
{
"customText": "Emergency: Evacuate Building Now",
"fileIds": ["12", "15"],
"repeat": 1,
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0
}
ParameterExample valueValid valuesDescription
customText=<string> OptionalEmergency: Evacuate Building NowA text message displayed on a visual output device, which will override the text property defined in the associated visual profile. If this field is omitted, the text from the visual profile will be used.
fileIds=<array>1212, 15An audio file ID that will be played in a sequence. Files will be played in the order specified in the array, where each file start immediately after the previous one ends.
repeat=<integer>51, 5Indicates the number of times the audio files will be played. A number lower or equal to zero indicates an infinite number of repetitions. It can be stopped by calling stopAudioFiles or by deleting the audioSession.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalControls which visual profile that should be used with the playback.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Stop audio files with a customId

Use this method to stop a playback of audio files in an audio session by using a customId.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/custom/{customId}/stopAudioFiles"
ParameterExample valueValid valuesDescription
customId=<string> OptionalThe custom ID of the audio session. Must match the customIdspecified when the session was created.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Play one shot audio files

Use this method to create a temporary audio session and trigger playback for an array of audio files. The audio session is deleted after playback, but can be also be stopped by deleting the audio session returned by the request.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/audioSessions/oneshotPlayAudioFiles" \
--data '{
"customId": "my-app-session-12345",
"customText": "Emergency: Evacuate Building Now",
"fileIds": [
"12",
"15"
],
"prio": "LOW",
"repeat": 1,
"targets": [
"zon_1256",
"dev_101"
],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0
}'
ParameterExample valueValid valuesDescription
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> Optional"Emergency: Evacuate Building Now"A custom text that will override the default text from the visual profile. If this field is omitted, the text from the visual profile will be used.
fileIds=<array>1212, 15An audio file ID that will be played in a sequence. Files will be played in the order specified in the array, where each file start immediately after the previous one ends.
prio=<string>"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
repeat=<integer>51, 5Indicates the number of times the audio files will be played. A number lower or equal to zero indicates an infinite number of repetitions. It can be stopped by calling stopAudioFiles or by deleting the audioSession.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalControls which visual profile that should be used with the playback.

Successful response

  • HTTP Code: 200 Audio session created
  • Content-Type: application/json

Response body example

[
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codecs": [
{
"audioProfile": "g711aMono8kHz",
"payloadType": 127
}
],
"multicastGroup": "string",
"port": 0,
"type": "RTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"type": "SIP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"holdup": 200,
"type": "WS"
}
]
ParameterExample valueValid valuesDescription
HTTPThe HTTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.
RTPThe RTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
audioProfile=<string>g711aMono8kHzg711aMono8kHz g711uMono8kHz g722Mono16kHz l16Stereo48kHz l16Mono48kHz l16Stereo44kHz l16Mono44kHz l16Stereo32kHz l16Mono32kHz l16Stereo16kHz l16Mono16kHz mp2Stereo48kHz opusStereo48kHz opusMono48kHzThe audio profile.
payloadType=<integer>The payload type. Only used by codecs with dynamic payload types.
multicastGroup=<string>IPv4 and IPv6 address of a multicast group. Should be specified when the RTP stream is transmitted via multicast instead of unicast.
port=<integer>The RTP IP port. If a port is not included, the server will assign one and return it to the client. If a port is specified and occupied on the server, or doesn't meet the configured range, an error will be returned.
type=<string>RTPRTPThe type of the audio session.
SIPThe SIP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"LOW""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The dialing extension. When a user dials this number, the audio session will be used.
type=<string>SIPSIPThe audio session type.
WSThe WebSocket audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>PCMPCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>WSWSThe audio session type.

Error responses

Delete a specific audio session

Use this method to delete an existing audio session identified with the session id. Deleting the audio session will also cancel any ongoing audio playback defined by the session.

Request

curl --request DELETE \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/<audio session id>"
ParameterDescription
audioSessionId=<string>The ID of the audio session.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Retrieve a specific audio session

Use this method to retrieve an existing audio session.

Request

  • Method: GET
  • Content-Type: application/json
curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/<audioSessionId>"
ParameterDescription
audioSessionId=<string>The ID of the audio session.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codecs": [
{
"audioProfile": "g711aMono8kHz",
"payloadType": 127
}
],
"multicastGroup": "string",
"port": 0,
"type": "RTP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"type": "SIP"
},
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"holdup": 200,
"type": "WS"
}
]
ParameterExample valueValid valuesDescription
HTTPThe HTTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.
RTPThe RTP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codecs=<object>The codecs for a specified session.
audioProfile=<string>g711aMono8kHzg711aMono8kHz g711uMono8kHz g722Mono16kHz l16Stereo48kHz l16Mono48kHz l16Stereo44kHz l16Mono44kHz l16Stereo32kHz l16Mono32kHz l16Stereo16kHz l16Mono16kHz mp2Stereo48kHz opusStereo48kHz opusMono48kHzThe audio profile.
payloadType=<integer>The payload type. Only used by codecs with dynamic payload types.
multicastGroup=<string>IPv4 and IPv6 address of a multicast group. Should be specified when the RTP stream is transmitted via multicast instead of unicast.
port=<integer>The RTP IP port. If a port is not included, the server will assign one and return it to the client. If a port is specified and occupied on the server, or doesn't meet the configured range, an error will be returned.
type=<string>RTPRTPThe type of the audio session.
SIPThe SIP audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"LOW""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The dialing extension. When a user dials this number, the audio session will be used.
type=<string>SIPSIPThe audio session type.
WSThe WebSocket audio session object.
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codecs for a specified session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>PCMPCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
duplexDevice=<object>A device used for two-way audio communication. Audio input from the device's source will be sent back to the session. If the device has multiple inputs, sourceId can be specified or omitted. Omitting the property will disable audio input for the session.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>WSWSThe audio session type.

Error responses

Update an audio session

Use this method to update the targets and/or priority of an existing audio session.

Request

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/audioSessions/{audioSessionId}"
ParameterDescription
audioSessionId=<string>The ID of the audio session.
{
"prio": "LOW",
"targets": ["string"]
}
ParameterExample valueValid valuesDescription
prio=<string>"LOW""HIGH" "MEDIUM" "LOW" (default value)The priority level for the audio session.
targets=<array><string>The list of target identifiers (zones or devices).

Successful response

  • HTTP Code: 200 Audio session updated
  • Content-Type: application/json
{
"customId": "my-app-session-12345",
"customText": "string",
"id": "156",
"prio": "LOW",
"targets": ["zon_1256", "dev_101"],
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0,
"codec": {
"bitrate": 192000,
"channelLayout": "MONO",
"codec": "PCM",
"sampleFormat": "S8",
"sampleRate": 16000
},
"holdup": 200,
"type": "HTTP"
}
ParameterExample valueValid valuesDescription
customId=<string> Optional"my-app-session-12345"Client-provided identifier used to reference a specified session.
customText=<string> OptionalA custom text that will override the default text from the visual profile.
id=<string>156A unique audio session ID.
prio=<string> Optional"HIGH""HIGH" "MEDIUM" "LOW" (default value)The priority parameter indicates the relative priority of an audio session compared to other playing audio. Sessions with a higher priority will automatically silence audio sessions with a lower priority in the same targets. The first audio session will have higher priority if multiple API audio sessions with the same priority and to the same targets are simultaneously active. The audio session priority levels (high, medium, low) correspond to the paging priority groups in the web interface in Scheduling & Destinations > Content Priorities > Paging. New audio sessions will be placed at the lowest priority in the priority group.
targets=<array>[ "zon_1256", "dev_101" ]The target IDs where audio will be played. Audio will play on all specified targets and cascade to their children and descendants in the zone hierarchy.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalThe visual profile ID.
codec=<object>The codec for the audio session.
bitrate=<integer>192000The maximum bitrate of the audio session, measured in bits per second. Required for codecs PCM, OPUS, MP2 and MP3.
channelLayout=stringMONOMONO STEREOThe channel layout for the audio session.
codec=<string>MP3PCM G711_ULAW G711_ALAW G722 G723 G726 G728 G729 GSM MP2 MP3 AAC OPUS VORBIS FLAC WMAThe codec used for the audio session.
sampleFormat=<string>S8S8 S16 S24 S32 FLOAT DOUBLEThe sample format of the audio session.
sampleRate=<integer>16000The PCM sample rate of the audio session, measured in Hz.
holdup=<integer> Optional200 (default value)The audio buffering delay, measured in milliseconds. Controls the tradeoff between reliability and latency. This means that higher values (larger buffer) will ensure stable delivery across unreliable networks, but increase end-to-end delay, while lower values will reduce latency, but cause audio dropouts on unstable connections. Typical range is between 100-400 ms.
type=<string>HTTPHTTPThe audio session type.

Error responses

Play audio files

Use this method to trigger a playback for an array of audio files from the content library. Files listed in the audio session will be played in succession. The current playback will be replaced if this method is used while an audio file is played in the audio session.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/audioSessions/<audioSessionId>/playAudioFiles" \
--data '{
"customText": "Emergency: Evacuate Building Now",
"fileIds": [
"12",
"15"
],
"repeat": 1,
"visualProfileEnabled": "DEFAULT",
"visualProfileId": 0
}'
ParameterDescription
audioSessionId=<string>The ID of the HTTP audio session.
ParameterExample valueValid valuesDescription
customText=<string> Optional"Emergency: Evacuate Building Now"Text message displayed on visual output devices which will override the text property defined within the associated visual profile. If this field is omitted, the text from the visual profile will be used instead.
fileIds=<array>[ "12", "15" ]The IDs of the audio files that will be played in a sequence. The files will play in the order specified in the array, with each file starting immediately after the previous one is finished.
repeat=<integer>51 (default value)Indicates the number of times the audio files will be played. A number lower or equal zero indicates an infinite number of repetitions that can be stopped by a stopAudioFiles call or by deleting the audio session.
visualProfileEnabled=<string> OptionalDEFAULTDEFAULT, FALSE, TRUETRUE when the visual profile supplied in visualProfileId is used. DEFAULT when default visual profile from the site is used. FALSE when no visuals are used.
visualProfileId=<integer> OptionalControls which visual profile that should be used with the playback.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Check audio session status

Use this method to check the status of an existing audio session, including playback and availability of devices in the sessions.

info

This method was introduced in API version 1.1 and can not be used by devices with API version 1.0.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/<audioSessionId>/status"
ParameterDescription
audioSessionIdThe ID of the audio session.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

{
"availableDevices": ["dev_1256", "dev_11"],
"id": "156",
"playbackStarted": "2023-01-12 12:53:32+0100",
"prio": "HIGH",
"status": "notPlaying",
"type": "HTTP",
"unavailableDevices": ["dev_136", "dev_31"]
}
ParameterExample valueValid valuesDescription
availableDevices=<string>[ "dev_1256", "dev_11" ]A list of devices that are currently available to receive audio in this session.
id=<string>156A unique audio session ID.
playbackStarted=<string>2023-01-12 12:53:32+0100The time when the audioSession started.
prio=<string>"HIGH"The priority of the audioSession.
status=<string>notPlaying playingThe status of the audioSession.
type=<string>"HTTP", "SIP", "RTP", "WS"The type of the audioSession.
unavailableDevices=<string>[ "dev_136", "dev_31" ]A list of devices that are currently unavailable for this session, because a higher-priority audio session is active on the same targets.

Error responses

Stop audio files

Use this method to stop the audio files playback in the audio session.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/audioSessions/<audioSessionId>/stopAudioFiles"
ParameterDescription
audioSessionId=<string>The ID of the HTTP audio session.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Establish WebSocket connection to receive audio data

Use this method to establish a WebSocket connection to receive audio data from a specific audio session. Audio will only be transmitted over this connection if a duplex device is configured within the audio session. The audio stream will be sent in binary format.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/{audioSessionId}/ws/recv"
ParameterDescription
audioSessionId=<string>The ID of the WebSocket audio session.

Error responses

Establish WebSocket connection to send audio data

Use this method to establish a WebSocket connection to send audio data to a specific audio session. The audio stream must be sent in binary format.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/{audioSessionId}/ws/send"
ParameterDescription
audioSessionId=<string>The ID of the WebSocket audio session.

Error responses

Establish a bidirectional WebSocket connection to send audio data

Use this method to establish a bidirectional WebSocket connection to send and receive audio data in a binary format.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioSessions/{audioSessionId}/ws/sendrecv"
ParameterDescription
audioSessionId=<string>The ID of the WebSocket audio session.

Error responses

Targets

List targets

Use this method to list all available targets, including physical zones and destinations. Targets can be enabled/disabled or be used to define where the audio session should be played.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/targets"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"children": ["zon_1256", "dev_101"],
"enabled": true,
"id": "zon_1255",
"issues": {
"major": ["MULTICAST_ERROR"],
"minor": ["MULTICAST_ERROR"]
},
"lowestPriorityAvailable": "LOW",
"niceName": "First floor",
"sources": [
{
"enabled": true,
"id": "dev_src_15",
"name": "Line-In"
}
],
"status": "online",
"type": "physicalZone"
}
]
ParameterExample valueValid valuesDescription
children=<string>zon_1256, dev_101A list of IDs for child targets (zones or devices) that are directly subordinate to the target in the hierarchical zone structure. This array will always be empty for devices, as they are considered leaf nodes in the hierarchy. When audio is played to a target, it automatically propagates to all its children and their descendants and ensures that the audio covers the entire designated area.
enabled=<boolean>true falseIndicates if a target should play audio. All mapped sources will be stopped for a destination, but other audio can still play in the destination’s targets.
id=<string>zon_1255A unique target ID.
issues=<object>Lists of problems that have occurred on this device. Includes both major and minor issues. This parameter is only applicable for targets of the device type.
major=<array>0=MULTICAST_ERROR0=MULTICAST_ERROR, 1=OUTPUT_GAIN_LOW, 2=UNSUPPORTED_HOST_FW, 3=UNSUPPORTED_DEV_TYPE, 4=UNSUPPORTED_TRANSPORTList of major issues that have occurred on the device.
minor=<array>0=MULTICAST_ERROR0=MULTICAST_ERROR, 1=OUTPUT_GAIN_LOW, 2=UNSUPPORTED_HOST_FW, 3=UNSUPPORTED_DEV_TYPE, 4=UNSUPPORTED_TRANSPORTList of minor issues that have occurred on the device.
lowestPriorityAvailable=<string>0=LOW0=LOW, 1=MEDIUM, 2=HIGH, 3=NONEThe lowest priority for which this target is currently available. NONE if it is unavailable, even for HIGH priority playbacks.
niceName=<string>First floorThe target nice name.
sources=<array>enabledenabled=<boolean>: true, if the device's input is enabled, id=<string>: unique device source ID, name=<string>: name of the device source ID, for example "Line-In"The device list for sources available on a device such as Line-in. This part is only applicable for targets of the device type.
status=<string>unmanagedunmanaged online offline playing error: NO_LICENCE error: FACTORY_DEFAULTS error: UNAUTHORIZED error: UNSUPPORTED_HOST_FW error: UNSUPPORTED_TRANSPORTThe current operational status of the target. This attribute is only available on end devices and not for higher-level zones, destinations or sites.
type=<string>physicalZonephysicalZone site device destination outputStreamThe target type.

Error responses

Retrieve a specific target

Use this method to retrieve a specific target identified by their ID.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/targets/<target id>"
ParameterDescription
<target id>A unique target ID.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

{
"children": ["zon_1256", "dev_101"],
"enabled": true,
"id": "zon_1255",
"issues": {
"major": ["MULTICAST_ERROR"],
"minor": ["MULTICAST_ERROR"]
},
"lowestPriorityAvailable": "LOW",
"niceName": "First floor",
"sources": [
{
"enabled": true,
"id": "dev_src_15",
"name": "Line-In"
}
],
"status": "online",
"type": "physicalZone"
}
ParameterExample valueValid valuesDescription
children=<string>zon_1256, dev_101A list of IDs for child targets (zones or devices) that are directly subordinate to the target in the hierarchical zone structure. This array will always be empty for devices, as they are considered leaf nodes in the hierarchy. When audio is played to a target, it automatically propagates to all its children and their descendants and ensures that the audio covers the entire designated area.
enabled=<boolean>true falseIndicates if a target should play audio. All mapped sources will be stopped for a destination, but other audio can still play in the destination’s targets.
id=<string>zon_1255A unique target ID.
issues=<object>Lists of problems that have occurred on this device. Includes both major and minor issues. This parameter is only applicable for targets of the device type.
major=<array>0=MULTICAST_ERROR0=MULTICAST_ERROR, 1=OUTPUT_GAIN_LOW, 2=UNSUPPORTED_HOST_FW, 3=UNSUPPORTED_DEV_TYPE, 4=UNSUPPORTED_TRANSPORTList of major issues that have occurred on the device.
minor=<array>0=MULTICAST_ERROR0=MULTICAST_ERROR, 1=OUTPUT_GAIN_LOW, 2=UNSUPPORTED_HOST_FW, 3=UNSUPPORTED_DEV_TYPE, 4=UNSUPPORTED_TRANSPORTList of minor issues that have occurred on the device.
lowestPriorityAvailable=<string>0=LOW0=LOW, 1=MEDIUM, 2=HIGH, 3=NONEThe lowest priority for which this target is currently available. NONE if it is unavailable, even for HIGH priority playbacks.
niceName=<string>First floorThe target nice name.
sources=<array>enabledenabled=<boolean>: true, if the device's input is enabled, id=<string>: unique device source ID, name=<string>: name of the device source ID, for example "Line-In"The device list for sources available on a device such as Line-in. This part is only applicable for targets of the device type.
status=<string>unmanagedunmanaged online offline playing error: NO_LICENCE error: FACTORY_DEFAULTS error: UNAUTHORIZED error: UNSUPPORTED_HOST_FW error: UNSUPPORTED_TRANSPORTThe current operational status of the target. This attribute is only available on end devices and not for higher-level zones, destinations or sites.
type=<string>physicalZonephysicalZone site device destination outputStreamThe target type.

Error responses

Update a specific target

Use this method to enable or disable a specific target. When a target is disabled, all audio routed to that target will be silenced. For destinations, using disable will stop all mapped sources, while audio in the destination's target can continue playing other content.

Request

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/targets/<targetId>" \
--data '{
"enabled": true
}'
ParameterDescription
targetId=<string>A unique target ID.
ParameterExample valueValid valuesDescription
enabled=<boolean>truetrue falseIndicates if the target should play audio. All mapped sources will be stopped for a destination, but other audio clips can still be played in the destination’s target.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Audio files

List audio files

Use this method to list all audio files available on the server. These files are found in the announcement and music library.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioFiles"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"id": 156,
"length": 35.613,
"library": "Announcement",
"name": "Closing announcement.mp3",
"path": "/Closing/",
"type": "FILE"
}
]
ParameterExample valueValid valuesDescription
id=<string>156A unique audio file ID.
length=<number>35.613The length of the audio file (in seconds).
library=<string>AnnouncementThe library containing the audio file.
name=<string>Closing announcement.mp3A file name or nicename of the audio file.
path=<string> Optional/Closing/Folder information of the audio file.
type=<string>FILEFILE PLAYLISTInfo used to distinguish the file/playlist.

Error responses

Retrieve a specific audio file

Use this method to retrieve the metadata for a specific audio file available on the server, identified by an ID.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/audioFiles/<audio file id>"
ParameterDescription
<audio file id>=<string>The ID of the audio file that will be retrieved.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"id": 156,
"length": 35.613,
"library": "Announcement",
"name": "Closing announcement.mp3",
"path": "/Closing/",
"type": "FILE"
}
]
ParameterExample valueValid valuesDescription
id=<string>156A unique audio file ID.
length=<number>35.613The length of the audio file (in seconds).
library=<string>AnnouncementThe library containing the audio file.
name=<string>Closing announcement.mp3A file name or nicename of the audio file.
path=<string> Optional/Closing/Folder information of the audio file.
type=<string>FILEFILE PLAYLISTInfo used to distinguish the file/playlist.

Error responses

Volume controllers

Get all volume controllers

Use this method to retrieve all available volume controllers. A volume controller can then be used to mute or adjust the audio volume.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/volumeControllers"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"allowMute": true,
"contentClasses": [
{
"id": "28",
"niceName": "Music"
}
],
"id": "156",
"maxNegativeVolumeOffset": -80,
"maxPositiveVolumeOffset": 80,
"muted": true,
"niceName": "Music in kitchen",
"targets": ["zon_1256", "dev_101"],
"volumeOffset": -5.33
}
]
ParameterExample valueValid valuesDescription
allowMute=<boolean>Controls whether the volume controller can be muted.
contentClasses=<array>Contains the target content classes.
VolumeControllerContentClass
id=<string>28A unique content class ID.
niceName=<string>MusicName of the content class.
id=<string>156A unique volume controller ID.
maxNegativeVolumeOffset=<integer>-80maximum: 100 minimum: -100The minimum allowed value of the volume controller.
maxPositiveVolumeOffset=<integer>80maximum: 100 minimum: -100The maximum allowed value of the volume controller.
muted=<boolean>Controls if the volume controller is muted.
niceName=<string>Music in kitchenThe name of the volume controller.
targets=<string>["zon_1256", "dev_101"]The targets of the volume controller.
volumeOffset=<number>-5.33maximum: 100 minimum: -100The current volume offset, with ranges between [-100, +100].

Error responses

Get a specific volume controller

Use this method to retrieve a specific volume controller identified by an ID.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/volumeControllers/<volume controller id>"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example

[
{
"allowMute": true,
"contentClasses": [
{
"id": "28",
"niceName": "Music"
}
],
"id": "156",
"maxNegativeVolumeOffset": -80,
"maxPositiveVolumeOffset": 80,
"muted": true,
"niceName": "Music in kitchen",
"targets": ["zon_1256", "dev_101"],
"volumeOffset": -5.33
}
]
ParameterExample valueValid valuesDescription
allowMute=<boolean>Controls whether the volume controller can be muted.
contentClasses=<array>Contains the target content classes.
VolumeControllerContentClass
id=<string>28A unique content class ID.
niceName=<string>MusicName of the content class.
id=<string>156A unique volume controller ID.
maxNegativeVolumeOffset=<integer>-80maximum: 100 minimum: -100The minimum allowed value of the volume controller.
maxPositiveVolumeOffset=<integer>80maximum: 100 minimum: -100The maximum allowed value of the volume controller.
muted=<boolean>Controls if the volume controller is muted.
niceName=<string>Music in kitchenThe name of the volume controller.
targets=<string>["zon_1256", "dev_101"]The targets of the volume controller.
volumeOffset=<number>-5.33maximum: 100 minimum: -100The current volume offset, with ranges between [-100, +100].

Error responses

Update a specific volume controller

Use this method to modify a volume controller's mute state or volume offset.

Request

  • Method: PATCH
  • Content-Type: application/json
curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/volumeControllers/<volume controller id>" \
--data '{
"muted": false,
"volumeOffset": -5.33
}'
ParameterDescription
<volume controller id>=<string>A unique target ID.
ParameterExample valueValid valuesDescription
muted=<boolean> Optionalfalsetrue false (default)Mutes all audio of the content types and targets that the volume controller controls.
volumeOffset=<number> Optional-5.33maximum: 100 minimum: -100The current volume offset, with ranges between [-100, +100].

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Modify offset volume of a volume controller

Use this method to make a volume change relative to the current volume. Negative values will decrease volume and positive values will increase it. Values can range between -100 to +100.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/volumeControllers/<volumeControllerId>/offsetVolume" \
--data '{
"volumeOffset": 10
}'
ParameterDescription
volumeControllerId=<string>A unique target ID.
ParameterExample valueValid valuesDescription
volumeOffset=<number>-5.33maximum: 100 minimum: -100The requested volume change in relation to the previous value. A negative value will lower the volume. The resulting value will be in the range [-100, +100] or the configured max/min offset of the volume controller.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Modify the mute state of a volume controller

Use this method to switch between mute/unmute states of a target.

Request

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--header "Content-Type: application/json" \
"http://<servername>/api/v1.2/volumeControllers/<volumeControllerId>/toggleMute"
ParameterDescription
volumeControllerId=<string>A unique target ID.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Error responses

Visual profiles

Get all visual profiles

Use this method to retrieve all available visual profiles.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/visualProfiles"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example:

[
{
"audioSync": true,
"defaultCategories": [
{
"category": "MUSIC",
"enabled": true
}
],
"description": "Red blink for attention",
"id": 54,
"lightEnabled": true,
"lightProfile": {
"audioSync": true,
"colors": "RED",
"description": "Visual profile for normal announcements",
"duration": 1,
"id": 43,
"intensity": 3,
"name": "Normal announcement",
"pattern": "BLINK",
"speed": 3,
"type": "SIGNALING"
},
"name": "Red blink",
"text": "Attention! Announcement ongoing.",
"textBackgroundColor": "FF0000",
"textColor": "#0000FF",
"textDuration": 1,
"textLayout": "SMALL",
"textRepetition": 1,
"textScrollSpeed": 5,
"textTimeLimit": true,
"used": true
}
]
ParameterExample valueValid valuesDescription
audioSync=<boolean>True if the text should be synchronized with the audio.
defaultCategories=<array>The content categories for which this visual profile is used by default.
category=<string>"MUSIC""ANY", "MUSIC" "ADVERTISEMENT" "ANNOUNCEMENT" "PAGING"The content category for which this visual profile is applied by default.
enabled=<boolean>Indicates if this visual profile is enabled by default for the specified category.
description=<string>"Red blink for attention"Description of the visual profile.
id=<integer>54The visual profile ID.
lightEnabled=<boolean>TRUETRUE FALSETrue if the light profile should be used.
lightProfile=<object>Configurations for the light profile.
audioSync=<boolean>TRUETRUE FALSEIf TRUE, the light duration will be synchronized with the audio playback. This means that the strobe will disappear when the audio is finished. If FALSE, the strobe duration will be controlled by duration.
colors=<string>"RED" "GREEN" "BLUE" "YELLOW" "PURPLE" "TURQUOISE" "WHITE" "PINK" "AMBER"The colors for the strobe.
description=<string>"Visual profile for normal announcements"The light profile description.
duration=<integer>Strobe time(s).
id=<integer>The light profile ID.
intensity=<integer>3The light intensity. 0 = the lowest, 5 = the highest.
name=<string>"Normal announcement"Name of the light profile.
pattern=<string>"BLINK""OFF" "STEADY" "ALTERNATE" "BLINK" "PULSE" "ROTATION"The light pattern.
speed=<integer>3The strobe speed. 0 = the slowest, 5 = the fastest.
type=<string>"SIGNALING""AUDIO" "SIGNALING"The LED type used by the light profile. This value indicates if the profile controls the audio LEDs (used to indicate audio status like recording) or signaling LEDs (used for attention-calling alerts).
name=<string>"Red blink"Name of the visual profile.
text=<string>"Attention! Announcement ongoing."The text message. Supported encoding: Latin 1 (ISO/IEC 8859-1), Latin CE (ISO/IEC 8859-2), Greek (ISO/IEC 8859-7), Cyrillic (ISO/IEC 8859-5), Hebrew (ISO/IEC 8859-8)
textBackgroundColor=<string>"#FF0000"The background color RGB #000000 - #FFFFFF.
textColor=<string>"#0000FF"The font color RGB #000000 - #FFFFFF.
textDuration=<integer>The text playback time in seconds.
textLayout=<string>"SMALL""LARGE" "MEDIUM" "SMALL" "LARGE_LEFT_TO_RIGHT"Determines the layout and scrolling behavior of the text message on visual output devices. Large text is displayed on a single line and scrolls horizontally. Medium and small text is displayed across multiple lines and scrolls vertically.
textRepetition=<integer>The number of times the text message will scroll across the display before it disappears.
textScrollSpeed=<integer>5The speed of the text scroll. 1 = the slowest, 10 = the fastest.
textTimeLimit=<boolean>Determines the text display control method when textAudioSync is false. If true, the text will be shown for the duration specified by textDuration. If false, the text will be displayed the number of times defined by the textRepetition.
used=<boolean>True if profile is used.

Get a visual profile

Use this method to retrieve a specific visual profile identified by an ID.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/visualProfiles/{visualProfileId}"
ParameterExample valueValid valuesDescription
visualProfileId=<integer> OptionalThe VisualProfile ID.

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example:

{
"audioSync": true,
"defaultCategories": [
{
"category": "MUSIC",
"enabled": true
}
],
"description": "Red blink for attention",
"id": 54,
"lightEnabled": true,
"lightProfile": {
"audioSync": true,
"colors": "RED",
"description": "Visual profile for normal announcements",
"duration": 1,
"id": 43,
"intensity": 3,
"name": "Normal announcement",
"pattern": "BLINK",
"speed": 3,
"type": "SIGNALING"
},
"name": "Red blink",
"text": "Attention! Announcement ongoing.",
"textBackgroundColor": "FF0000",
"textColor": "#0000FF",
"textDuration": 1,
"textLayout": "SMALL",
"textRepetition": 1,
"textScrollSpeed": 5,
"textTimeLimit": true,
"used": true
}

| Parameter | Example value | Valid values | Description | | ------------------------------ | ----------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | | audioSync=<boolean> | | | True if the text should be synchronized with the audio. | | defaultCategories=<array> | | | The content categories for which this visual profile is used by default. | | category=<string> | "MUSIC" | "ANY", "MUSIC" "ADVERTISEMENT" "ANNOUNCEMENT" "PAGING" | The content category for which this visual profile is applied by default. | | enabled=<boolean> | | | Indicates if this visual profile is enabled by default for the specified category. | | description=<string> | "Red blink for attention" | | Description of the visual profile. | | id=<integer> | 54 | | The visual profile ID. | | lightEnabled=<boolean> | TRUE | TRUE FALSE | True if the light profile should be used. | | lightProfile=<object> | | | Configurations for the light profile. | | audioSync=<boolean> | TRUE | TRUE FALSE | If TRUE, the light duration will be synchronized with the audio playback. This means that the strobe will disappear when the audio is finished. If FALSE, the strobe duration will be controlled by duration. | | colors=<string> | | "RED" "GREEN" "BLUE" "YELLOW" "PURPLE" "TURQUOISE" "WHITE" "PINK" "AMBER" | The colors for the strobe. | | description=<string> | "Visual profile for normal announcements" | | The light profile description. | | duration=<integer> | 1 | | Strobe time(s). | | id=<integer> | 43 | | The light profile ID. | | intensity=<integer> | 3 | | The light intensity. 0 = the lowest, 5 = the highest. | | name=<string> | "Normal announcement" | | Name of the light profile. | | pattern=<string> | "BLINK" | "OFF" "STEADY" "ALTERNATE" "BLINK" "PULSE" "ROTATION" | The light pattern. | | speed=<integer> | 3 | | The strobe speed. 0 = the slowest, 5 = the fastest. | | type=<string> | "SIGNALING" | "AUDIO" "SIGNALING" | The LED type used by the light profile. This value indicates if the profile controls the audio LEDs (used to indicate audio status like recording) or signaling LEDs (used for attention-calling alerts). | | name=<string> | "Red blink" | | Name of the visual profile. | | text=<string> | "Attention! Announcement ongoing." | | The text message. Supported encoding: Latin 1 (ISO/IEC 8859-1), Latin CE (ISO/IEC 8859-2), Greek (ISO/IEC 8859-7), Cyrillic (ISO/IEC 8859-5), Hebrew (ISO/IEC 8859-8) | | textBackgroundColor=<string> | "#FF0000" | | The background color RGB #000000 - #FFFFFF. | | textColor=<string> | "#0000FF" | | The font color RGB #000000 - #FFFFFF. | | textDuration=<integer> | | | The text playback time in seconds. | | textLayout=<string> | "SMALL" | "LARGE" "MEDIUM" "SMALL" "LARGE_LEFT_TO_RIGHT" | Determines the layout and scrolling behavior of the text message on visual output devices. Large text is displayed on a single line and scrolls horizontally. Medium and small text is displayed across multiple lines and scrolls vertically. | | textRepetition=<integer> | | | The number of times the text message will scroll across the display before it disappears. | | textScrollSpeed=<integer> | 5 | | The speed of the text scroll. 1 = the slowest, 10 = the fastest. | | textTimeLimit=<boolean> | | | Determines the text display control method when textAudioSync is false. If true, the text will be shown for the duration specified by textDuration. If false, the text will be displayed the number of times defined by the textRepetition. | | used=<boolean> | | | | True if profile is used. |

Error responses

Server info

Get info about the server

Use this method to retrieve information about the server.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/serverInfo"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example:

{
"apiVersions": ["1.0", "1.1"],
"licenseUntil": "2026-04-20T13:03:12.420Z",
"licensingStatus": true,
"locale": "en_US",
"serverIps": ["0.0.0.0", "10.0.21.123", "10.0.21.124"],
"serverName": "LAP5CG2113L89",
"serverPort": 443,
"serverVersion": "4.7.17",
"siteId": "cdae2c07-3717-46f0-89b6-f977bea0c680",
"siteName": "North Cardridge County Campus",
"timeZone": "T+04:00",
"trialActive": true
}
ParameterExample valueValid valuesDescription
apiVersions=<array>1.0The API versions supported by this server.
licenseUntil=<string>The end date for the current license.
licensingStatus=<boolean>truetrue if the license is valid.
locale=<string>"en_US"The locale of the server.
serverIps=<array>0.0.0.0 10.0.21.123 10.0.21.124IP addresses of the network interfaces (for web, streaming and paging) of the active server node.
serverName=<string>"LAP5CG2113L89"Name of the server machine node.
serverPort=<integer>443An HTTPS port of the web interface of the active server node.
serverVersion=<string>4.7.17Version number of the server running the AXIS Audio Manager Pro.
siteId=<string>cdae2c07-3717-46f0-89b6-f977bea0c680A unique site ID.
siteName=<string>"North Cardridge County Campus"Name of the site, defined by the user.
timeZone=<string>"T+04:00"The server Time Zone.
trialActive=<boolean>truetrue if the license is in a trial period.

Error responses

Paging configurations

List paging configs

Use this method to request a list of all available SIP paging configurations.

Request

curl --request GET \
--anyauth \
--user "<username>:<password>" \
"http://<servername>/api/v1.2/pagingConfigurations"

Successful response

  • HTTP Code: 200 Operation successful
  • Content-Type: application/json

Response body example:

[
{
"duplexDevice": {
"id": "dev_15",
"sourceId": "dsc_15"
},
"extension": "3256",
"id": "pac_16",
"niceName": "Kitchen",
"targets": ["zon_12", "zon_13"],
"type": "TWOWAY"
}
]
ParameterExample valueValid valuesDescription
duplexDevice=<object>Only for TWOWAY.
id=<string>dev_15A unique device ID.
sourceId=<string>dsc_15A unique device source ID.
extension=<string>3256The extension number used for SIP dialing.
id=<string>pac_16The ID for the paging source.
niceName=<string>KitchenA descriptive name for the paging configuration.
targets=<array>zon_12, zon_13The IDs for destinations (ONEWAY) or a specific device (TWOWAY).
type=<string>TWOWAYONEWAY, TWOWAYThe paging type.

General error responses

The following error responses can occur for any request independent of their type.

400 Invalid parameters

  • HTTP Code: 400 Invalid parameters
  • Content-Type: application/json

Response body example

{
"error": {
"code": 400,
"errors": [
{
"location": "string",
"locationType": "DATA_FIELD",
"message": "string",
"reason": "string"
}
],
"id": "f1a02d76-9b83-437e-8cb4-21016465ea43",
"message": "Unknown priority 'HIGHER'",
"messageKey": "string",
"messageParams": ["string"]
}
}
ParameterValid ValuesDescription
errorContainer for the error data.
Error data
code=<integer>The error code.
errors=<object>Container for detailed error information. Each element in the array represents a different error and several errors can be returned with a single request.
DetailedErrorData
location=<string>The location of the error (interpretation of its value depends on locationType).
locationType=<string>"DATA_FIELD" "HEADER" "PARAMETER"Indicates how the location property should be interpreted.
message=<string>A human readable text providing more details about the error.
reason=<string>Unique identifier for this error.
id=<string>A unique identifier for the request.
message=<string>A human readable text providing more details about the error.
messageKeyThe key of the error message. Defined by a properties list.
messageParamsError related parameters sent in request.

401 Unauthorized

  • HTTP Code: 401 Unauthorized
  • Content-Type: application/json

Response body example

{
"error": {
"code": 401,
"errors": [
{
"location": "string",
"locationType": "DATA_FIELD",
"message": "string",
"reason": "string"
}
],
"id": "f1a02d76-9b83-437e-8cb4-21016465ea43",
"message": "Unknown priority 'HIGHER'",
"messageKey": "string",
"messageParams": ["string"]
}
}
ParameterValid ValuesDescription
errorContainer for the error data.
Error data
code=<integer>The error code.
errors=<object>Container for detailed error information. Each element in the array represents a different error and several errors can be returned with a single request.
DetailedErrorData
location=<string>The location of the error (interpretation of its value depends on locationType).
locationType=<string>"DATA_FIELD" "HEADER" "PARAMETER"Indicates how the location property should be interpreted.
message=<string>A human readable text providing more details about the error.
reason=<string>Unique identifier for this error.
id=<string>A unique identifier for the request.
message=<string>A human readable text providing more details about the error.
messageKeyThe key of the error message. Defined by a properties list.
messageParamsError related parameters sent in request.

404 Not found

  • HTTP Code: 404 Not found
  • Content-Type: application/json

Response body example

{
"error": {
"code": 404,
"errors": [
{
"location": "string",
"locationType": "DATA_FIELD",
"message": "string",
"reason": "string"
}
],
"id": "f1a02d76-9b83-437e-8cb4-21016465ea43",
"message": "Unknown priority 'HIGHER'",
"messageKey": "string",
"messageParams": ["string"]
}
}
ParameterValid ValuesDescription
errorContainer for the error data.
Error data
code=<integer>The error code.
errors=<object>Container for detailed error information. Each element in the array represents a different error and several errors can be returned with a single request.
DetailedErrorData
location=<string>The location of the error (interpretation of its value depends on locationType).
locationType=<string>"DATA_FIELD" "HEADER" "PARAMETER"Indicates how the location property should be interpreted.
message=<string>A human readable text providing more details about the error.
reason=<string>Unique identifier for this error.
id=<string>A unique identifier for the request.
message=<string>A human readable text providing more details about the error.
messageKeyThe key of the error message. Defined by a properties list.
messageParamsError related parameters sent in request.

422 Change not allowed

  • HTTP Code: 422 Change not allowed
  • Content-Type: application/json

Response body example

{
"error": {
"code": 422,
"errors": [
{
"location": "string",
"locationType": "DATA_FIELD",
"message": "string",
"reason": "string"
}
],
"id": "f1a02d76-9b83-437e-8cb4-21016465ea43",
"message": "Unknown priority 'HIGHER'",
"messageKey": "string",
"messageParams": ["string"]
}
}
ParameterValid ValuesDescription
errorContainer for the error data.
Error data
code=<integer>The error code.
errors=<object>Container for detailed error information. Each element in the array represents a different error and several errors can be returned with a single request.
DetailedErrorData
location=<string>The location of the error (interpretation of its value depends on locationType).
locationType=<string>"DATA_FIELD" "HEADER" "PARAMETER"Indicates how the location property should be interpreted.
message=<string>A human readable text providing more details about the error.
reason=<string>Unique identifier for this error.
id=<string>A unique identifier for the request.
message=<string>A human readable text providing more details about the error.
messageKeyThe key of the error message. Defined by a properties list.
messageParamsError related parameters sent in request.

500 Internal server error

  • HTTP Code: 500 Internal server error
  • Content-Type: application/json

Response body example

{
"error": {
"code": 500,
"errors": [
{
"location": "string",
"locationType": "DATA_FIELD",
"message": "string",
"reason": "string"
}
],
"id": "f1a02d76-9b83-437e-8cb4-21016465ea43",
"message": "Unknown priority 'HIGHER'",
"messageKey": "string",
"messageParams": ["string"]
}
}
ParameterValid ValuesDescription
errorContainer for the error data.
Error data
code=<integer>The error code.
errors=<object>Container for detailed error information. Each element in the array represents a different error and several errors can be returned with a single request.
DetailedErrorData
location=<string>The location of the error (interpretation of its value depends on locationType).
locationType=<string>"DATA_FIELD" "HEADER" "PARAMETER"Indicates how the location property should be interpreted.
message=<string>A human readable text providing more details about the error.
reason=<string>Unique identifier for this error.
id=<string>A unique identifier for the request.
message=<string>A human readable text providing more details about the error.
messageKeyThe key of the error message. Defined by a properties list.
messageParamsError related parameters sent in request.

Real-time notifications (Websockets)

Websockets will ensure that clients are promptly informed about server-side changes in AXIS Audio Manager Pro. For example, a client will be notified if the volume is changed or when a device starts to play. For detailed integration guidance, refer to STOMP protocol specifications (v 1.0, 1.1 or 1.2 are supported).

Endpoints

wss://<servername>/api/v1.2/notifications

Topics

/topic/audiofiles
/topic/audioSessions
/topic/targets
/topic/volumeControllers
/topic/pagingConfigurations