Overview
Add HeyGen to any ModuleX agent or workflow. AI video generation platform for creating talking avatar videos via the HeyGen REST API (api.heygen.com).
Categories: AI & Machine Learning · AI · Video · Content Creation · Auth: API Key · Actions: 5
Authentication
API Key Authentication
Authenticate using your HeyGen API key
Step 2
Navigate to Settings > API
Step 4
Paste the API key below
Required Credentials
| Field | Description | Required | Format |
|---|
| HeyGen API Key | Your HeyGen API key from app.heygen.com/settings | Yes | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Available Actions
create_talking_photo — Creates a talking photo video from a provided image, text, and voice
Parameters
Identifier of the talking photo to use
The text that the character will speak
Identifier of the voice to use
Set to true to use test mode (no credits charged, watermark added)
Set to true to create video with captions
Talking photo scale, value between 0 and 2.0 (default 1.0)
Talking photo crop style: square, circle
Talking photo talking style: stable, expressive
Talking photo expression style: default, happy
Whether to enhance the photo image
Whether to apply matting to the photo
Response
{
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"video_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Video Id"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
}
},
"required": [
"success"
],
"title": "CreateTalkingPhotoOutput",
"type": "object"
}
create_video_from_template — Generates a video from a selected template with optional variable overrides
Parameters
Identifier of the template to use
Set to true to use test mode (no credits charged, watermark added)
Set to true to create video with captions
Template variable overrides as a JSON object where keys are variable names and values are objects with variable properties
Response
{
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"video_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Video Id"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
}
},
"required": [
"success"
],
"title": "CreateVideoFromTemplateOutput",
"type": "object"
}
list_custom_events_options — Retrieves available options for webhook custom events
Response
{
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"events": {
"items": {
"type": "string"
},
"title": "Events",
"type": "array"
}
},
"required": [
"success"
],
"title": "ListCustomEventsOptionsOutput",
"type": "object"
}
list_voice_id_options — Retrieves available voice options for video generation
Response
{
"$defs": {
"VoiceInfo": {
"additionalProperties": false,
"description": "A voice entry returned by the list voices endpoint.",
"properties": {
"voice_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Voice Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
}
},
"title": "VoiceInfo",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"voices": {
"items": {
"$ref": "#/$defs/VoiceInfo"
},
"title": "Voices",
"type": "array"
}
},
"required": [
"success"
],
"title": "ListVoiceIdOptionsOutput",
"type": "object"
}
retrieve_video_link — Fetches the status and download link for a specific HeyGen video
Parameters
Identifier of the HeyGen video to retrieve
Response
{
"additionalProperties": false,
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"video_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Video Id"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"video_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Video Url"
},
"thumbnail_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Thumbnail Url"
},
"duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration"
},
"caption_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Caption Url"
}
},
"required": [
"success"
],
"title": "RetrieveVideoLinkOutput",
"type": "object"
}
Limits & Quotas
- Rate limits depend on your HeyGen plan tier (Starter, Business, Enterprise).
- Video generation consumes credits; use
test=true to avoid credit charges during development.
- No documented per-minute rate limit; excessive requests may trigger throttling.
- Error model: non-2xx responses and timeouts are caught and returned as
success=False + error rather than raising.
Links