Skip to main content
POST
/
v1
/
recordings
cURL
curl --request POST \
  --url https://api.claap.io/v1/recordings \
  --header 'Content-Type: application/json' \
  --header 'X-Claap-Key: <api-key>' \
  --data '
{
  "authorEmail": "<string>",
  "channelId": "<string>",
  "deal": {
    "id": "<string>",
    "type": "attio"
  },
  "downloadUrl": "<string>",
  "meeting": {
    "startedAt": "<string>",
    "endedAt": "<string>",
    "participants": [
      {
        "name": "<string>",
        "email": "<string>",
        "isOrganizer": true
      }
    ]
  },
  "title": "<string>",
  "transcript": {
    "type": "<string>"
  }
}
'
{
  "result": {
    "recording": {
      "createdAt": "<string>",
      "id": "<string>",
      "recorder": {
        "attended": true,
        "email": "<string>",
        "id": "<string>",
        "name": "<string>"
      },
      "state": "Empty",
      "url": "<string>",
      "workspace": {
        "id": "<string>",
        "name": "<string>"
      },
      "channel": {
        "id": "<string>",
        "name": "<string>"
      },
      "title": "<string>",
      "upload": {
        "url": "<string>",
        "metaUrl": "<string>"
      }
    }
  }
}
Create a recording in an empty state. The video or audio payload can be supplied either by an HTTP PUT request on the upload.url or by pointing the input downloadUrl to a location publicly accessible with an HTTP GET request, returning less than 2 GiB of data within 5 minutes. The recording is created on behalf of specified author and related quotas apply. At most 50 recordings can be created in a 30 days window period. Once the payload is received, state will change to Uploaded then either to Ready or Failed. Payload formats are the same available to manual uploads:
  • aac
  • avi
  • mp3
  • mp4
  • wav
  • webm
  • wmv
To provide a transcript in addition to the video, set the transcript attribute to { "type": "upload" }. The response will then define the upload.metaUrl attribute. Use it to send the JSON payload with an HTTP PUT request, in the following format:
{
    transcript: {
        // The 2-letters language code of the transcript, if any
        langIso2?: string
        segments: {
            // Segment start timecode in seconds
            start: number
            // Segment end timecode in seconds
            end: number
            // Segment speaker identifier, can reference an item in the speakers
            // collection
            speakerId: string
            // Segment transcript
            text: string 
        }[]
        speakers?: {
            email?: string
            // Set isRecorder to true if the speaker is the meeting recorder
            isRecorder?: boolean
            name: string
            speakerId: string
        }[]
    }
}
For instance:
{
    "transcript": {
        "langIso2": "fr",
        "segments": [
            { "speakerId": "1", "start": 0.5, "end": 1.5, "text": "Bonjour !" },
            { "speakerId": "2", "start": 2.1, "end": 2.9, "text": "Hello" }
        ],
        "speakers": [
            { "email": "[email protected]", "name": "Éric", "speakerId": "1" },
            { "email": "[email protected]", "name": "Marc", "speakerId": "2" }
        ]
    }
}
NOTE: if the transcript attribute was set, the recording creation will only proceed once both the video and the transcript payloads have been sent.

Authorizations

X-Claap-Key
string
header
required

Body

application/json
authorEmail
string
required

Recording author email address. It must belong to a workspace user with enough permissions to create the recording.

channelId
string

Identifier of a folder (aka channel) where the recording should be created.

deal
object

A reference to a CRM deal entity to link to the recording. It requires meeting information to be supplied and the Claap workspace to be connected to the same CRM.

downloadUrl
string

URL where the recording video content can be retrieved using an HTTP GET request. Do not use response upload URL if this parameter is supplied.

meeting
object
title
string

Recording title.

transcript
object

Setting this property signals your intent to supply transcript information in addition to the video payload. The response will then define a metaUrl upload attribute to be used to post the transcript payload. The recording creation will not proceed until both payloads are sent.

Response

200 - application/json

Recording was successfully created

result
object
required