Pular navegação

API do Speak

Salas, participantes, chamadas e transcrições.

Speak

Rooms

Criar sala

POST https://api.kinescope.io/v1/speak/rooms

Cria uma sala do Speak. Você pode já criar os participantes ou adicioná-los depois.

CampoTipoDescrição
namestringNome da sala
owner_iduuidID do usuário
typestringTipo de sala — instant_meeting, permanent_meeting, scheduled_meeting
transcription_autostartbooleanAtiva a transcrição automática das chamadas. Opcional, o padrão é false. Quando está ativado, a transcrição começa automaticamente assim que o primeiro participante entra na chamada
autorecordingbooleanAtiva a gravação automática das chamadas. Opcional, o padrão é false. Quando está ativado, a gravação começa automaticamente assim que o proprietário entra na sala e qualquer fluxo (áudio ou vídeo) aparece
waiting_roombooleanAtiva a sala de espera. Opcional, o padrão é false. Quando está ativado, os participantes, exceto o proprietário da sala e os participantes com o papel admin, esperam até que o proprietário ou um admin os deixe entrar
wait_for_hostbooleanFaz os participantes esperarem pelo anfitrião. Opcional, o padrão é false. Quando está ativado, os participantes, exceto o proprietário da sala e os participantes com o papel admin, esperam até que o proprietário ou um admin entre na chamada e então entram automaticamente. Se waiting_room também estiver ativado, depois que o anfitrião entrar ainda é preciso deixar os participantes entrarem manualmente
Request body (json)
{
  "name": "New Room",
  "owner_id": "<UUID>",
  "type": "scheduled_meeting",
  "transcript_enabled": false,
  "autorecording": false
}
Responses
{
  "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
  }
}

Listar salas

GET https://api.kinescope.io/v1/speak/rooms

Retorna todas as salas do Speak no workspace.

Responses
{
  "meta": {
    "pagination": {
      "page": 1,
      "per_page": 10,
      "total": 0
    },
    "order": {
      "created_at": "desc",
      "name": "asc"
    }
  },
  "data": []
}

Obter sala

GET https://api.kinescope.io/v1/speak/rooms/:room_id

Retorna uma sala do Speak pelo ID.

Responses
{
  "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"
  }
}

Atualizar sala

PATCH https://api.kinescope.io/v1/speak/rooms/:room_id

Atualiza as propriedades de uma sala do Speak.

CampoTipoDescrição
namestringNome da sala
autorecordingbooleanAtiva a gravação automática das chamadas. Opcional, o padrão é false. Quando está ativado, a gravação começa automaticamente assim que o proprietário entra na sala e qualquer fluxo (áudio ou vídeo) aparece
transcription_autostartbooleanAtiva a transcrição automática das chamadas. Opcional, o padrão é false. Quando está ativado, a transcrição começa automaticamente assim que o primeiro participante entra na chamada
Responses
{
  "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"
  }
}

Excluir sala

DELETE https://api.kinescope.io/v1/speak/rooms/:room_id

Exclui a sala do Speak permanentemente. Todos os participantes perdem o acesso.

Responses
{
  "data": {
    "success": true
  }
}

Participants

Criar participante
POST https://api.kinescope.io/v1/speak/rooms/:room_id/participants

Adiciona um participante a uma sala do Speak, se quiser já com um papel específico.

CampoTipoDescrição
user_iduuidID do usuário
namestringNome do participante
rolestringadmin, manager
Request body (json)
{
  "user_id": "<UUID>",
  "name": "New Admin",
  "role": "admin"
}
Responses
{
  "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
  }
}
Listar participantes
GET https://api.kinescope.io/v1/speak/rooms/:room_id/participants

Retorna os participantes de uma sala do Speak.

Responses
{
  "meta": {
    "pagination": {
      "page": 1,
      "per_page": 10,
      "total": 0
    },
    "order": {
      "created_at": "desc",
      "name": "asc"
    }
  },
  "data": []
}
Obter participante
GET https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_id

Retorna um participante pelo ID.

Responses
{
  "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"
  }
}
Atualizar participante
PATCH https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_id

Atualiza um participante — em geral, para mudar o papel ou o nome exibido.

CampoTipoDescrição
namestringNome do participante
Responses
{
  "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"
  }
}
Excluir participante
DELETE https://api.kinescope.io/v1/speak/rooms/:room_id/participants/:participant_id

Remove um participante da sala do Speak.

Responses
{
  "data": {
    "success": true
  }
}

Calls

Listar chamadas
GET https://api.kinescope.io/v1/speak/rooms/:room_id/calls

Retorna a lista paginada de chamadas de uma sala do Speak.

Responses
{
  "meta": {
    "pagination": {
      "page": 1,
      "per_page": 10,
      "total": 0
    },
    "order": {
      "created_at": "desc"
    }
  },
  "data": []
}
Obter chamada
GET https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_id

Retorna uma chamada pelo ID.

Responses
{
  "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
Obter transcrição
GET https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_id/transcript

Retorna os metadados da transcrição de uma chamada.

Responses
{
  "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"
  }
}
Baixar transcrição
GET https://api.kinescope.io/v1/speak/rooms/:room_id/calls/:call_id/transcript/content.txt

Baixa a transcrição como arquivo de texto puro. Retorna Content-Type: text/plain com o cabeçalho Content-Disposition: attachment. Cada linha tem o formato [MM:SS.T-MM:SS.T] Speaker: Text. Disponível somente quando o status da transcrição é done.

Responses
[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"
  }
}