Using HeyGen's Webhook Events
Webhook events are how the HeyGen notifies your endpoints when a variety of interactions or events happen, including when avatar video processing succeeds or fails. Webhook events are sent by HeyGen as POST requests to your webhook endpoint.
Getting Started
List Available Webhooks Events
See detailed API reference
Let's quickly get started with webhooks by listing all available webhook events in HeyGen API.
curl --request GET \
--url https://api.heygen.com/v1/webhook/webhook.list \
--header 'accept: application/json' \
--header 'x-api-key: <your-api-key>'
{
"code": 100,
"data": [
"avatar_video.success",
"avatar_video.fail",
"avatar_video_gif.success",
"avatar_video_gif.fail",
"video_translate.success",
"video_translate.fail",
"personalized_video"
],
"msg": null,
"message": null
}
Basically, HeyGen can make requests to your endpoint when 'Video succeeds' and 'Video fails'.
Payloads Your Endpoint Will Receive
Your endpoint receive following payloads:
{
"event_type": "avatar_video.success",
"event_data": {
"video_id": "<video_id>",
"url": "<video-url>",
"callback_id": "<callback_id>"
}
}
{
"event_type": "avatar_video.fail",
"event_data": {
"video_id": "<video_id>",
"msg": "<failure-message>",
"callback_id": "<callback_id>"
}
}
{
"event_type": "video_translate.success",
"event_data": {
"video_translate_id": "<video_translate_id>",
"url": "<video-url>",
"callback_id": "<callback-id>",
"output_language": "<output-language>"
}
}
{
"event_type": "video_translate.fail",
"event_data": {
"video_translate_id": "<video_translate_id>",
"message": "<failure-message>",
"callback_id": "<callback-id>",
"output_language": "<output-language>"
}
}
{
"event_type": "personalized_video",
"event_data": {
"project_id": "<project_id>",
"video_id": "<video_id>",
"video_url": "<video_url>",
"landing_page_url": "<landing_page_url>",
"gif_url": "<gif_url>",
"gif_html": "<gif_html>",
"contact_info": "<contact_info>"
}
}
avatar_video_gif
payload is the same asavatar_video
.
Register a Webhook Endpoint
See detailed API reference
Use add a webhook endpoint to register your endpoint which is used to process HeyGen events. events
are the events you want to process.
curl --location 'https://api.heygen.com/v1/webhook/endpoint.add' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>' \
--data '
{
"url": "<your-endpoint>",
"events": ["avatar_video.success"]
}'
{
"code": 100,
"data": {
"endpoint_id": "<endpoint_id>",
"username": "<username>",
"url": "<your-endpoint>",
"status": "enabled",
"events": ["avatar_video.success"],
"secret": "<secret>",
"created_at": "2023-06-28T13:34:51.293528",
"space_id": "<space_id>"
},
"msg": null,
"message": null
}
List Registered Webhook Endpoints
See detailed API reference
You can use this endpoint to list your registered endpoints.
curl -XGET https://api.heygen.com/v1/webhook/endpoint.list
-H 'Accept: application/json'
-H 'X-Api-Key: <your-api-key>'
{
"code": 100,
"data": [
{
"username": "<username>",
"status": "enabled",
"events": ["avatar_video.success"],
"created_at": "2023-10-17T19:47:31",
"url": "<your-webhook-endpoint>",
"endpoint_id": "<endpoint_id>",
"secret": "<secret>",
"space_id": "<space_id>"
}
],
"msg": null,
"message": null
}
Update a Registered Webhook Endpoint
See detailed API reference
Use update a webhook endpoint to update the information of a registered endpoint.
curl -XPATCH https://api.heygen.com/v1/webhook/endpoint.update
-H 'Content-Type: application/json'
-H 'X-Api-Key: <your-api-key>'
-d '
{
"endpoint_id": "<endpoint_id>",
"url": "<updated-url>",
"events": ["avatar_video.fail"]
}'
{
"code": 100,
"data": {
"endpoint_id": "<endpoint_id>",
"username": "<username>",
"url": "<updated-url>",
"status": "enabled",
"events": ["avatar_video.fail"],
"secret": "<secret>",
"created_at": "2023-06-28T13:34:51.293528",
"space_id": "<space_id>"
},
"msg": null,
"message": null
}
Delete a Registered Webhook Endpoint
See detailed API reference
Use delete a webhook endpoint to delete a registered endpoint.
curl --location --request DELETE 'https://api.heygen.com/v1/webhook/endpoint.delete?endpoint_id=<endpoint_id>' \
--header 'accept: application/json' \
--header 'X-Api-Key: <your-api-key>'
{
"code": 100,
"data": null,
"msg": null,
"message": null
}
Let's Build Our Own Endpoint App
We will create a simple endpoint with Python and Flask, then we will expose this local webhook endpoint to the internet, then we will register it to HeyGen webhook events and start receiving video information to our endpoint. Follow up! 🙌
Conclusion
HeyGen's webhook events and APIs provide essential tools for managing avatar video generation. With options to register, update, and process events you can effortlessly stay informed about the status of your avatar videos. Whether you want to handle successful video generation or address any issues that may arise, HeyGen's webhook system keeps you in the loop.
Updated 4 months ago