API and hardware
Drive the transport from your own gear.
Every transport action in the app is an HTTP call you can make yourself: arm a cue, GO, HOLD, resume, stop, jog the clock, and read the live remaining time. Same server, same authority, same rules.
The endpoints
Base URL https://app.rosmaster.io/api/v1. JSON in, JSON out. showId is the ten-character id from the app URL, not an internal one.
| METHOD | PATH | WHAT IT DOES |
|---|---|---|
| GET | /shows | Shows you can reach with this key |
| GET | /shows/{showId}/timer | Read the live timer |
| POST | /shows/{showId}/timer/start | Start a specific cue |
| POST | /shows/{showId}/timer/start-next | Start the next cue |
| POST | /shows/{showId}/timer/pause | HOLD |
| POST | /shows/{showId}/timer/resume | Resume from HOLD |
| POST | /shows/{showId}/timer/stop | Stop, back to idle |
| POST | /shows/{showId}/timer/adjust | Add or subtract time |
Keys and access
- Authorize with
Authorization: Bearer rmk_…. - Create and revoke keys on your account page. Creating one needs Pro; a revoked key stops working immediately.
- A key acts as you. Reading the timer needs viewer rights on the show; every control action needs manager or owner.
- Keys are stored only as a hash — the full value is shown once, so treat it like a password.
Counting time correctly
Every timer response carries serverTime alongside the state, so your client can measure its own offset and count down against the server rather than its own clock. That is the same correction the app’s own screens run, and it is why the booth and a Stream Deck agree.
Responses to control actions return the fresh timer object too, so you never need a follow-up read.
Stream Deck
The plugin puts the transport on physical keys: start the next cue, pause and resume, stop, and jog ±30 seconds — plus a timer key that polls the live countdown and renders it in the show’s own yellow/red cue colors. Authorize the plugin from your browser and it holds its own credential; there is no key to paste. Pick which show each key drives in the property inspector.
STATUS
v1. The contract can still change while the first integrations settle — worth knowing before you build something load-bearing on it. Requests are CORS-open on /api/v1/*: auth is a header, not a cookie.
Build the show first. Wire it up after.
Start freeAPI keys come with Pro.