The control API is the set of web addresses the Studio answers on its remote control port.
The phone remote and the prompter use it, and so can Bitfocus Companion, a script, or any tool
that sends HTTP requests. A GET reads; a POST acts.
Where it listens
Section titled “Where it listens”On port 8800 unless you change Port in Settings › This Mac › Remote. Status says
whether it listens. From this Mac, use http://localhost:8800; from another machine, the Mac’s
address and the token.

The token
Section titled “The token”Requests from this Mac need nothing. Requests from another device need the token, either as
the X-Live-Producer-Token header or as ?t=<token> on the address. See
Phone remote.
Shots and layers by name
Section titled “Shots and layers by name”| Method | Address | Does |
|---|---|---|
| POST | /shots/{name}/preview |
Puts a shot in preview |
| POST | /shots/{name}/live |
Takes a shot live at once |
| POST | /shots/{name}/preview?with=1, /shots/{name}/live?with=1 |
The same, with the shots it brings along |
| POST | /layers/{name}/clear |
Takes a layer to nothing at once |
| POST | /layers/{name}/clear/preview |
Puts Clear in preview on a layer |
| POST | /take |
Makes the program match the preview |
Use names for buttons: they keep working when layers are reordered, added or merged, and in
other shows that use the same names. Capitalisation does not matter; write a space as %20.
If two shots share a name, the one in the frontmost layer wins. An unknown name returns an
error that lists the valid ones. With Auto Live on, every preview address goes live instead.
Without ?with=1 a shot is pressed alone, as a click on its tile’s picture; with it, as a click
on its tab (see Brings Along). A shot that
brings nothing along is pressed alone either way.
The show and its script
Section titled “The show and its script”| Method | Address | Does |
|---|---|---|
| GET | /state |
The layers, shots, live and preview, sources, recording and more, as JSON; each shot with bringsAlong (the IDs of the shots it brings along, left out when none) and autoOut (its Auto Out in seconds, left out when off) |
| GET | /program.png, /preview.png |
The current frames |
| GET | /multiview.png |
The multiview, while its window is open |
| GET | /rundown |
The script’s sections and parts, the show clock and the slides |
| POST | /rundown/deck/forward, /rundown/deck/back |
Turns the slides one click on or back |
| POST | /show/start, /show/pause, /show/reset |
Start Show and the show clock |
Outputs
Section titled “Outputs”| Method | Address | Does |
|---|---|---|
| POST | /record/start, /record/stop |
The program recording |
| POST | /stream/start, /stream/stop, /stream/toggle |
Every checked stream target |
| POST | /stream/{name}/start, /stop, /toggle |
One target, by name |
| POST | /captions/on, /off, /toggle |
Live captions |
| POST | /ftb, /ftb/down, /ftb/up |
Fade to Black |
| POST | /transition/mode/auto, /transition/mode/cut |
What Take does |
| POST | /transition/duration?s=0.8 |
The transition’s duration |
The prompter
Section titled “The prompter”GET /prompter is the prompter page. POST /prompter/go/{number} moves it to a part,
/prompter/run/toggle starts or pauses auto-scroll, and /prompter/speed?wpm=160 sets the
pace.
Read more
Section titled “Read more”Describes Live Producer 0.330 · 10 November 2026