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 vtt and srt formats. |
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 complete . |
duration | string | Duration of the video. This field is only available if the video status is complete . |
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. - in_progress : the video is being processed.- complete : the video was processed successfully.- error : an error occurred during processing.- rejected : the video was rejected during moderation due to inappropriate content. |
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 (.jpg ) and animated (.gif ) video thumbnails.This field is only available if the video status is complete .If an animated GIF thumbnail is not present, only the URL for the static thumbnail will be returned. |
visibility | string | Describes the visibility settings of the video. - If public , the video's share page is active.- If private , the video's share page is not active; visitors will receive a 404 Not Found response. |
{
"type": "video.completed",
"data": {
...
}
}
{
"data": {
"callbackId": "[email protected]",
"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"
}