Skip to main content

SDVoE API operations

The DisplayNet REST server exposes two endpoint types: DisplayNet API commands and SDVoE API commands.

Endpoint typeNamespaceCovers
DisplayNet API commands/api/displaynet/*Routing, presets, walls, MultiView, tagging, server administration
SDVoE API commands/api/device/*, /api/event, /api/request/*Device resources and lower-level functionality

Both endpoint types use the same authentication model, response envelope, and WebSocket. DisplayNet reserves /api/displaynet for its own API commands. It forwards requests on the SDVoE resource paths to the SDVoE API. A client written for the SDVoE REST API works against a DisplayNet server without modification.

Prefer DisplayNet API commands

DisplayNet API commands maintain state that the SDVoE layer does not track. This includes routing records, device locks, MultiView bookkeeping, and preset contents. If you change the hardware through SDVoE API commands instead, DisplayNet's state can become out of date.

Use an SDVoE API command when DisplayNet does not cover what you need.

Request shape

An SDVoE API command targets a device and names the operation in the op field. Do not send this body to /api/displaynet; use the device path shown here.

POST /api/device/{target} request body
{
"op": "start",
"stream_type": "HDMI",
"stream_index": 0
}
PathUse
GET /api/deviceList discovered devices
GET /api/device/{target}Read one device's hello subset
GET /api/eventPoll recent events
GET /api/request/{request_id}Read the outcome of an asynchronous operation

Each command page gives the exact op and arguments for that command.

The command pages use type placeholders such as String and Integer. Replace them with actual values; do not send the type names as literal strings. Omit optional fields unless the operation requires them.

DisplayNet additions

Device names

DisplayNet accepts a device name wherever the SDVoE API expects a device ID. You can use the name in the /api/device/{target} path or in a device reference field in the body.

Equivalent device targets

GET /api/device/RokuTV
GET /api/device/6cdffb01f5ba

A name containing spaces is written with underscores. Group keywords such as ALL, ALL_TX and ALL_RX pass through unchanged.

Locked devices

A device locked with lock rejects mutating SDVoE API operations: start, stop, join, leave, switch, unicast, multicast, set, factory and reboot.

403 Forbidden

{
"status": "ERROR",
"request_id": null,
"result": null,
"error": {
"message": "Cannot join on locked device Top Left TV",
"reason": "DEVICE_LOCKED"
}
}

Read operations are still allowed. A lock restricts configuration and routing changes, but it does not affect a link that is already up. This rule applies over HTTP and the REST WebSocket.

Asynchronous operations

An asynchronous POST to /api/device/{target} returns a Location header:

Initial response

HTTP/1.1 201 Created
Location: /api/request/<id>

To check the result, poll that location:

Polling request

GET /api/request/<id>

DisplayNet returns the Location header unchanged and proxies the polling request on the same path.

Unrecognized paths

HTTP 404 response

{
"status": "ERROR",
"request_id": null,
"result": null,
"error": {
"reason": "PROTOCOL",
"message": "Not Found"
}
}

If the Control Server cannot be reached at all, the reply is 502 with reason CONTROL_SERVER_UNREACHABLE.

Command map

The TCI interfaces expose every command. These interfaces are telnet, SSH, and the TCI WebSocket. Only the REST form varies.

CommandOver RESTEndpoint type
authauthDisplayNet API command
authkeyauthkey_add authkey_list authkey_removeDisplayNet API command
certcert_* 5 operationsDisplayNet API command
claimclaimDisplayNet API command
configconfig_delete config_get config_setDisplayNet API command
connectconnect_* 11 operationsDisplayNet API command
deviceswitchdeviceswitchDisplayNet API command
devicetagdevicetag_add devicetag_list devicetag_removeDisplayNet API command
disconnectdisconnect_* 20 operationsDisplayNet API command
displaydisplay_mute display_volumeDisplayNet API command
edidPOST /api/device/{target}SDVoE API command
edidedid_* 6 operationsDisplayNet API command
eventGET /api/eventSDVoE API command
firmwarefirmware_list firmware_updateencoder firmware_updatemcuDisplayNet API command
getGET /api/device
GET /api/device/{target}
POST /api/device/{target}
SDVoE API command
getinitdatagetinitdataDisplayNet API command
helphelpDisplayNet API command
ipPOST /api/device/{target}SDVoE API command
kvmkvm_* 64 operationsDisplayNet API command
kvm configkvm_configDisplayNet API command
kvm deskkvm_deskDisplayNet API command
kvm hidkvm_hidDisplayNet API command
kvm macrokvm_macroDisplayNet API command
kvm streamdeckkvm_streamdeckDisplayNet API command
kvm streamdeck dialkvm_streamdeckDisplayNet API command
kvm workstationkvm_workstationDisplayNet API command
layoutlayout_* 6 operationsDisplayNet API command
locklockDisplayNet API command
logginglogging_reset logging_searchDisplayNet API command
loginloginDisplayNet API command
logintokenNone, session only
logoutlogoutDisplayNet API command
modeNone, session only
mtvmtv_* 6 operationsDisplayNet API command
overlayoverlay_start overlay_stopDisplayNet API command
passwordNone, session only
presetpreset_* 10 operationsDisplayNet API command
propertyPOST /api/device/{target}SDVoE API command
queryqueryDisplayNet API command
rebootPOST /api/device/{target}SDVoE API command
releasereleaseDisplayNet API command
replacereplace_* 5 operationsDisplayNet API command
requestGET /api/request/{request_id}SDVoE API command
scalerPOST /api/device/{target}SDVoE API command
sendPOST /api/device/{target}SDVoE API command
serverserver_* 16 operationsDisplayNet API command
startPOST /api/device/{target}SDVoE API command
stopPOST /api/device/{target}SDVoE API command
streamstream_* 7 operationsDisplayNet API command
tagtag_* 5 operationsDisplayNet API command
taggrouptaggroup_* 6 operationsDisplayNet API command
thumbthumb_start thumb_stopDisplayNet API command
unauthunauthDisplayNet API command
unlockunlockDisplayNet API command
updatePOST /api/device/{target}SDVoE API command
usb2usb2_* 6 operationsDisplayNet API command
useruser_* 7 operationsDisplayNet API command
versionNone
videoPOST /api/device/{target}SDVoE API command
wallwall_* 7 operationsDisplayNet API command
EntryMeaning
A DisplayNet API command entryNames the operation to POST to. The command's own page documents its parameters under REST API.
An SDVoE API command entryThe command is forwarded to the Control Server. The command's own page gives the path and body.
No REST formSession commands (mode, logintoken, password) act on a single API session, and REST has no session to act on. Use a TCI interface.

The command pages mark claim, release, auth, and unauth as SDVoE because they originate in the SDVoE API. Their REST blocks use DisplayNet API operations instead. DisplayNet uses those operations to maintain its own records. Use the endpoint shown in each REST block.

See also