Skip to main content
Starting an event creates a session record on the backend tied to your visual. The returned eventId is used in all subsequent calls (join, end, usage).

Endpoint

POST /api/v1/runtime/events/start
Auth: Authorization: Bearer <accessToken> (from Authenticate)

Request body

{
  "visualId": "vis_xxxxxxxxxxxxxxxx",
  "runtimeMode": "LIVE"
}
FieldTypeRequiredDescription
visualIdstringThe ID of your visual (visible in the dashboard under your visual’s details)
runtimeModestring"LIVE" for a real show, "DEMO" for testing. Defaults to "LIVE"
If your Runtime Client credential is already scoped to a specific visual (set at creation time), the visualId in the request body can be omitted — it will be inferred from the token.

Response

{
  "eventId": "evt_xxxxxxxxxxxxxxxx",
  "status": "ACTIVE",
  "runtimeMode": "LIVE",
  "visualId": "vis_xxxxxxxxxxxxxxxx",
  "concurrencyLimit": 5,
  "activeEventsBeforeStart": 0,
  "startedAt": "2026-04-29T20:00:00Z"
}
FieldDescription
eventIdStore this — you’ll need it for join, end, and usage calls
status"ACTIVE" — the session is open
concurrencyLimitMax simultaneous active events allowed by your plan
activeEventsBeforeStartHow many events were already running when this one started

Error responses

StatusCodeMeaning
400VISUAL_ID_REQUIREDvisualId missing and not resolvable from token
401INVALID_RUNTIME_CLIENTToken invalid or expired
403RUNTIME_CLIENT_NOT_AUTHORIZEDToken not authorized for this visual
403CONCURRENCY_LIMIT_REACHEDToo many active events for your plan

Blueprint flow

Store accessToken (from Authenticate)

HTTP POST /runtime/events/start  { visualId, runtimeMode: "LIVE" }

Parse response → store eventId

Show is running — use eventId for join/end/usage