Skip to main content
HeyGen sends webhook events as POST requests to your registered endpoints. This page covers the available event types and how to browse delivered events.

Authentication

Event Types

Fetch the full list of supported event types and their descriptions:

Available Event Types

Event Data Payloads

The event_data shape varies by event type. Below are the fields for avatar_video.success:

avatar_video.success

The video download URL (url) is a pre-signed URL with a limited expiry window. Fetch and store the file promptly, or re-fetch the URL via GET /v3/videos/{video_id} if it expires.

Other event types

For other event types, treat the webhook as a completion signal and fetch the authoritative resource state from the API — the detail endpoints return the full, current set of fields for each resource: Fetching the video resource also lets you pick exactly the artifact you need — each completed video exposes video_url (the rendered video, with captions burned in only when you requested a caption style), captioned_video_url (the captioned render), subtitle_url (the SRT sidecar file), thumbnail_url, and gif_url. If a webhook hands you a URL with captions you didn’t want, download video_url from GET /v3/videos/{video_id} instead.

List Delivered Events

Browse events that have been delivered to your endpoints. Filter by event type or entity ID.

Query Parameters

Response Fields

Each event in the data array contains:

Subscribing to Events

When creating a webhook endpoint, pass the event types you want to receive in the events array:
Omitting the events field (or setting it to null) subscribes the endpoint to all event types. To change subscriptions later, use PATCH /v3/webhooks/endpoints/{endpoint_id} with an updated events array.

Handling Events in Your Application

When an event is delivered, HeyGen sends a POST request to your endpoint URL with the event payload as JSON. A typical handler:
  1. Verify the signature using your endpoint’s signing secret.
  2. Parse event_type to determine what happened.
  3. Process event_data — for avatar_video.success events this includes video_id, url (the video download URL), gif_download_url, video_page_url, video_share_page_url, folder_id, and callback_id; for failures it includes error details.
  4. Return a 2xx response promptly to acknowledge receipt.