Skip to content
ROSMASTER

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.

METHODPATHWHAT IT DOES
GET/showsShows you can reach with this key
GET/shows/{showId}/timerRead the live timer
POST/shows/{showId}/timer/startStart a specific cue
POST/shows/{showId}/timer/start-nextStart the next cue
POST/shows/{showId}/timer/pauseHOLD
POST/shows/{showId}/timer/resumeResume from HOLD
POST/shows/{showId}/timer/stopStop, back to idle
POST/shows/{showId}/timer/adjustAdd 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 free

API keys come with Pro.