API

Use the API to control rooms from your own scripts and tools: start timers, show messages, change the schedule. Changes reach every open screen at once, just as if they were made in the Controller.

API keys need a Pro or Premium plan.

Getting started

Create an API key, as described in Authentication, and find your room's id in its address: /o/ROOM_ID/controller. Then make your first request:

curl -X POST https://app.kloksi.com/api/v1/rooms/ROOM_ID/start_timer \
  -H "Authorization: Bearer YOUR_API_KEY"

That starts the active timer of the cued stage. You'll see it start on your Controller.

Requests

All addresses start with:

https://app.kloksi.com/api/v1

Send request bodies as JSON, with a Content-Type: application/json header. The exception is uploading an image. Field names use snake_case, and timestamps are in ISO 8601, such as 2026-11-05T09:30:00.000Z.

Stages are named stage-1 and stage-2. Where stage_id is optional, leaving it out means Stage #1.

Responses

A successful response is JSON, with the result in data and a short description in message:

{
  "ok": true,
  "message": "Timer loaded",
  "data": {}
}

Requests with nothing to return answer with 204 No Content. For failures, see Errors.

What the API covers

PageUse it to
RoomsRead and change a room, and create share links
TimersAdd, change, delete and reorder timers
TransportStart, pause and move between timers
MessagesWrite, show and hide messages
LabelsManage a room's labels
ControlsBlackout, on air, flash and chime
LogsRead the activity log and undo changes
QuestionsOpen and close the Submit form
Import & ExportDownload files and load timers
FilesUpload a logo image