For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardAPI PricingGet an API key
  • Guides
    • Introduction
    • Getting started
    • Use with AI agents
    • Examples
    • Authentication
    • Handling async tasks
    • File uploads
    • File hydration
    • Embedding videos
    • Errors
    • Rate limits
    • Libraries & SDKs
  • REST API Reference
    • Overview
    • Workflows
        • POSTGenerate image
        • POSTGenerate video clip
        • POSTText to speech
        • POSTGenerate sound effect
        • POSTGenerate avatar clip
        • POSTVectorize image
        • POSTRemove background from an image
        • POSTRemove background from a video
        • POSTUpscale an image
        • POSTUpscale a video
        • POSTCancel tool execution
        • GETGet tool execution info
        • GETList files
        • POSTSearch files
        • GETGet file
        • POSTCreate file upload
        • POSTHydrate file
        • POSTArchive file
        • POSTEnable public preview
        • POSTDisable public preview
        • GETList avatar presenters
        • GETList TTS voices
        • GETList webhooks
        • POSTCreate webhook
        • DELDelete webhook
  • Webhook events
    • Overview
    • Changelog
LogoLogo
DashboardAPI PricingGet an API key
On this page
  • Delivery format
  • Signature verification
  • Registering for events
  • Retry behavior
  • Learn more
Webhook events

Webhook events

Event payloads delivered to your registered webhook endpoints.
Was this page helpful?
Previous

tool_execution.succeeded

Next
Built with

VideoGen sends events to your registered webhook endpoints when asynchronous work completes. There are two categories of events:

CategoryEventsWhen they fire
Tool executiontool_execution.succeeded, tool_execution.failed, tool_execution.cancelledA tool run reaches a terminal state.
File uploadfile.upload.completed, file.upload.failed, file.playback_ready, file.download_ready, file.analysis_completed, file.analysis_failedA file uploaded via the API progresses through processing stages.

Delivery format

All events are delivered as POST requests with a JSON body. Every payload includes:

FieldTypeDescription
eventstringThe event name (e.g. tool_execution.succeeded).
occurredAtnumberUnix timestamp (seconds) when the event occurred.

Signature verification

Deliveries follow the Standard Webhooks spec. Each request includes three headers:

HeaderPurpose
webhook-idUnique message id for deduplication.
webhook-timestampUnix timestamp of the attempt.
webhook-signatureHMAC-SHA256 signature for verification.

Both SDKs ship a verifyWebhookSignature helper:

TypeScript
Python
1import { verifyWebhookSignature } from "@videogen/sdk";
2
3const payload = verifyWebhookSignature(
4 rawBody,
5 request.headers,
6 signingSecret,
7);

The helpers throw if the signature is invalid or the timestamp is too old.

Registering for events

Use the Create webhook endpoint to register a URL and select which events to receive. The signing secret is only returned once on creation — store it securely.

$curl -X POST https://api.videogen.io/v1/webhooks/endpoints \
> -H "Authorization: Bearer $VIDEOGEN_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "url": "https://your-server.com/webhooks/videogen",
> "events": ["tool_execution.succeeded", "tool_execution.failed"]
> }'

Retry behavior

If your endpoint returns a non-2xx status code or doesn’t respond within 15 seconds, VideoGen will retry with exponential backoff. Use the webhook-id header to deduplicate retries.

Learn more

  • Webhooks guide — step-by-step setup, signature verification examples, and file upload webhook details
  • Webhook management API — create, list, and delete webhook endpoints programmatically