Webhook events supported by Synthesia
All webhook events follow the same pattern. At the top level, there will be two keys: one that describes the event that occurred, and one that contains the event-specific payload.
{
"type": "video.completed",
"data": {
...
}
}
Object Keys | Type | Description |
---|---|---|
type | string | The event type. Available event types: video.completed ,video.failed . |
data | JSON | The event payload. |
video.completed
The video.completed event is sent when a video finishes processing.
Note: This event is not sent when a template preview is completed.
Object Keys | Type | Description |
---|---|---|
callbackId | string | Arbitrary metadata set for the video when creating the video. |
captions | JSON | A JSON object with time-limited download URLs for the video captions in |
createdAt | integer | UNIX timestamp representing the time video was created. |
description | string | Description of the video (used on the video's share page). |
download | string | A time-limited URL which may be used to download the video. This field is only available if the video status is |
duration | string | Duration of the video. This field is only available if the video status is |
id | string | Unique identifier for the video. |
lastUpdatedAt | integer | UNIX timestamp representing the time video was last updated. |
status | string | Describes the processing status of the video.
|
title | string | Title of the video (used on the video's share page). |
thumbnail | JSON | A JSON object with time-limited download URLs for static ( This field is only available if the video status is |
visibility | string | Describes the visibility settings of the video.
|
{
"type": "video.completed",
"data": {
...
}
}
{
"data": {
"callbackId": "john@example.com",
"captions": {
"srt": "https://...",
"vtt": "https://...",
},
"createdAt": 1602512112,
"description": "This is my first synthetic video, made with the Synthesia API!",
"download": "https://...",
"duration": "0:00:59.000000",
"id": "1234-...",
"lastUpdatedAt": 1602512112,
"status": "complete",
"thumbnail": {
"image": "https://...",
"gif": "https://...",
},
"title": "Hello, World!",
"visibility": "private"
},
"type": "video.completed"
}
video.failed
The video.failed event is sent when a video fails to process.
Object Keys | Type | Description |
---|---|---|
createdAt | integer | UNIX timestamp representing the time video was created. |
description | string | Description of the video (used on the video's share page). |
id | string | Unique identifier for the video. |
message | string | Describes why the video failed to process. |
status | string | Describes the processing status of the video (error ). |
title | string | Title of the video (used on the video's share page). |
{
"type": "video.failed",
"data": {
...
}
}
{
"data": {
"id": "1234-...",
"title": "Hello, World!",
"description": "This is my first synthetic video, made with the Synthesia API!",
"status": "error",
"createdAt": 1602512112,
"message": "Video failed: User does not have access to Avatar 1234-abcd"
},
"type": "video.failed"
}