OSC / API reference
ShowTrak Server can be controlled remotely, so you can fire actions from lighting consoles, cue software, show‑control systems, or your own scripts. There are two ways in, and they use the same set of addresses:
- OSC — send OSC messages to the Server over UDP on port 3333.
- HTTP API — send a normal web request (GET or POST) to the Server on port 3000, using the same path. For example:
http://<server-ip>:3000/API/All/Select.
Both are available automatically whenever the Server is running — there's nothing to switch on. (The HTTP API is part of the same service as the Web UI; see Preferences for Web UI options.)
How addresses work
Every address starts with /API/. Parts shown like :UUID or :ScriptID are placeholders you replace with a real value:
- UUID — a client's unique ID, shown in the client's editor (gear icon).
- ScriptID — a script's ID, shown in the Script Manager.
- GroupID — a group's ID, shown in the group editor.
- ID (dummy) — the ID you gave a dummy client when you created it.
The HTTP API returns a small JSON response telling you whether the request succeeded. With OSC you'll see a brief on‑screen confirmation in the Server.
System
| Address |
What it does |
/API/Shutdown |
Closes the Server (respecting any save / show‑mode prompts) |
/API/Shutdown/Force |
Closes the Server immediately, without prompts |
A single client
| Address |
What it does |
/API/Client/:UUID/Select |
Adds that client to the current selection |
/API/Client/:UUID/Deselect |
Removes that client from the selection |
/API/Client/:UUID/WakeOnLAN |
Sends a Wake‑on‑LAN packet to that client |
/API/Client/:UUID/RunScript/:ScriptID |
Runs a script on that client |
A group
| Address |
What it does |
/API/Group/:GroupID/Select |
Selects every member of the group |
/API/Group/:GroupID/Deselect |
Deselects every member of the group |
/API/Group/:GroupID/WakeOnLAN |
Sends Wake‑on‑LAN to the group |
/API/Group/:GroupID/RunScript/:ScriptID |
Runs a script on the group |
All clients
| Address |
What it does |
/API/All/Select |
Selects every client |
/API/All/Deselect |
Clears the selection |
/API/All/WakeOnLAN |
Sends Wake‑on‑LAN to every client |
/API/All/RunScript/:ScriptID |
Runs a script on every client |
The current selection
| Address |
What it does |
/API/Selection/WakeOnLAN |
Sends Wake‑on‑LAN to whatever is currently selected |
/API/Selection/RunScript/:ScriptID |
Runs a script on whatever is currently selected |
Combine the Select / Deselect addresses with these to build up a selection and then act on it.
Dummy clients
| Address |
What it does |
/API/Dummy/:ID/Heartbeat |
Sends a heartbeat to a dummy client, keeping it online |
This is how an outside system checks in to a dummy client. Send this address on a schedule and the dummy stays online; stop sending it and the dummy goes offline.
Reading data over HTTP
| Address |
What it does |
GET /API/Clients |
Returns the current list of clients as JSON |
Examples
# OSC: wake every client
/API/All/WakeOnLAN
# HTTP: run script "RestartComputer" on one client
http://192.168.1.10:3000/API/Client/7c9e6679-7425-40de-944b-e07fc1f90ae7/RunScript/RestartComputer
# HTTP: keep a dummy client alive (send every few seconds)
http://192.168.1.10:3000/API/Dummy/PlaybackMac/Heartbeat
Notes
- Keep the address segments in the exact order shown.
- If an address can't be processed (wrong ID, device offline, port blocked) you'll get an error response and an error notification in the Server.
- Make sure your sender targets the Server's IP and the right port (3333 for OSC, 3000 for HTTP), and that your firewall allows the traffic.
- There's also an OSC/API Debug Terminal in the Settings menu that shows incoming requests live — useful when testing.