Skip to content

API Reference

Base URL: https://api.chalk.q9labs.ai/api/v1

Authentication

All requests require an API key in the X-API-Key header:

X-API-Key: chalk_abc123...

See Authentication for token-based auth.

Endpoints

Tenants

MethodEndpointDescription
POST/tenantsCreate tenant
GET/tenants/:idGet tenant
PATCH/tenants/:idUpdate tenant
DELETE/tenants/:idDelete tenant
POST/tenants/:id/rotate-keyRotate API key
PATCH/tenants/:id/configUpdate config

Authentication

MethodEndpointDescription
POST/auth/tokenExchange API key for JWT
POST/auth/refreshRefresh JWT tokens

Rooms

MethodEndpointDescription
POST/roomsCreate room
GET/roomsList rooms
GET/rooms/:idGet room
PATCH/rooms/:idUpdate room
DELETE/rooms/:idDelete room
POST/rooms/:id/endEnd room

Participants

MethodEndpointDescription
POST/rooms/:id/participantsAdd participant
GET/rooms/:id/participantsList participants
DELETE/rooms/:id/participants/:pidRemove participant
POST/rooms/:id/participants/:pid/tokenRefresh token
POST/rooms/:id/participants/bulkBulk add participants

Recordings

MethodEndpointDescription
POST/rooms/:id/recordings/startStart recording
POST/rooms/:id/recordings/stopStop recording
POST/rooms/:id/recordings/syncSync from Cloudflare
GET/recordingsList recordings
GET/recordings/:idGet recording
GET/recordings/:id/downloadGet download URL
POST/recordings/:id/archiveArchive recording
POST/recordings/:id/recoverRecover recording
DELETE/recordings/:idDelete recording

Transcription

MethodEndpointDescription
POST/recordings/:id/transcribeQueue transcription
GET/recordings/:id/transcriptGet transcript
GET/transcription/:idGet transcript by ID
GET/transcription/providersList providers

WebSocket

MethodEndpointDescription
GET/wsWebSocket connection

Response Format

Successful responses return the resource directly:

{
"id": "uuid",
"name": "Room Name",
"status": "active"
}

Errors

{
"error": "error message"
}
HTTP StatusDescription
400Bad request
401Unauthorized
403Forbidden
404Not found
409Conflict
500Internal error