Speak
Rooms
Create Room
https://api.kinescope.io/v1/speak/roomsCreates a new Speak room. You can pre-create participants or add them later.
| Field | Type | Description |
|---|---|---|
| name | string | Room name |
| owner_id | uuid | User ID |
| type | string | Room type - instant_meeting, permanent_meeting, scheduled_meeting |
| transcription_autostart | boolean | Enable automatic call transcription. Optional, defaults to false. When it is enabled, transcription starts automatically as soon as the first participant joins the call |
| autorecording | boolean | Enable automatic call recording. Optional, defaults to false. When it is enabled, recording starts automatically as soon as the room owner joins the room and any stream (audio or video) appears |
| waiting_room | boolean | Enable the waiting room. Optional, defaults to false. When it is enabled, participants other than the room owner and participants with the admin role wait until the owner or an admin lets them in |
| wait_for_host | boolean | Make participants wait for the host. Optional, defaults to false. When it is enabled, participants other than the room owner and participants with the admin role wait until the owner or an admin joins the call, then they are let in automatically. If waiting_room is enabled too, participants still have to be let in manually after the host joins |
{
"name": "New Room",
"owner_id": "<UUID>",
"type": "scheduled_meeting",
"transcript_enabled": false,
"autorecording": false
}{
"data": {
"id": "<UUID>",
"workspace_id": "<UUID>",
"owner_id": "<UUID>",
"type": "scheduled_meeting",
"transcription_autostart": false,
"waiting_room": false,
"wait_for_host": false,
"participants": [],
"code": "zqu-kqyh-ymz",
"name": "New Room",
"link": "https://speak.kinescope.io/zqu-kqyh-ymz",
"status": "scheduled",
"created_at": "2025-10-22T02:32:32.840208Z",
"updated_at": null
}
}List Rooms
https://api.kinescope.io/v1/speak/roomsReturns all Speak rooms in the workspace.
{
"meta": {
"pagination": {
"page": 1,
"per_page": 10,
"total": 0
},
"order": {
"created_at": "desc",
"name": "asc"
}
},
"data": []
}Get Room
https://api.kinescope.io/v1/speak/rooms/:room_idRetrieves a single Speak room by ID.
{
"data": {
"id": "<UUID>",
"workspace_id": "<UUID>",
"owner_id": "<UUID>",
"type": "scheduled_meeting",
"transcription_autostart": false,
"waiting_room": false,
"wait_for_host": false,
"participants": [
{
"id": "<UUID>",
"user_id": "<UUID>",
"room_id": "<UUID>",
"name": "Name Updated",
"role": "admin",
"created_at": "2025-10-22T02:41:14.945244Z",
"updated_at": "2025-10-22T02:46:57.84099Z"
}
],
"code": "zqu-kqyh-ymz",
"name": "Room Update",
"link": "https://speak.kinescope.io/zqu-kqyh-ymz",
"status": "cancelled",
"created_at": "2025-10-22T02:32:32.840208Z",
"updated_at": "2025-10-22T03:33:22.877221Z"
}
}{
"error": {
"code": 400404,
"message": "not found"
}
}Update Room
https://api.kinescope.io/v1/speak/rooms/:room_idUpdates properties of a Speak room.
| Field | Type | Description |
|---|---|---|
| name | string | Room name |
| autorecording | boolean | Enable automatic call recording. Optional, defaults to false. When it is enabled, recording starts automatically as soon as the room owner joins the room and any stream (audio or video) appears |
| transcription_autostart | boolean | Enable automatic call transcription. Optional, defaults to false. When it is enabled, transcription starts automatically as soon as the first participant joins the call |
{
"data": {
"id": "<UUID>",
"workspace_id": "<UUID>",
"owner_id": "<UUID>",
"type": "scheduled_meeting",
"transcription_autostart": false,
"waiting_room": false,
"wait_for_host": false,
"participants": [],
"code": "zqu-kqyh-ymz",
"name": "Room Update",
"link": "https://speak.kinescope.io/zqu-kqyh-ymz",
"status": "scheduled",
"created_at": "2025-10-22T02:32:32.840208Z",
"updated_at": "2025-10-22T02:34:28.336038Z"
}
}Delete Room
https://api.kinescope.io/v1/speak/rooms/:room_idPermanently deletes the Speak room. All participants lose access.
{
"data": {
"success": true
}
}Participants
Create Participant
https://api.kinescope.io/v1/speak/rooms/:room_id/participantsAdds a participant to a Speak room, optionally with a specific role.
| Field | Type | Description |
|---|---|---|
| user_id | uuid | User ID |
| name | string | Participant name |
| role | string | admin, manager |
{
"user_id": "<UUID>",
"name": "New Admin",
"role": "admin"
}{
"data": {
"id": "<UUID>",
"user_id": "<UUID>",
"room_id": "<UUID>",
"name": "New Admin",
"role": "admin",
"created_at": "2025-10-22T02:41:14.945244Z",
"updated_at": null
}
}List Participants
https://api.kinescope.io/v1/speak/rooms/:room_id/participantsReturns the participants of a Speak room.
{
"meta": {
"pagination": {
"page": 1,
"per_page": 10,
"total": 0
},
"order": {
"created_at": "desc",
"name": "asc"
}
},
"data": []
}Get Participant
https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_idRetrieves a participant by ID.
{
"data": {
"id": "<UUID>",
"user_id": "<UUID>",
"room_id": "<UUID>",
"name": "Name Updated",
"role": "admin",
"created_at": "2025-10-22T02:41:14.945244Z",
"updated_at": "2025-10-22T02:46:57.84099Z"
}
}Update Participant
https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_idUpdates a participant — typically to change their role or display name.
| Field | Type | Description |
|---|---|---|
| name | string | Participant name |
{
"data": {
"id": "<UUID>",
"user_id": "<UUID>",
"room_id": "<UUID>",
"name": "Name Updated",
"role": "admin",
"created_at": "2025-10-22T02:41:14.945244Z",
"updated_at": "2025-10-22T02:46:57.84099Z"
}
}Delete Participant
https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_idRemoves a participant from the Speak room.
{
"data": {
"success": true
}
}Calls
List Calls
https://api.kinescope.io/v1/speak/rooms/:room_id/callsReturns a paginated list of calls for a Speak room.
{
"meta": {
"pagination": {
"page": 1,
"per_page": 10,
"total": 0
},
"order": {
"created_at": "desc"
}
},
"data": []
}Get Call
https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_idRetrieves a single call by ID.
{
"data": {
"id": "<UUID>",
"room_id": "<UUID>",
"transcript_id": "<UUID>",
"created_at": "2025-10-22T02:32:32.840208Z",
"updated_at": "2025-10-22T03:33:22.877221Z"
}
}{
"error": {
"code": 400404,
"message": "not found"
}
}Transcript
Get Transcript
https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_id/transcriptReturns metadata for the transcript of a call.
{
"data": {
"call_id": "<UUID>",
"room_id": "<UUID>",
"status": "done",
"created_at": "2025-10-22T02:32:32.840208Z",
"updated_at": "2025-10-22T03:33:22.877221Z"
}
}{
"error": {
"code": 400404,
"message": "not found"
}
}Download Transcript
https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_id/transcript/content.txtDownloads the transcript as a plain-text file. Returns Content-Type: text/plain with a Content-Disposition: attachment header. Each line has the format [MM:SS.T-MM:SS.T] Speaker: Text. Available only when transcript status is done.
[00:00.0-00:05.3] Alice: Hello everyone, let's get started.
[00:05.3-00:12.1] Bob: Sounds good, I have a few updates to share.{
"error": {
"code": 422100,
"message": "transcript not ready"
}
}