Summary
Theatrixx Aquilon RS1 (LivePremier™ "AQL RS1") is a multi-window presentation processor / screen controller. This spec covers its HTTP/REST control API (base /api/tpp/v1) plus the Wake-on-LAN UDP wake mechanism. Control spans system power, per-screen and auxiliary-screen layer/source routing, preset recall, single/global TAKE transitions, multiviewer widgets, and Dante/analog audio routing & mute.
Transport
protocols:
- http
- udp # Wake-on-LAN magic packet only
addressing:
base_url: "http://<ipaddress>/api/tpp/v1"
port: null # UNRESOLVED: HTTP port not numerically stated in source
udp:
port: 9 # Wake-on-LAN magic packet UDP broadcast (Discard port), stated verbatim in source §9.4
auth:
type: cookie # conditional: JWT cookie (`auth-jwt`) required only when the Web RCS is password-protected (§10). Login: POST /auth/login?identifier={id}&password={pwd}
Traits
traits:
- powerable # inferred: reboot / shutdown (with WoL) / wake-on-LAN commands present (§2.2, 2.3, 9)
- routable # inferred: layer/background/widget/audio source routing commands present (§3.7, 3.9, 4.5, 5.5, 6.3.8, 6.4.8, 6.5.8)
- queryable # inferred: extensive GET status/info queries present (§2.1, 3.1, 3.5, 3.6, etc.)
Actions
# All HTTP commands are "METHOD <path>" against base_url http://<ipaddress>/api/tpp/v1.
# Path params ({screenId}, {layerId}, ...) are URL path variables; body params are JSON keys.
# Source notes: POSTs require Content-Type: application/json + correct Content-Length; line
# breaks in payloads must be trimmed. CR=0x0D LF=0x0A terminate raw HTTP requests.
# ---- System (§2) ----
- id: read_system
label: Read System Information
kind: query
command: "GET /api/tpp/v1/system"
params: []
- id: system_reboot
label: Reboot System
kind: action
command: "POST /api/tpp/v1/system/reboot"
params: []
- id: system_shutdown
label: Shutdown System
kind: action
command: "POST /api/tpp/v1/system/shutdown"
params:
- name: enableWakeOnLAN
type: boolean
optional: true
description: "true to shut down with Wake-on-LAN enabled; default false (§2.3)"
body_template: '{"enableWakeOnLAN": false}'
- id: wake_on_lan
label: Wake on LAN (Magic Packet)
kind: action
command: "UDP broadcast port 9: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF + 16 × [MAC 6 bytes] (102 bytes total)"
params:
- name: mac_address
type: string
description: "Target NIC MAC address (e.g. 00:25:90:3D:11:4A). Retrieve via front panel CONTROL -> Network (§9.3)"
# ---- Screens (§3) ----
- id: read_screen
label: Read Screen Information
kind: query
command: "GET /api/tpp/v1/screens/{screenId}"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- id: screen_load_memory
label: Recall Preset to Screen
kind: action
command: "POST /api/tpp/v1/screens/{screenId}/load-memory"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: memoryId
type: integer
description: "memory index (1 to 1000)"
- name: target
type: string
optional: true
description: '"program" or "preview"; default "preview"'
body_template: '{"memoryId": 30, "target": "preview"}'
- id: load_master_memory
label: Recall Master Preset
kind: action
command: "POST /api/tpp/v1/load-master-memory"
params:
- name: memoryId
type: integer
description: "master memory index (1 to 500)"
- name: target
type: string
optional: true
description: '"program" or "preview"; default "preview"'
body_template: '{"memoryId": 10, "target": "preview"}'
- id: read_layer_info
label: Read Layer Information
kind: query
command: "GET /api/tpp/v1/screens/{screenId}/layers/{layerId}"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: layerId
type: integer
description: "layer number (1 to 128)"
- id: read_layer_status
label: Read Layer Status
kind: query
command: "GET /api/tpp/v1/screens/{screenId}/layers/{layerId}/presets/{target}"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: layerId
type: integer
description: "layer number (1 to 128)"
- name: target
type: string
description: '"program" or "preview"'
- id: set_layer_source
label: Set Layer Source
kind: action
command: "POST /api/tpp/v1/screens/{screenId}/layers/{layerId}/presets/{target}/source"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: layerId
type: integer
description: "layer number (1 to 128)"
- name: target
type: string
description: '"program" or "preview"'
- name: sourceType
type: string
description: '"none", "color", "input", "image" or "screen"'
- name: sourceId
type: integer
optional: true
description: "source number"
body_template: '{"sourceType": "input", "sourceId": 3}'
- id: read_background_layer_status
label: Read Background Layer Status
kind: query
command: "GET /api/tpp/v1/screens/{screenId}/background-layer/presets/{target}"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: target
type: string
description: '"program" or "preview"'
- id: set_background_layer_source
label: Set Background Layer Source
kind: action
command: "POST /api/tpp/v1/screens/{screenId}/background-layer/presets/{target}/source"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: target
type: string
description: '"program" or "preview"'
- name: sourceType
type: string
description: '"background-set" or "none"'
- name: sourceId
type: integer
optional: true
description: "background source number (1 to 8)"
body_template: '{"sourceType": "background-set", "sourceId": 8}'
- id: screen_take
label: Single TAKE (Screen)
kind: action
command: "POST /api/tpp/v1/screens/{screenId}/take"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- id: global_take
label: Global TAKE (Multiple Screens)
kind: action
command: "POST /api/tpp/v1/take"
params:
- name: screenIds
type: list
optional: true
description: "list of screen indexes to transition"
- name: auxiliaryScreenIds
type: list
optional: true
description: "list of auxiliary screen indexes to transition"
body_template: '{"screenIds": [1, 3], "auxiliaryScreenIds": [5]}'
# ---- Auxiliary screens (§4) ----
- id: read_aux_screen
label: Read Auxiliary Screen Information
kind: query
command: "GET /api/tpp/v1/auxiliary-screens/{auxId}"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
- id: aux_screen_load_memory
label: Recall Preset to Auxiliary Screen
kind: action
command: "POST /api/tpp/v1/auxiliary-screens/{auxId}/load-memory"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
- name: memoryId
type: integer
description: "memory index"
- name: target
type: string
optional: true
description: '"program" or "preview"; default "preview"'
body_template: '{"memoryId": 5}'
- id: read_aux_layer_capacity
label: Read Auxiliary Screen Layer Capacity
kind: query
command: "GET /api/tpp/v1/auxiliary-screens/{auxId}/layers/{layerId}"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
- name: layerId
type: integer
description: "layer number (1 to 8)"
- id: read_aux_layer_source
label: Read Auxiliary Screen Layer Source
kind: query
command: "GET /api/tpp/v1/auxiliary-screens/{auxId}/layers/{layerId}/presets/{target}/source"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
- name: layerId
type: integer
description: "layer number (1 to 8)"
- name: target
type: string
description: '"program" or "preview"'
- id: set_aux_layer_source
label: Set Auxiliary Screen Layer Source
kind: action
command: "POST /api/tpp/v1/auxiliary-screens/{auxId}/layers/{layerId}/presets/{target}/source"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
- name: layerId
type: integer
description: "layer number (1 to 8)"
- name: target
type: string
description: '"program" or "preview"'
- name: sourceType
type: string
description: '"none", "input", "image" or "screen"'
- name: sourceId
type: integer
optional: true
description: "source number"
body_template: '{"sourceType": "image", "sourceId": 24}'
- id: aux_screen_take
label: TAKE (Auxiliary Screen)
kind: action
command: "POST /api/tpp/v1/auxiliary-screens/{auxId}/take"
params:
- name: auxId
type: integer
description: "auxiliary screen number (1 to 96)"
# ---- Multiviewers (§5) ----
- id: read_multiviewer
label: Read Multiviewer Output Information
kind: query
command: "GET /api/tpp/v1/multiviewers/{mvwId}"
params:
- name: mvwId
type: integer
description: "multiviewer output number (1 to 8)"
- id: multiviewer_load_memory
label: Recall Preset to Multiviewer Output
kind: action
command: "POST /api/tpp/v1/multiviewers/{mvwId}/load-memory"
params:
- name: mvwId
type: integer
description: "multiviewer output number (1 to 8)"
- name: memoryId
type: integer
description: "memory index (1 to 50)"
body_template: '{"memoryId": 20}'
- id: read_widget_source
label: Read Multiviewer Widget Source
kind: query
command: "GET /api/tpp/v1/multiviewers/{mvwId}/widgets/{widgetId}/source"
params:
- name: mvwId
type: integer
description: "multiviewer output number (1 to 8)"
- name: widgetId
type: integer
description: "widget number (1 to 64)"
- id: read_widget_status
label: Read Multiviewer Widget Status
kind: query
command: "GET /api/tpp/v1/multiviewers/{mvwId}/widgets/{widgetId}"
params:
- name: mvwId
type: integer
description: "multiviewer output number (1 to 8)"
- name: widgetId
type: integer
description: "widget number (1 to 64)"
- id: set_widget_source
label: Set Multiviewer Widget Source
kind: action
command: "POST /api/tpp/v1/multiviewers/{mvwId}/widgets/{widgetId}/source"
params:
- name: mvwId
type: integer
description: "multiviewer output number (1 to 8)"
- name: widgetId
type: integer
description: "widget number (1 to 64)"
- name: sourceType
type: string
description: '"none", "input", "image", "screen-program", "screen-preview", "auxiliary-screen-program" or "timer"'
- name: sourceId
type: integer
optional: true
description: "source number"
body_template: '{"sourceType": "input", "sourceId": 7}'
# ---- Audio inputs (§6.1) ----
- id: read_input_audio_channels
label: Read Input Audio Channels
kind: query
command: "GET /api/tpp/v1/audio/receivers/inputs/{inputId}/channels"
params:
- name: inputId
type: integer
description: "input number"
- id: mute_input_audio_all
label: Mute All Input Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/receivers/inputs/{inputId}/channels/mute"
params:
- name: inputId
type: integer
description: "input number"
- id: unmute_input_audio_all
label: Unmute All Input Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/receivers/inputs/{inputId}/channels/unmute"
params:
- name: inputId
type: integer
description: "input number"
- id: read_input_audio_channel
label: Read Input Audio Channel
kind: query
command: "GET /api/tpp/v1/audio/receivers/inputs/{inputId}/channels/{channelId}"
params:
- name: inputId
type: integer
description: "input number"
- name: channelId
type: integer
description: "input audio channel number"
- id: mute_input_audio_channel
label: Mute Input Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/receivers/inputs/{inputId}/channels/{channelId}/mute"
params:
- name: inputId
type: integer
description: "input number"
- name: channelId
type: integer
description: "input audio channel number"
- id: unmute_input_audio_channel
label: Unmute Input Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/receivers/inputs/{inputId}/channels/{channelId}/unmute"
params:
- name: inputId
type: integer
description: "input number"
- name: channelId
type: integer
description: "input audio channel number"
# ---- Audio Rx Dante (§6.2) ----
- id: read_rxdante_channels
label: Read Rx Dante Channels
kind: query
command: "GET /api/tpp/v1/audio/receivers/dante/channels"
params: []
- id: mute_rxdante_all
label: Mute All Rx Dante Channels
kind: action
command: "POST /api/tpp/v1/audio/receivers/dante/channels/mute"
params: []
- id: unmute_rxdante_all
label: Unmute All Rx Dante Channels
kind: action
command: "POST /api/tpp/v1/audio/receivers/dante/channels/unmute"
params: []
- id: read_rxdante_channel
label: Read Rx Dante Channel
kind: query
command: "GET /api/tpp/v1/audio/receivers/dante/channels/{channelId}"
params:
- name: channelId
type: integer
description: "Rx Dante channel number (1 to 256)"
- id: mute_rxdante_channel
label: Mute Rx Dante Channel
kind: action
command: "POST /api/tpp/v1/audio/receivers/dante/channels/{channelId}/mute"
params:
- name: channelId
type: integer
description: "Rx Dante channel number"
# NOTE: source §6.2.5 documents the path as "channels/{channelId}mute" (missing slash) in
# the signature table; the worked example uses "channels/32/mute". Implementations should
# follow the worked-example form.
- id: unmute_rxdante_channel
label: Unmute Rx Dante Channel
kind: action
command: "POST /api/tpp/v1/audio/receivers/dante/channels/{channelId}/unmute"
params:
- name: channelId
type: integer
description: "Rx Dante channel number"
# ---- Audio outputs (§6.3) ----
- id: read_output_audio_channels
label: Read Output Audio Channels
kind: query
command: "GET /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels"
params:
- name: outputId
type: integer
description: "output number"
- id: mute_output_audio_all
label: Mute All Output Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/mute"
params:
- name: outputId
type: integer
description: "output number"
- id: unmute_output_audio_all
label: Unmute All Output Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/unmute"
params:
- name: outputId
type: integer
description: "output number"
- id: read_output_audio_channel
label: Read Output Audio Channel
kind: query
command: "GET /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/{channelId}"
params:
- name: outputId
type: integer
description: "output number"
- name: channelId
type: integer
description: "output audio channel number"
- id: mute_output_audio_channel
label: Mute Output Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/{channelId}/mute"
params:
- name: outputId
type: integer
description: "output number"
- name: channelId
type: integer
description: "output audio channel number"
- id: unmute_output_audio_channel
label: Unmute Output Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/{channelId}/unmute"
params:
- name: outputId
type: integer
description: "output number"
- name: channelId
type: integer
description: "output audio channel number"
- id: read_output_audio_source
label: Read Output Audio Channel Source
kind: query
command: "GET /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/{channelId}/source"
params:
- name: outputId
type: integer
description: "output number"
- name: channelId
type: integer
description: "output audio channel number"
- id: set_output_audio_source
label: Set Output Audio Channel Source
kind: action
command: "POST /api/tpp/v1/audio/transmitters/outputs/{outputId}/channels/{channelId}/source"
params:
- name: outputId
type: integer
description: "output number"
- name: channelId
type: integer
description: "output audio channel number"
- name: sourceType
type: string
description: '"none", "input" or "dante"'
- name: sourceId
type: integer
optional: true
description: "source number (only for input)"
- name: channelId_body
type: integer
optional: true
description: "source channel number"
body_template: '{"sourceType": "input", "sourceId": 7, "channelId": 4}'
# ---- Audio Tx Dante (§6.4) ----
- id: read_txdante_channels
label: Read Tx Dante Channels
kind: query
command: "GET /api/tpp/v1/audio/transmitters/dante/channels"
params: []
- id: mute_txdante_all
label: Mute All Tx Dante Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/dante/channels/mute"
params: []
- id: unmute_txdante_all
label: Unmute All Tx Dante Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/dante/channels/unmute"
params: []
- id: read_txdante_channel
label: Read Tx Dante Channel
kind: query
command: "GET /api/tpp/v1/audio/transmitters/dante/channels/{channelId}"
params:
- name: channelId
type: integer
description: "Tx Dante channel number (1 to 256)"
- id: mute_txdante_channel
label: Mute Tx Dante Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/dante/channels/{channelId}/mute"
params:
- name: channelId
type: integer
description: "Tx Dante channel number"
- id: unmute_txdante_channel
label: Unmute Tx Dante Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/dante/channels/{channelId}/unmute"
params:
- name: channelId
type: integer
description: "Tx Dante channel number"
- id: read_txdante_source
label: Read Tx Dante Channel Source
kind: query
command: "GET /api/tpp/v1/audio/transmitters/dante/channels/{channelId}/source"
params:
- name: channelId
type: integer
description: "Tx Dante channel number"
- id: set_txdante_source
label: Set Tx Dante Channel Source
kind: action
command: "POST /api/tpp/v1/audio/transmitters/dante/channels/{channelId}/source"
params:
- name: channelId
type: integer
description: "Tx Dante channel number"
- name: sourceType
type: string
description: '"none", "input" or "dante"'
- name: sourceId
type: integer
optional: true
description: "source number (only for input)"
- name: channelId_body
type: integer
optional: true
description: "source channel number"
body_template: '{"sourceType": "input", "sourceId": 7, "channelId": 4}'
# ---- Audio Multiviewer (§6.5) ----
- id: read_mvw_audio_channels
label: Read Multiviewer Audio Channels
kind: query
command: "GET /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- id: mute_mvw_audio_all
label: Mute All Multiviewer Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/mute"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- id: unmute_mvw_audio_all
label: Unmute All Multiviewer Audio Channels
kind: action
command: "POST /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/unmute"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- id: read_mvw_audio_channel
label: Read Multiviewer Audio Channel
kind: query
command: "GET /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/{channelId}"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- name: channelId
type: integer
description: "Multiviewer output audio channel number"
- id: mute_mvw_audio_channel
label: Mute Multiviewer Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/{channelId}/mute"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- name: channelId
type: integer
description: "Multiviewer output audio channel number"
- id: unmute_mvw_audio_channel
label: Unmute Multiviewer Audio Channel
kind: action
command: "POST /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/{channelId}/unmute"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- name: channelId
type: integer
description: "Multiviewer output audio channel number"
- id: read_mvw_audio_source
label: Read Multiviewer Audio Channel Source
kind: query
command: "GET /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/{channelId}/source"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- name: channelId
type: integer
description: "Multiviewer output audio channel number"
- id: set_mvw_audio_source
label: Set Multiviewer Audio Channel Source
kind: action
command: "POST /api/tpp/v1/audio/transmitters/multiviewers/{multiviewerId}/channels/{channelId}/source"
params:
- name: multiviewerId
type: integer
description: "Multiviewer output number"
- name: channelId
type: integer
description: "Multiviewer output audio channel number"
- name: sourceType
type: string
description: '"none", "input" or "dante"'
- name: sourceId
type: integer
optional: true
description: "source number (only for input)"
- name: channelId_body
type: integer
optional: true
description: "source channel number"
body_template: '{"sourceType": "input", "sourceId": 7, "channelId": 4}'
# ---- Sources (§7) ----
- id: read_input
label: Read Input Information
kind: query
command: "GET /api/tpp/v1/inputs/{inputId}"
params:
- name: inputId
type: integer
description: "input number (1 to 256)"
- id: read_image
label: Read Still Image Information
kind: query
command: "GET /api/tpp/v1/images/{imageId}"
params:
- name: imageId
type: integer
description: "image number (1 to 192)"
- id: read_background_set
label: Read Background Set Information
kind: query
command: "GET /api/tpp/v1/screens/{screenId}/background-sets/{backgroundSetId}"
params:
- name: screenId
type: integer
description: "screen number (1 to 24)"
- name: backgroundSetId
type: integer
description: "background set number (1 to 8)"
# ---- Authentication (§10) ----
- id: auth_login
label: Authenticate (Login)
kind: action
command: "POST /auth/login?identifier={id}&password={pwd}"
params:
- name: id
type: string
description: 'user identifier (e.g. "Admin")'
- name: pwd
type: string
description: "user password"
response_note: "Returns Set-Cookie: auth-jwt=<JWT>; reuse as Cookie header on subsequent calls. Required only if Web RCS is password-protected (else 401)."
Feedbacks
- id: system_info
type: object
fields: [type, label, isLinked, linkName, version]
description: "GET /system; type ∈ {AQL RS alpha, AQL RS1, AQL RS2, AQL RS3, AQL RS4, AQL RS5, AQL RS6, AQL C, AQL C+, AQL CMAX}"
- id: firmware_version
type: object
fields: [major, minor, patch, beta]
description: "nested under system.version"
- id: screen_info
type: object
fields: [isEnabled, label]
- id: layer_info
type: object
fields: [capacity, canUseMask]
- id: layer_status
type: object
fields: [status, sourceType, sourceId]
description: 'status ∈ {off, open, close, cross, flying, flying depth, preempted, mask, out of capacity}'
- id: background_layer_status
type: object
fields: [target, status, sourceType, sourceId]
description: 'status ∈ {off, open, close, cross}; sourceType ∈ {background-set, none}'
- id: aux_screen_info
type: object
fields: [isEnabled, label]
- id: aux_layer_capacity
type: object
fields: [capacity]
- id: aux_layer_source
type: object
fields: [sourceType, sourceId]
- id: multiviewer_info
type: object
fields: [isEnabled, isDuplication, label]
- id: widget_status
type: object
fields: [isEnabled]
- id: widget_source
type: object
fields: [sourceType, sourceId]
- id: input_audio_channel_state
type: object
fields: [id, isEnabled, isLevelDetected, isMuted]
- id: rxdante_channel_state
type: object
fields: [id, isEnabled, isLevelDetected, isMuted, label]
- id: output_audio_channel_state
type: object
fields: [id, isEnabled, isLevelDetected, isMuted, sourceType, sourceId, channelId]
- id: output_audio_source
type: object
fields: [sourceType, sourceId, channelId]
- id: txdante_channel_state
type: object
fields: [id, isEnabled, isLevelDetected, isMuted, label, sourceType, sourceId, channelId]
- id: txdante_source
type: object
fields: [sourceType, sourceId, channelId]
- id: mvw_audio_channel_state
type: object
fields: [id, isEnabled, isLevelDetected, isMuted, sourceType, sourceId, channelId]
- id: input_info
type: object
fields: [isEnabled, capacity, label, isValid, isFrozen, isVisibleInSourceLists]
- id: image_info
type: object
fields: [isEnabled, capacity, label, isValid, isVisibleInSourceLists]
- id: background_set_info
type: object
fields: [isEmpty, isValid]
Variables
# Source exposes only discrete actions/queries (no scalar get/set level like volume/gain).
# target (program/preview) is a discrete enum on state-changing actions, not a free variable.
# UNRESOLVED: no continuous settable parameter documented in this source.
Events
# Source documents no unsolicited push/notification mechanism.
# UNRESOLVED: no event subscription / webhook / keepalive channel described.
Macros
# TAKE (single/global) is a one-shot transition command, not a multi-step sequence.
# UNRESOLVED: no explicit multi-step macro/preset-sequence described in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or
# power-on sequencing requirements. Note (non-safety, operational): reboot, shutdown,
# and Wake-on-LAN affect device power state; shutdown with enableWakeOnLAN=true leaves
# the device in 'sleep' state reachable only via magic packet on UDP port 9.
Notes
- HTTP is the documented transport (
http://<ipaddress>/api/tpp/v1); raw examples terminate with<CR><LF>(0x0D 0x0A). The known-protocol hint "TCP/IP" maps to this HTTP API. - POST bodies must declare correct
Content-Length(byte count of payload) andContent-Type: application/json. Source warns that page-layout line breaks in examples must be trimmed or the request is invalid. - Authentication is conditional: if the Web RCS is password-protected, API calls return
401untilPOST /auth/loginis called and the returnedauth-jwtcookie is sent on every subsequent request. - HTTP status codes documented: 200 OK, 204 No Content, 400 Bad Request, 404 Not Found, 405 Method Not Allowed, 409 Internal Server Error (per source §1.4 — note 409 is labeled "Internal Server Error" by the vendor).
- Capacity/index ranges per source: screens 1–24, layers 1–128 (screens) / 1–8 (aux), aux screens 1–96, multiviewer outputs 1–8, widgets 1–64, inputs 1–256, still images 1–192, background sets 1–8, Dante channels 1–256 (64×4 across up to 4 linked devices). Actual counts depend on machine type/configuration.
- Thumbnails (PNG, 256px wide) available at
http://<ipaddress>/api/device/snapshots/{inputs|images|outputs|multiviewers|timers}/{n}— refresh rate must not exceed 1 snapshot/second (§8). These are media resources, not control commands. - Source errata: §6.2.5 signature writes
channels/{channelId}mute(missing slash); worked example uses/channels/32/mute. §6.3.7 example for "Reading the source of an output audio channel" usesPOST(likely should beGET). - Linked-device addressing: multiviewer/Dante numbering spans up to 4 linked devices (device1: 1–2/1–64, device2: 3–4/65–128, device3: 5–6/129–192, device4: 7–8/193–256).
Provenance
source_domains:
- s3.eu-west-3.amazonaws.com
source_urls:
- "https://s3.eu-west-3.amazonaws.com/aw.store01/Site+Internet/Series/LivePremier/Common/Rest+API+Programmer's+Guide/livepremier_rest_api_programmers_guide_v4.1.pdf"
- https://s3.eu-west-3.amazonaws.com/aw.store01/Site+Internet/Series/LivePremier/Common/AWJ+Protocol/livepremier_awj_programmers_guide_v2.4.pdf
retrieved_at: 2026-06-30T05:35:27.810Z
last_checked_at: 2026-06-30T07:14:27.811Z
Verification Summary
verdict: verified
checked_at: 2026-06-30T07:14:27.811Z
matched_actions: 65
action_count: 65
confidence: medium
summary: "All 65 spec actions have verbatim endpoint matches in the source; transport base URL, WoL UDP port 9, and auth cookie mechanism all confirmed; source documents exactly these 65 endpoints with no uncovered functional commands. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "HTTP TCP port not numerically stated (only `http://<ipaddress>/...` given). Device input/output counts vary by configuration; ranges quoted from source."
- "HTTP port not numerically stated in source"
- "no continuous settable parameter documented in this source."
- "no event subscription / webhook / keepalive channel described."
- "no explicit multi-step macro/preset-sequence described in source."
- "source contains no explicit safety warnings, interlock procedures, or"
- "HTTP port not numerically stated."
- "device firmware compatibility version not pinned (only API doc version \"v4.0 or higher\")."
- "no event/feedback push channel documented."
- "no explicit safety/interlock text in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0