Download OpenAPI specification:
The Infinium system supports remote control through its REST API (Representational State Transfer Application Programming Interface). This API provides a standardized set of rules and conventions that enable third-party control systems—such as Q-Sys, Crestron, Extron, or AMX—to perform the same functions as are available through the Infinium Web UI.
Using standard HTTP methods like GET, POST, PUT, and DELETE, third-party controllers can:
Switch source or retrieve currently selected source for a channel
Change DSP settings or presets
Retrieve and display system status
Set or retrieve passcodes for channel access
Change or retrieve current IP Addresses, Subnet mask, and Gateway
…and much more
This allows seamless integration of Infinium into a variety of control environments.
Before configuring commands in a control system, the first step is to generate an API Key.
This key is required for all commands sent to the Infinium Controller and must be included in the command structure.
So it should be created before any programming begins. This is done using the web UI.
Step 1 Navigate to the tab where the API Key generation function is shown:
Step 2 Click on “Generate a new API Key” and enter a name for the key:
Step 3: Once a name is typed into the box, the “Generate Key” button will turn blue, indicating the key is ready to be generated.
Step 4: Once the generate key button has been pressed, the screen will show a blanked out key name.
Step 5: To see the key that was generated, and have the ability to copy the key, click on the eye symbol shown under “Actions”.
Step 6: Copy the key and save it somewhere for use when constructing the API commands.
Here is an example of setting channel 1 audio source settings. This shows just the objects; the structure of the command is obtained below.
API: Application Programming Interface
REST: acronym for REpresentational State Transfer, an architectural style for distributed hypermedia systems
Resources: REST APIs are based on the concept of resources. A resource can be any information that can be named, such as a document, an image, or a collection of other resources. This typically lives in a database.
GET: Retrieves data from a Controller resource
POST: Creates a new entry (resource) in the Controller database
PUT: Updates an existing entry (resource) in the Controller database
DELETE: Removes an entry (resource) in the Controller database
cURL: The term "cURL" stands for "Client for URLs" or "Client URL". It is a command-line tool and a library (libcurl) used for transferring data to and from a server using URL syntax. cURL supports a variety of protocols, including HTTP, HTTPS, FTP, and more, making it a versatile tool for interacting with web servers and APIs.
| X-Fields | string <mask> An optional fields mask |
| password | string |
| username | string |
{- "password": "string",
- "username": "string"
}{- "access_token": "string"
}Set the channel 1 audio source settings.
| audio_source required | string Enum: "Disabled" "Terminal Block" "XLR / 1/4\" (Combo Jack)" "Dante" "Test Tone" Audio source selected for channel 1 |
| mic_gain_enable required | boolean MIC gain enable |
| mic_power_enable required | boolean 15V MIC bias enable (ie phantom power) |
{- "audio_source": "Disabled",
- "mic_gain_enable": true,
- "mic_power_enable": true
}Set the channel 2 audio source settings.
| audio_source required | string Enum: "Disabled" "Terminal Block" "Dante" "Test Tone" Audio source selected for channel 2 |
{- "audio_source": "Disabled"
}Get the audio DSP settings for the selected channel.
| id required | integer Channel Number |
| X-Fields | string <mask> An optional fields mask |
{- "audio_preset": "Custom",
- "channel_enable": true,
- "digital_gain": -60,
- "dynamic_range_compression": 0,
- "high_pass_freq": 0,
- "low_pass_freq": 0
}Set the audio DSP settings for the selected channel.
| id required | integer Channel Number |
| audio_preset | string Enum: "Custom" "Music" "Voice" "Hearing Assist" "Flat" Preset for audio signal processing |
| digital_gain | integer [ -60 .. 24 ] Digital audio gain to apply to the channel in dB |
| dynamic_range_compression | number Dynamic range compression ratio to apply to the channel. Only settable if audio_preset=Custom |
| high_pass_freq | number High shelf filter frequency in Hz. Only settable if audio_preset=Custom |
| low_pass_freq | number Low shelf filter frequency in kHz. Only settable if audio_preset=Custom |
{- "audio_preset": "Custom",
- "digital_gain": -60,
- "dynamic_range_compression": 0,
- "high_pass_freq": 0,
- "low_pass_freq": 0
}Get the audio status for the selected channel.
| id required | integer Channel Number |
| X-Fields | string <mask> An optional fields mask |
{- "overload": true,
- "vu_meter": -100
}Get Dante status and Dante information.
| X-Fields | string <mask> An optional fields mask |
{- "dante_mac": "string",
- "dante_name": "string",
- "dante_status": "string",
- "poe_enable": true,
- "poe_status": true
}Get the Dante ethernet interface IP address.
| X-Fields | string <mask> An optional fields mask |
{- "address": "string",
- "gateway": "string",
- "static_address_enable": true,
- "subnet_mask": "string"
}Set the Dante ethernet interface IP address. Must reboot for settings to take effect.
| address | string Ethernet address using IPv4 notation (ex. 192.168.0.101) |
| gateway | string Ethernet gateway using IPv4 notation (ex. 192.168.0.1) |
| static_address_enable required | boolean Static address assignment enable |
| subnet_mask | string Ethernet subnet mask using IPv4 notation (ex. 255.255.255.0) |
{- "address": "string",
- "gateway": "string",
- "static_address_enable": true,
- "subnet_mask": "string"
}Set the controller front panel parameters.
| lock_status | boolean Front panel lock status |
| timeout | string Enum: "Never" "1 min" "5 min" "30 min" "60 min" Screen timeout: Never, 1 min, 5 min, 30 min, 60 min |
{- "lock_status": true,
- "timeout": "Never"
}Get general info about the controller.
| X-Fields | string <mask> An optional fields mask |
{- "control_mac": "string",
- "hostname": "string",
- "hw_version": "string",
- "model": "string",
- "sw_version": "string"
}Set the hostname for the controller. Must reboot for settings to take effect.
| hostname required | string [ 2 .. 63 ] characters Hostname name of the controller |
{- "hostname": "string"
}Get the control ethernet interface IP address.
| X-Fields | string <mask> An optional fields mask |
{- "address": "string",
- "gateway": "string",
- "static_address_enable": true,
- "subnet_mask": "string"
}Set the control ethernet interface IP address.
| address | string Ethernet address using IPv4 notation (ex. 192.168.0.101) |
| gateway | string Ethernet gateway using IPv4 notation (ex. 192.168.0.1) |
| static_address_enable required | boolean Static address assignment enable |
| subnet_mask | string Ethernet subnet mask using IPv4 notation (ex. 255.255.255.0) |
{- "address": "string",
- "gateway": "string",
- "static_address_enable": true,
- "subnet_mask": "string"
}Get channel information for the given MAC addresses.
| mac_address required | string Mac address of transmitter |
| X-Fields | string <mask> An optional fields mask |
{- "channel1_enable": true,
- "channel1_name": "string",
- "channel1_sample_rate": "16000",
- "channel2_enable": true,
- "channel2_name": "string",
- "channel2_sample_rate": "16000",
- "stereo_enable": true
}Set channel information for the given MAC addresses.
| mac_address required | string Mac address of transmitter |
| channel1_enable | boolean Channel 1 audio stream enable |
| channel1_name | string [ 2 .. 12 ] characters ^[^,]+$ Channel 1 streaming channel name |
| channel1_sample_rate | string Enum: "16000" "24000" "48000" Channel 1 sample rate |
| channel2_enable | boolean Channel 2 audio stream enable |
| channel2_name | string [ 2 .. 12 ] characters ^[^,]+$ Channel 2 streaming channel name |
| channel2_sample_rate | string Enum: "16000" "24000" "48000" Channel 2 sample rate |
| stereo_enable | boolean Enable stereo streaming |
{- "channel1_enable": true,
- "channel1_name": "string",
- "channel1_sample_rate": "16000",
- "channel2_enable": true,
- "channel2_name": "string",
- "channel2_sample_rate": "16000",
- "stereo_enable": true
}Get Dante subscription for the given MAC addresses.
| mac_address required | string Mac address of transmitter |
| X-Fields | string <mask> An optional fields mask |
{- "dante_subscription": "Controller"
}Set Dante subscription for the given MAC addresses. Can either set to Controller or Unsubscribed.
| mac_address required | string Mac address of transmitter |
| dante_subscription required | string Enum: "Controller" "Other" "Unsubscribed" Limited Dante subscription status. Use Dante Controller for full subscription options. |
{- "dante_subscription": "Controller"
}Get encryption enable and passcode for channel 1 and channel 2 for a given MAC addresses. In stereo mode channel 1 is only used.
| mac_address required | string Mac address of transmitter |
| X-Fields | string <mask> An optional fields mask |
{- "encrypted_channel_1": true,
- "encrypted_channel_2": true,
- "passcode_channel_1": "0000",
- "passcode_channel_2": "0000"
}Set encryption enable and passcode for channel 1 and channel 2 for a given MAC addresses. In stereo mode channel 1 is only used.
| mac_address required | string Mac address of transmitter |
| encrypted_channel_1 required | boolean Channel encryption status |
| encrypted_channel_2 | boolean Channel encryption status |
| passcode_channel_1 required | string = 4 characters Default: "0000" Four digit passcode for audio stream encryption |
| passcode_channel_2 | string = 4 characters Default: "0000" Four digit passcode for audio stream encryption |
{- "encrypted_channel_1": true,
- "encrypted_channel_2": true,
- "passcode_channel_1": "0000",
- "passcode_channel_2": "0000"
}Get transmitter infromation for the given MAC addresses.
| mac_address required | string Mac address of transmitter |
| X-Fields | string <mask> An optional fields mask |
{- "audio_quality": true,
- "fw_version": "string",
- "hw_version": "string",
- "led_enable": true,
- "radio_name": "string",
- "region_code": "string",
- "supported_channels": 0,
- "transmit_power": "Low"
}Set transmitter infromation for the given MAC addresses: radio name, transmit power, or LED enable.
| mac_address required | string Mac address of transmitter |
| led_enable | boolean LED enable |
| radio_name | string [ 4 .. 16 ] characters ^[^,]+$ Radio name of the server beginning with "WAV" |
| transmit_power | string Enum: "Low" "Medium" "High" Transmit power setting |
{- "led_enable": true,
- "radio_name": "string",
- "transmit_power": "Low"
}Get transmitter status for the given MAC addresses.
| mac_address required | string Mac address of transmitter |
| X-Fields | string <mask> An optional fields mask |
{- "channel1_stream_state": true,
- "channel2_stream_state": true,
- "transmitter_status": "string"
}