LiveWing
API Reference

Commands

Full command reference for all LiveWing API domains.

Commands are sent as { "id": "...", "type": "domain.action", "params": { ... } }. Params can be omitted for zero-argument commands.

Switcher

switcher.cut

Cut from preview to program.

{ "id": "1", "type": "switcher.cut" }

switcher.cutToSource

Cut directly to a source, bypassing preview.

{ "id": "1", "type": "switcher.cutToSource", "params": { "sourceId": 2 } }

switcher.setPreview

Set the preview source.

{ "id": "1", "type": "switcher.setPreview", "params": { "sourceId": 3 } }

switcher.fade

Fade from program to preview.

{ "id": "1", "type": "switcher.fade" }

switcher.getState

Get current switcher state (program, preview, transition).

{ "id": "1", "type": "switcher.getState" }

Audio

audio.setGain

{ "id": "1", "type": "audio.setGain", "params": { "sourceId": 0, "gainDb": -6.0 } }

audio.setMasterGain

{ "id": "1", "type": "audio.setMasterGain", "params": { "gainDb": 0.0 } }

audio.setPan

Pan from -1.0 (left) to 1.0 (right).

{ "id": "1", "type": "audio.setPan", "params": { "sourceId": 0, "pan": -0.5 } }

audio.mute / audio.toggleMute

{ "id": "1", "type": "audio.mute", "params": { "sourceId": 0, "muted": true } }
{ "id": "1", "type": "audio.toggleMute", "params": { "sourceId": 0 } }

audio.toggleSolo

{ "id": "1", "type": "audio.toggleSolo", "params": { "sourceId": 0 } }

audio.toggleBusSend

{ "id": "1", "type": "audio.toggleBusSend", "params": { "sourceId": 0, "busId": 1 } }

audio.setAFV

Audio-follows-video.

{ "id": "1", "type": "audio.setAFV", "params": { "sourceId": 0, "enabled": true } }

audio.setEQ

{
  "id": "1", "type": "audio.setEQ",
  "params": { "sourceId": 0, "bands": [{ "frequency": 100, "gain": -3.0, "q": 1.0, "type": "lowShelf" }] }
}

audio.setDynamics

{
  "id": "1", "type": "audio.setDynamics",
  "params": { "sourceId": 0, "threshold": -18.0, "ratio": 4.0, "attack": 10.0, "release": 100.0 }
}

audio.setLimiter

{ "id": "1", "type": "audio.setLimiter", "params": { "sourceId": 0, "threshold": -3.0 } }

audio.setBusVolume / audio.enableBus

{ "id": "1", "type": "audio.setBusVolume", "params": { "busId": 1, "gainDb": 0.0 } }
{ "id": "1", "type": "audio.enableBus", "params": { "busId": 1, "enabled": true } }

audio.getState

{ "id": "1", "type": "audio.getState" }

Output

output.setSource

{ "id": "1", "type": "output.setSource", "params": { "channel": 1, "source": "program" } }

source accepts "program", "preview", or a numeric source ID.

output.setEnabled

{ "id": "1", "type": "output.setEnabled", "params": { "channel": 1, "enabled": true } }

output.configureRTMP

{ "id": "1", "type": "output.configureRTMP", "params": { "channel": 1, "url": "rtmp://...", "key": "..." } }

output.configureSRT

{ "id": "1", "type": "output.configureSRT", "params": { "channel": 1, "host": "srt.example.com", "port": 9000 } }

output.configureRecord

{ "id": "1", "type": "output.configureRecord", "params": { "channel": 1, "path": "/path/to/output.mov" } }

output.getState

{ "id": "1", "type": "output.getState" }

display.list / display.openFullscreen / display.closeFullscreen

{ "id": "1", "type": "display.list" }
{ "id": "1", "type": "display.openFullscreen", "params": { "displayId": "uuid", "source": "program" } }
{ "id": "1", "type": "display.closeFullscreen", "params": { "displayId": "uuid" } }

Replay

replay.enterMode / replay.exitMode

{ "id": "1", "type": "replay.enterMode" }
{ "id": "1", "type": "replay.exitMode" }

replay.play

speed: 1.0 = normal, 0.5 = half speed, -1.0 = reverse.

{ "id": "1", "type": "replay.play", "params": { "speed": 0.5 } }

replay.pause

