Skip to main content

Webhook Events

Subscribe to these events to receive notifications when operations complete.

Event types

EventTrigger
video.analyzedVideo analysis completed successfully
video.translatedVideo translation completed successfully
subtitles.generatedSubtitles have been generated
voiceover.generatedVoiceover generation completed
article.generatedHelp article generated
export.completedVideo export completed successfully
export.failedVideo export failed
tool.completedA tool job (e.g. voiceover) completed
tool.failedA tool job failed
process.completedAll steps in a /process pipeline finished
process.failedA step in a /process pipeline failed

Event payload

Every webhook delivery has this structure:

{
"event": "video.analyzed",
"data": {
"videoId": "vid_1708300000000_abc1234",
"jobId": "analysis_1708300000000_abc1234"
},
"webhookId": "wh_abc123"
}
FieldTypeDescription
eventstringThe event type
dataobjectEvent-specific payload (see below)
webhookIdstringThe webhook that triggered this delivery

Event-specific payloads

video.analyzed

{
"videoId": "vid_...",
"jobId": "analysis_..."
}

video.translated

{
"videoId": "vid_...",
"jobId": "translation_...",
"language": "es"
}

subtitles.generated

{
"videoId": "vid_...",
"jobId": "analysis_..."
}

voiceover.generated

{
"videoId": "vid_...",
"jobId": "tool_..."
}

article.generated

{
"videoId": "vid_...",
"title": "How to Configure Settings"
}

export.completed

{
"videoId": "vid_...",
"jobId": "export_...",
"exportedVideoUrl": "https://...",
"exportedSrtUrl": "https://...",
"exportedVoiceoverUrl": "https://..."
}

exportedVoiceoverUrl is the combined voiceover audio track as a single MP3, present only when voiceover was generated for the video.

export.failed

{
"videoId": "vid_...",
"jobId": "export_...",
"error": "Encoding failed"
}

tool.completed

Fired when a tool execution job completes successfully.

{
"jobId": "tool_...",
"toolType": "video-trimmer",
"result": {
"url": "https://...",
"mimeType": "video/mp4"
}
}
FieldTypeDescription
jobIdstringThe job ID
toolTypestringTool type identifier (e.g. video-trimmer, subtitle-translator)
resultobjectTool-specific output data

tool.failed

Fired when a tool execution job fails.

{
"jobId": "tool_...",
"toolType": "video-trimmer",
"error": "Processing failed: invalid video format"
}
FieldTypeDescription
jobIdstringThe job ID
toolTypestringTool type identifier
errorstringError description

process.completed

Fired when all steps in a one-shot /process pipeline finish successfully.

{
"jobId": "process_...",
"videoId": "vid_...",
"completedSteps": ["analysis", "voiceover", "helpArticle", "export", "translation"],
"exportedVideoUrl": "https://...",
"exportedSrtUrl": "https://...",
"exportedVoiceoverUrl": "https://..."
}
FieldTypeDescription
jobIdstringThe process job ID
videoIdstringThe created video ID
completedStepsstring[]List of completed pipeline steps
exportedVideoUrlstringURL of the exported video (if export was requested)
exportedSrtUrlstringURL of the SRT file (if export was requested)
exportedVoiceoverUrlstringURL of the combined voiceover MP3 (if voiceover was generated)

process.failed

Fired when any step in the pipeline fails, halting the remaining steps.

{
"jobId": "process_...",
"videoId": "vid_...",
"failedStep": "export"
}
FieldTypeDescription
jobIdstringThe process job ID
videoIdstringThe created video ID
failedStepstringThe step that failed