[go: up one dir, main page]

Download Schemas

Schema for responses from media download urls

Download URLs are populated once the relevant media object has transitioned to done status. For accessing media data during recording, you can use Real-Time Endpoints

Schema Timestamps

There are two types of timestamps you'll see in the schemas below:

  • relative - represents the time in seconds from the start of the recording (calculated from the latest in_call_recording bot status change event). For example, "relative": 9.73 means approximately 9.73 seconds after the recording began
  • absolute - represents the exact date and time this event occurred in ISO 8601 format. For example, "absolute": "2025-07-17T00:00:09.730066Z" shows the precise moment when something occurred

[JSON] Participant Download URL

[
  {
    "id": number, // Id of the participant in the meeting. This id is not unique across meetings.
    "name": string | null, // Display name of the participant.
    "is_host": boolean | null, // Whether the participant is the host of the meeting.
    "platform": string | null, // Meeting platform constant
    "extra_data": json | null, // Extra data about the participant from the meeting platform.
    "email": string | null,  // Email, if participant identification is turned on
  }
]

[JSON] Participant Event Download URL

[
  {
    "id": string, // Id of the participant event.
    "action": string, // The action that the participant took. values: "join" | "leave" | "update" | "speech_on" | "speech_off" | "webcam_on" | "webcam_off" | "screenshare_on" | "screenshare_off" | "chat_message"
    "participant": {
      "id": integer, // Id of the participant in the meeting. This id is not unique across meetings.
      "name": string | null, // Display name of the participant.
      "is_host": boolean | null, // Whether the participant is the host of the meeting.
      "platform": string | null, // Meeting platform constant
      "extra_data": json | null, // Extra data about the participant from the meeting platform.
      "email": string | null, // Email, if participant identification is turned on
    },
    "timestamp": {
      "absolute": string, // ISO 8601
      "relative": number, // seconds
    },
    "data": 
    	{
        "text": string, // The text of chat message
        "to": string, // The recipient of the chat message. values: "everyone" | "only_bot"
      } // populated if the action is a `chat_message`
    	| null
  }
]

[JSON] Speaker Timeline Download URL

[
  {
    "participant": {
      "id": integer, // Id of the participant in the meeting. This id is not unique across meetings.
      "name": string | null, // Display name of the participant.
      "is_host": boolean | null, // Whether the participant is the host of the meeting.
      "platform": string | null, // Meeting platform constant
      "extra_data": json | null, // Extra data about the participant from the meeting platform.
      "email": string | null, // Email, if participant identification is turned on
    },
    "start_timestamp": {
      "absolute": string, // ISO 8601
      "relative": number, // seconds
    },
    "end_timestamp": {
      "absolute": string, // ISO 8601
      "relative": number, // seconds
    }
  }
]

[JSON] Transcript Download URL

[
  {
    "participant": {
      "id": number, // Id of the participant in the meeting. This id is not unique across meetings.
      "name": string | null, // Display name of the participant.
      "is_host": boolean | null, // Whether the participant is the host of the meeting.
      "platform": string | null, // Meeting platform constant
      "extra_data": json | null, // Extra data about the participant from the meeting platform.
      "email": string | null, // Email, if participant identification is turned on
    },
    "words": [
      {
        "text": string, // The text of the word.
        "start_timestamp": {
          "absolute": string, // ISO 8601, will return null for async transcription
          "relative": number // seconds
        },
        "end_timestamp": {
          "absolute": string, // ISO 8601, will return null for async transcription
          "relative": number // seconds
        }
      }
    ]
  }
]

[JSON] Participant Separate Video Parts

[
  {
    "id": string, // Id of the separate part
    "participant": {
      "id": integer, // Id of the participant in the meeting. This id is not unique across meetings.
      "name": string | null, // Display name of the participant.
      "is_host": boolean | null, // Whether the participant is the host of the meeting.
      "platform": string | null, // Meeting platform constant
      "extra_data": json | null, // Extra data about the participant from the meeting platform.
      "email": string | null, // Email, if participant identification is turned on
    },
    "start_timestamp": {
      "absolute": string, // ISO 8601
      "relative": number, // seconds
    },
    "duration": number, // seconds
    "type": "webcam" | "screenshare", // the type of video part
    "download_url": string, // URL to download the media file from
  }
]

[JSON] Participant Separate Audio Parts

[
  {
    "id": string, // Id of the separate part
    "participant": {
      "id": integer, // Id of the participant in the meeting. This id is not unique across meetings.
      "name": string | null, // Display name of the participant.
      "is_host": boolean | null, // Whether the participant is the host of the meeting.
      "platform": string | null, // Meeting platform constant
      "extra_data": json | null, // Extra data about the participant from the meeting platform.
      "email": string | null, // Email, if participant identification is turned on
    },
    "start_timestamp": {
      "absolute": string, // ISO 8601
      "relative": number, // seconds
    },
    "duration": number, // seconds
    "download_url": string, // URL to download the media file from
  }
]

[JSON] Transcript Provider Data Download URL

{
  "parts": [
    {
      "id": string,
      "created_at": string, // ISO 8601
      
      // context of audio which was the transcription source for this part
      "source_audio": {
        	"type": "mixed" | "separate",
          "offset": float, // seconds from recording start
        	"participant": {
            "id": integer, // Id of the participant in the meeting. This id is not unique across meetings.
            "name": string | null, // Display name of the participant.
            "is_host": boolean | null, // Whether the participant is the host of the meeting.
            "platform": string | null, // Meeting platform constant
            "extra_data": json | null, // Extra data about the participant from the meeting platform.
            "email": string | null, // Email, if participant identification is turned on
          } | null  // participant data (only available for type=separate)
      },
      
      // part type, dictates the structure of 'data' key
      "type": "webhook" | "http_response" | "websocket_message",
      "data": 
      	{ payload: object } | // type=webhook,
        { url: string, status_code: integer, body: object } | // type=http_response
        { url: string, event: string, payload: object }, // type=websocket_message
    }
  ]
}
🚧

Provider data is currently not available when using the assembly_ai_async_chunked Real-Time Transcription provider.