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 latestin_call_recording
bot status change event). For example, "relative": 9.73 means approximately 9.73 seconds after the recording beganabsolute
- 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.
Updated 1 day ago