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
| Page | Use it to |
|---|---|
| Rooms | Read and change a room, and create share links |
| Timers | Add, change, delete and reorder timers |
| Transport | Start, pause and move between timers |
| Messages | Write, show and hide messages |
| Labels | Manage a room's labels |
| Controls | Blackout, on air, flash and chime |
| Logs | Read the activity log and undo changes |
| Questions | Open and close the Submit form |
| Import & Export | Download files and load timers |
| Files | Upload a logo image |