{ "id": "1", "type": "replay.pause" }

replay.seek

{ "id": "1", "type": "replay.seek", "params": { "positionSeconds": 12.5 } }

replay.markIn / replay.markOut

Mark the in/out point at the current position.

{ "id": "1", "type": "replay.markIn" }
{ "id": "1", "type": "replay.markOut" }

replay.quickEvent

{ "id": "1", "type": "replay.quickEvent", "params": { "label": "Goal" } }

replay.playEvent

{ "id": "1", "type": "replay.playEvent", "params": { "eventId": "uuid", "speed": 0.5 } }

Overlay

overlay.list / overlay.add / overlay.remove / overlay.update

{ "id": "1", "type": "overlay.list" }
{ "id": "1", "type": "overlay.add", "params": { "name": "Lower Third", "url": "https://..." } }
{ "id": "1", "type": "overlay.remove", "params": { "sourceId": 2 } }
{ "id": "1", "type": "overlay.update", "params": { "sourceId": 2, "name": "New Name" } }

overlay.getProgramState

{ "id": "1", "type": "overlay.getProgramState" }

overlay.assignProgramSlot / overlay.unassignProgramSlot / overlay.toggleProgramSlot

{ "id": "1", "type": "overlay.assignProgramSlot", "params": { "slot": 0, "sourceId": 2 } }
{ "id": "1", "type": "overlay.unassignProgramSlot", "params": { "slot": 0 } }
{ "id": "1", "type": "overlay.toggleProgramSlot", "params": { "slot": 0 } }

transform.set / transform.reset / transform.get

{ "id": "1", "type": "transform.set", "params": { "sourceId": 2, "x": 0.0, "y": 0.0, "width": 1.0, "height": 1.0 } }
{ "id": "1", "type": "transform.reset", "params": { "sourceId": 2 } }
{ "id": "1", "type": "transform.get", "params": { "sourceId": 2 } }

Input

input.list / input.add / input.remove

{ "id": "1", "type": "input.list" }
{ "id": "1", "type": "input.add", "params": { "type": "camera", "name": "Camera 1" } }
{ "id": "1", "type": "input.remove", "params": { "inputId": "uuid" } }

input.assign / input.unassign

{ "id": "1", "type": "input.assign", "params": { "inputId": "uuid", "slot": 1 } }
{ "id": "1", "type": "input.unassign", "params": { "inputId": "uuid" } }

input.rename

{ "id": "1", "type": "input.rename", "params": { "inputId": "uuid", "name": "Main Camera" } }

input.assignNDI / input.assignImage

{ "id": "1", "type": "input.assignNDI", "params": { "inputId": "uuid", "sourceName": "LAPTOP (Camera)" } }
{ "id": "1", "type": "input.assignImage", "params": { "inputId": "uuid", "path": "/path/to/image.png" } }

input.setFileLoop / input.refreshDevices

{ "id": "1", "type": "input.setFileLoop", "params": { "inputId": "uuid", "loop": true } }
{ "id": "1", "type": "input.refreshDevices" }

System

system.auth

See API Reference for full auth details.

{ "id": "1", "type": "system.auth", "params": { "token": "your-token" } }

system.getState

Get full application state. Rate limited to 5 calls/minute — use subscriptions for real-time updates.

{ "id": "1", "type": "system.getState" }

system.getVersion

{ "id": "1", "type": "system.getVersion" }
// → { "data": { "app": "1.0.0", "protocol": "v1" } }

system.ping

{ "id": "1", "type": "system.ping" }
// → { "data": { "pong": true } }

system.describe

Discover all commands and topics at runtime.

{ "id": "1", "type": "system.describe" }

system.subscribe / system.unsubscribe

See API Reference for all topics.

{ "id": "1", "type": "system.subscribe", "params": { "topics": ["switcher.state"] } }
{ "id": "1", "type": "system.unsubscribe", "params": { "topics": ["switcher.state"] } }

system.getClients

{ "id": "1", "type": "system.getClients" }

preset.list / preset.apply / preset.save / preset.delete

{ "id": "1", "type": "preset.list" }
{ "id": "1", "type": "preset.apply", "params": { "presetId": "uuid" } }
{ "id": "1", "type": "preset.save", "params": { "name": "Show Setup" } }
{ "id": "1", "type": "preset.delete", "params": { "presetId": "uuid" } }

On this page