# HeyGen

HeyGen is an innovative video platform that harnesses the power of generative AI to streamline your video creation process

- **Category:** artificial intelligence
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 72
- **Triggers:** 0
- **Slug:** `HEYGEN`
- **Version:** 20260316_00

## Tools

### Add looks to photo avatar group

**Slug:** `HEYGEN_ADD_LOOKS_TO_PHOTO_AVATAR_GROUP`

Tool to add additional looks (images) to an existing photo avatar group. Use when you need to expand an avatar group with new image variations. Maximum 4 image keys can be added per request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name identifier for the avatar looks being added |
| `group_id` | string | Yes | The unique identifier of the avatar group to which looks will be added |
| `image_keys` | array | Yes | Array of image key strings to add to the group. Maximum 4 image keys can be added at a time. Image keys are string identifiers (e.g., 'photo_generation/xxx/yyy.jpg' or 'image/xxx/original') obtained from photo generation or upload responses. If you have objects with 'id' fields, extract the 'id' value as the image key string. |
| `generation_id` | string | No | The unique identifier of the generation request for the images. Required for AI-generated avatars, optional for uploaded photos |
| `image_keys_normalized` | boolean | No | Indicates whether the image keys were normalized. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add motion to photo avatar

**Slug:** `HEYGEN_ADD_MOTION`

Tool to add natural motion or animation to an existing photo avatar, turning a still image into a moving, lifelike one. Use when you need to animate an avatar or add motion effects to a static photo avatar. The endpoint returns a new ID for the motion-enabled avatar.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the photo avatar to which motion should be applied. This ID can be obtained from photo avatar creation or listing endpoints. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check photo/look generation status

**Slug:** `HEYGEN_CHECK_PHOTO_LOOK_GENERATION_STATUS`

Tool to retrieve the current status and details of a photo avatar or look generation by its ID. Use when you need to check if a photo avatar generation is complete or monitor generation progress.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `generation_id` | string | Yes | The unique identifier for the photo avatar or look generation job. This ID is obtained from the response of the Generate Photo Avatar Photos endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a new folder

**Slug:** `HEYGEN_CREATE_FOLDER`

Tool to create a new folder under your HeyGen account. Use when you need to organize content by creating a new folder. Once created, you can place videos in the folder by providing the folder_id parameter when generating videos.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the folder to be created |
| `parent_folder_id` | string | No | The ID of the parent folder if creating a nested folder structure. Omit this to create a folder at the root level |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create knowledge base

**Slug:** `HEYGEN_CREATE_KNOWLEDGE_BASE`

Tool to create a new knowledge base with a specified name, opening line, and custom prompt for Interactive Avatar streaming sessions. Use when you need to set up a new knowledge base with custom AI behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name/identifier for the knowledge base. Must be a non-empty string |
| `prompt` | string | Yes | Custom instructions/system prompt for AI behavior that influences how the avatar responds when using the TALK task type with GPT-4o mini |
| `opening` | string | Yes | Initial greeting or opening line that the Interactive Avatar uses when starting a conversation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create photo avatar group

**Slug:** `HEYGEN_CREATE_PHOTO_AVATAR_GROUP`

Tool to create an avatar group which can include both AI-generated and user-uploaded photos of the avatar. Use when you need to create a new avatar group for training or managing avatar photos.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name identifier for the avatar group being created |
| `image_key` | string | Yes | Reference key for the associated image asset obtained from either uploading an image or generating an AI avatar. Example format: 'image/0be8fa31f9b4406eaab861238f140e3d/original' |
| `generation_id` | string | No | ID of the generated photo, used only for AI-generated avatars. Optional parameter that should be provided when creating avatar group from AI-generated photos. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create WebM video

**Slug:** `HEYGEN_CREATE_WEBM_VIDEO`

Tool to create a WebM format video with transparent background featuring an avatar speaking text or audio. Use when you need to generate WebM videos with transparent backgrounds for overlaying on other content. Note that this API endpoint does not support custom avatars - only HeyGen's studio avatars are supported. The output format will be WebM instead of MP4 to preserve transparency.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `width` | integer | No | Video width in pixels. If not specified, default dimensions will be used |
| `height` | integer | No | Video height in pixels. If not specified, default dimensions will be used |
| `voice_id` | string | No | Voice ID from List All Voices (V2) API. Required when using input_text |
| `input_text` | string | No | Text to be spoken by the avatar. Required if input_audio is not provided |
| `input_audio` | string | No | Asset ID of uploaded audio file. Alternative to input_text and voice_id. Obtain this ID from the Upload Asset API response |
| `avatar_style` | string | No | Avatar style for the video. Common values are 'normal' or 'happy' |
| `avatar_pose_id` | string | Yes | Avatar pose ID from List All Avatars (V2) API. This is the avatar_id value that identifies a specific avatar pose. Must be an avatar that supports WebM format |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an avatar video

**Slug:** `HEYGEN_DELETE_AN_AVATAR_VIDEO`

Tool to delete a video by its ID from HeyGen account. Supports deletion of both generated (avatar) videos and translated videos. Use when you need to remove a video that is no longer required or to manage storage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | The unique identifier of the video to delete. Supports both generated (avatar) videos and translated videos |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete asset

**Slug:** `HEYGEN_DELETE_ASSET`

Tool to delete a specific asset by its unique asset ID from HeyGen account. Use when you need to remove an asset (image, video, or audio) that is no longer required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `asset_id` | string | Yes | The unique identifier of the asset to be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete knowledge base

**Slug:** `HEYGEN_DELETE_KNOWLEDGE_BASE`

Tool to delete a specific knowledge base by its ID. Use when you need to permanently remove a knowledge base from the HeyGen streaming platform.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `knowledge_base_id` | string | Yes | The unique identifier of the knowledge base to be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete photo avatar

**Slug:** `HEYGEN_DELETE_PHOTO_AVATAR`

Tool to delete a photo avatar by its ID from HeyGen account. Use when you need to remove a photo avatar that is no longer required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `avatar_id` | string | Yes | The unique identifier of the photo avatar to be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete photo avatar group

**Slug:** `HEYGEN_DELETE_PHOTO_AVATAR_GROUP`

Tool to delete a photo avatar group by its ID from HeyGen account. Use when you need to remove a photo avatar group that is no longer required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `avatar_group_id` | string | Yes | The unique identifier of the photo avatar group to be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete webhook endpoint

**Slug:** `HEYGEN_DELETE_WEBHOOK_ENDPOINT`

Tool to permanently delete a webhook endpoint from HeyGen. Use when you no longer need to receive webhook notifications for a specific endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `endpoint_id` | string | Yes | The unique identifier of the webhook endpoint to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate photo avatar photos

**Slug:** `HEYGEN_GENERATE_PHOTO_AVATAR_PHOTOS`

Tool to generate a personalized AI avatar based on text prompts and attribute inputs. Use when you need to create custom AI-generated avatar photos with specific characteristics like age, gender, ethnicity, pose, and appearance details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `age` | string ("Young Adult" | "Early Middle Age" | "Late Middle Age" | "Senior" | "Unspecified") | Yes | Age group classification for the avatar. Must be one of: 'Young Adult' (18-35), 'Early Middle Age' (35-50), 'Late Middle Age' (50-65), 'Senior' (65+), or 'Unspecified'. |
| `name` | string | Yes | Name identifier for the avatar. This is used to identify and track the generated avatar. |
| `pose` | string | Yes | Body position type for the avatar. Defines how much of the avatar's body is visible in the frame. Valid values: 'half_body', 'close_up', 'full_body' |
| `style` | string | Yes | Visual aesthetic style for rendering. Determines the artistic style of the generated avatar. Valid values: 'Realistic', 'Pixar', 'Cinematic', 'Vintage', 'Noir', 'Cyberpunk', 'Unspecified' |
| `gender` | string | Yes | Gender specification for the avatar. Defines the gender presentation of the generated avatar. |
| `ethnicity` | string | Yes | Ethnic background for the avatar. Specifies the ethnic characteristics to be reflected in the avatar. |
| `appearance` | string | Yes | Detailed description of the avatar's look, attire, and setting. This text prompt guides the AI generation to create specific visual characteristics, clothing, and environmental context. |
| `orientation` | string | Yes | Layout direction/orientation of the image. Determines the aspect ratio and framing of the generated photo. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate text-to-speech audio

**Slug:** `HEYGEN_GENERATE_TEXT_TO_SPEECH`

Tool to generate a speech audio file from any text input using a specified voice, powered by HeyGen's Starfish model. Use when you need to convert text to speech audio with high-quality voice synthesis.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | The text content to convert to speech |
| `voice_id` | string | Yes | The ID of the voice to use for speech generation. Can be obtained from the List All Voices (V2) endpoint |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate voice audio preview

**Slug:** `HEYGEN_GENERATE_VOICE_AUDIO_PREVIEW`

Tool to generate a short audio preview with the specified voice and text. Use when you need to synthesize short audio clips using selected voices before creating full videos. This is an Enterprise-only feature that consumes API credits and is currently in Beta.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Sample text to synthesize into audio |
| `voice_id` | string | Yes | Identifier for the voice to use in the preview. Can be retrieved from the List All Voices (V2) endpoint |
| `text_type` | string ("text" | "ssml") | No | Specifies input format. Accepted values: 'text' or 'ssml'. Defaults to 'text' if not specified |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get current user information

**Slug:** `HEYGEN_GET_CURRENT_USER_INFORMATION`

Tool to retrieve the profile information of the currently authenticated user. Use when you need to fetch user details including username, email, full name, subscription status, and quotas.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get training job status

**Slug:** `HEYGEN_GET_TRAINING_JOB_STATUS`

Tool to retrieve the current training status and details of a photo avatar training job by group ID. Use when you need to check training progress, monitor job completion, or verify if training has finished successfully.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the avatar group whose training status is being queried. This ID is obtained when creating a training job. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Keep alive streaming session

**Slug:** `HEYGEN_KEEP_ALIVE_STREAMING_SESSION`

Tool to reset the idle timeout counter for an active streaming session. Use when you need to prevent a streaming session from timing out during periods of inactivity.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | A unique identifier for the streaming session to keep alive |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all avatar groups

**Slug:** `HEYGEN_LIST_ALL_AVATAR_GROUPS`

Tool to retrieve a list of all available avatar groups in your HeyGen account. Use when you need to fetch all avatar groups for content management or selection purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include_public` | boolean | No | Whether to include all public avatar groups |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all locales for voices

**Slug:** `HEYGEN_LIST_ALL_LOCALES_FOR_VOICES`

Tool to retrieve available locales for multilingual voices. Use when you need to access locale identifiers that can be used with multilingual voices for video generation.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assets

**Slug:** `HEYGEN_LIST_ASSETS`

Tool to retrieve a paginated list of all assets (images, audios, videos) created under your account. Use when you need to fetch assets for content management or track uploaded resources. Supports filtering by file type and folder, as well as cursor-based pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of assets to return per page (controls page size for pagination) |
| `token` | string | No | Cursor token for pagination. Use the token returned from previous response to fetch next page of results |
| `file_type` | string | No | Filter assets by type. Possible values: 'image', 'video', 'audio' |
| `folder_id` | string | No | Filter assets by parent folder ID to retrieve assets from specific folder |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List brand voices

**Slug:** `HEYGEN_LIST_BRAND_VOICES`

Tool to retrieve a list of brand glossaries created under your account. Use when you need to access brand voice definitions that maintain consistent terminology and pronunciation across videos.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List folders

**Slug:** `HEYGEN_LIST_FOLDERS`

Tool to retrieve a paginated list of folders created under your account. Use when you need to organize or browse folder structures in HeyGen. Supports cursor-based pagination using the token parameter.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | No | Cursor token for pagination. For the first request, omit this parameter. For subsequent requests, use the token value returned in the previous response to get the next page of results. When the token is empty or null in the response, it indicates there are no more pages |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List avatars in a specific group

**Slug:** `HEYGEN_LIST_GROUP_AVATARS`

Tool to retrieve all avatars that belong to a specific avatar group. Use when you need to fetch all avatars within a particular group for content management or selection purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the specific avatar group from which to retrieve avatars. This ID can be obtained from the HeyGen dashboard or from other group-related endpoints. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List knowledge bases

**Slug:** `HEYGEN_LIST_KNOWLEDGE_BASES`

Tool to retrieve a list of all existing knowledge bases associated with your account. Use when you need to view available knowledge bases for streaming interactions.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List session history

**Slug:** `HEYGEN_LIST_SESSION_HISTORY`

Tool to retrieve a paginated history of all streaming sessions with metadata including session duration, timestamps, and other details. Use when you need to view historical streaming session data for reporting or analysis purposes.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List streaming avatars

**Slug:** `HEYGEN_LIST_STREAMING_AVATARS`

Tool to retrieve a list of public and custom interactive avatars for streaming. Use when you need to fetch available avatars for interactive streaming sessions.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List TTS voices

**Slug:** `HEYGEN_LIST_TTS_VOICES`

Tool to retrieve a list of public and custom voices compatible with HeyGen's Starfish TTS model. Use when you need to access available voices for text-to-speech audio generation in videos.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create new streaming session

**Slug:** `HEYGEN_NEW_SESSION`

Tool to initiate a new streaming session with an Interactive Avatar for real-time interactions. Use when starting a new avatar streaming session to get WebSocket connection details including session_id, URL, and access_token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `voice` | object | No | Avatar voice configuration settings |
| `quality` | string ("high" | "medium" | "low") | Yes | Data quality level - 'high' (2000kbps/720p), 'medium' (1000kbps/480p), or 'low' (500kbps/360p). Required parameter. |
| `version` | string | No | API version. Valid value is 'v2' (beta). Use this to access v2-specific features. |
| `avatar_id` | string | No | Interactive Avatar ID. Defaults to 'default' if omitted. Use to specify which avatar to use for the streaming session. |
| `stt_settings` | object | No | Speech-to-text conversion settings (beta) |
| `knowledge_base` | string | No | Knowledge Base prompt for chat tasks. Provides context for avatar responses. |
| `video_encoding` | string ("H264" | "VP8") | No | Video format encoding - 'H264' or 'VP8'. Defaults to VP8 if not specified. |
| `livekit_settings` | object | No | Custom LiveKit instance configuration (beta) |
| `knowledge_base_id` | string | No | Knowledge base ID for avatar responses. Requires version='v2' to be set. |
| `disable_idle_timeout` | boolean | No | Disables the default 2-minute idle timeout when set to true. Useful for long-running sessions. |
| `activity_idle_timeout` | integer | No | Maximum idle seconds after last activity. Range: 30-3600 seconds. Default: 120 seconds. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add contact to personalized video project

**Slug:** `HEYGEN_PERSONALIZED_VIDEO_ADD_CONTACT`

This endpoint allows you to add one or more contacts to a specific personalized video project in the Heygen platform. It is used when you need to associate individual contact information with a project, likely for the purpose of creating tailored video content for each contact. The endpoint accepts a project identifier and a list of contacts, each with a first name and email address. This tool is essential for populating your project with recipient data, enabling the creation of personalized videos at scale. Note that this endpoint only adds contacts to a project; it does not initiate video creation or sending. Ensure that your project_id is valid and that all contact information is accurate to avoid errors in video personalization or delivery.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Project identifier |
| `variables_list` | array | Yes | Variables List |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch personalized video project detail

**Slug:** `HEYGEN_PERSONALIZED_VIDEO_PROJECT_DETAIL`

Retrieves detailed information about a specific personalized video project in HeyGen, including status, settings, and metadata. Use this to check project progress or review configuration. Read-only endpoint. The project ID must be obtained from the HeyGen web interface - there is no API to list projects. Go to Personalized Video section, select a project, and copy the Project ID from the API setup page. May require Enterprise subscription.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the personalized video project. This ID must be obtained from the HeyGen web interface when creating a personalized video project. Go to HeyGen's Personalized Video section, create or select a project, and copy the Project ID from the API setup page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get photo avatar details

**Slug:** `HEYGEN_PHOTO_AVATAR_DETAILS`

Tool to retrieve detailed information about a photo avatar or look using its unique ID. Use when you need to get comprehensive information about a specific photo avatar including status, metadata, and configuration details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `avatar_id` | string | Yes | The unique identifier of the photo avatar or look whose details need to be retrieved. This ID can be obtained from photo avatar creation or listing endpoints. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post talking photo binary image

**Slug:** `HEYGEN_POST_TALKING_PHOTO_BINARY_IMAGE`

Creates a talking photo by processing an uploaded image file. This endpoint enables users to transform static images into interactive, speaking visual content using HeyGen's advanced AI technology. It accepts JPEG or PNG image files and likely combines them with audio narration (though audio input is not specified in this schema). Use this endpoint when you want to generate engaging, personalized content from still images, such as creating speaking avatars or animated photographs. The endpoint is particularly useful for marketing materials, educational content, or personalized messages. Note that while image upload is specified, the method for providing or generating the associated audio is not detailed in this schema.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | Image file to upload for talking photo creation. Accepts JPEG and PNG formats. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore folder from trash

**Slug:** `HEYGEN_RESTORE_FOLDER`

Tool to restore a previously deleted folder from trash by its unique folder ID. Use when you need to recover a folder that was moved to trash.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `folder_id` | string | Yes | The unique identifier of the folder to be restored from trash |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve avatar details

**Slug:** `HEYGEN_RETRIEVE_AVATAR_DETAILS`

Tool to retrieve detailed information about a specific avatar by its ID. Use when you need to get comprehensive information about an avatar including identification details, display properties, and preview media URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `avatar_id` | string | Yes | The unique identifier of the avatar whose details need to be fetched. This ID can be obtained from the List All Avatars endpoint or from the HeyGen dashboard. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve sharable video URL

**Slug:** `HEYGEN_RETRIEVE_SHARABLE_VIDEO_URL`

Tool to generate a public, shareable URL for a specific video by ID. Use when you need to create a public link that allows anyone to view the video without authentication. The generated URL can be shared with anyone and does not require HeyGen account access. Generated URLs may be time-limited; call this tool again to refresh the link if it expires.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | The unique identifier of the video for which to generate a shareable URL. This ID is returned when a video is created via the video generation API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve template details v3

**Slug:** `HEYGEN_RETRIEVE_TEMPLATE_DETAILS_V3`

Tool to retrieve comprehensive details about a specific template including all available variables for replacement and scene mappings for templates built in the New AI Studio. Use when you need to understand the structure, available customization options, variables, and scene configurations of a template before generating videos from it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | The unique identifier of the template to retrieve details for. This ID can be obtained from the List Templates endpoint or from the HeyGen dashboard. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve video status details

**Slug:** `HEYGEN_RETRIEVE_VIDEO_STATUS_DETAILS`

Tool to retrieve the current processing status and metadata for a specific video by ID. Use when you need to check video processing progress, get time-limited URLs for video downloads, or monitor video generation completion. Video rendering is asynchronous and typically takes 30–180+ seconds; poll at moderate intervals rather than tight loops. Verify returned URLs are accessible before surfacing to users. Note that returned URLs expire after 7 days but can be regenerated by calling this endpoint again.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | The unique identifier of the video to retrieve status for. This ID is returned when a video is created via the video generation API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search public avatar groups

**Slug:** `HEYGEN_SEARCH_PUBLIC_AVATAR_GROUPS`

Tool to search and retrieve public avatar groups with optional filters and pagination. Use when you need to find specific avatar groups by tags, name, or browse available public avatars.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Current page number for pagination (default: 1). Must be a positive integer. |
| `query` | string | No | Search query to filter by avatar name or other attributes, for example: 'Ann' or 'Business Executive'. Use to search for specific avatar names or descriptions. |
| `page_size` | integer | No | Number of avatar groups per page (default: 20). Must be between 1 and 100. |
| `search_tags` | array | No | Search tags to filter avatar groups, for example: ['Middle Aged', 'Professional']. Use tags that describe avatar characteristics like age, style, or profession. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create streaming token with expiry

**Slug:** `HEYGEN_STREAMING_CREATE_TOKEN`

Creates a new streaming token for use with HeyGen's real-time avatar and voice chat services. This endpoint generates a unique, time-limited token that authenticates and authorizes access to HeyGen's streaming capabilities. Use this endpoint when initiating a new streaming session or when the previous token has expired. The generated token is typically for one-time use and should be obtained shortly before starting a streaming interaction. Note that this endpoint does not initiate the streaming itself; it only provides the necessary credentials for subsequent streaming API calls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expiry` | integer | No | Token expiry time in seconds |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post streaming ice candidates

**Slug:** `HEYGEN_STREAMING_ICE`

This endpoint is used to submit ICE (Interactive Connectivity Establishment) candidate information for a specific streaming session in the Heygen platform. It plays a crucial role in establishing and managing peer-to-peer connections for real-time communication and streaming of avatar content. The endpoint should be called when new ICE candidates are discovered during the connection setup process, typically as part of the WebRTC negotiation. It's essential for ensuring optimal connectivity between clients, especially in scenarios involving NAT traversal or complex network environments. This endpoint does not return the status of the connection or initiate the streaming itself; it only submits candidate information to be used in the connection process.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | Streaming session ID |
| `candidate__sdpMid` | string | No | Media stream identifier |
| `candidate__candidate` | string | No | ICE candidate string |
| `candidate__sdpMLineIndex` | integer | No | Index of the media line |
| `candidate__usernameFragment` | string | No | ICE username fragment |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Interrupt streaming session

**Slug:** `HEYGEN_STREAMING_INTERRUPT`

Interrupts an ongoing streaming session with an interactive avatar. This endpoint allows immediate termination of the avatar's current action or speech, providing control over the flow of interaction. Use this when you need to abruptly stop the avatar's current behavior, such as when changing topics or responding to user input that requires a different response. The interruption is immediate and irreversible, so use it judiciously to maintain a smooth user experience. This endpoint is particularly useful in scenarios where real-time responsiveness is crucial, like in customer service applications or interactive presentations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | ID of the streaming session to interrupt |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve streaming list

**Slug:** `HEYGEN_STREAMING_LIST`

Retrieves a list of active or available streaming sessions or content within the HeyGen platform. This endpoint allows users to get an overview of ongoing streams, which may include live avatar interactions, real-time video generations, or other streaming content created using HeyGen's AI-driven tools. It's particularly useful for monitoring current streaming activities or checking the availability of streams for integration into applications. The endpoint returns basic information about each stream, such as stream IDs, status, and possibly metadata, but does not provide the actual stream content. Use this when you need to track or display a list of active streams in your application's interface or for administrative purposes.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set streaming quality endpoint

**Slug:** `HEYGEN_STREAMING_NEW`

Initiates a new streaming session with HeyGen, allowing users to start an avatar-based stream with specified quality settings. This endpoint should be used when starting a new interactive content session or when creating a personalized digital avatar stream. It sets up the initial configuration for the streaming quality, which affects the overall user experience and bandwidth usage. The endpoint does not handle the actual streaming content or avatar creation; it only establishes the session parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quality` | string ("high" | "low" | "medium") | No | Streaming quality |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start streaming session

**Slug:** `HEYGEN_STREAMING_START`

Initiates a new streaming session for real-time communication in the HeyGen platform. This endpoint is used to set up a WebRTC connection for video, audio, and data streaming, likely for interactions with AI avatars. It requires a unique session ID and a Session Description Protocol (SDP) offer to establish the connection. This endpoint should be called when starting a new interactive session with a HeyGen AI avatar or when initiating a live streaming event. It's crucial for setting up the initial parameters of the real-time communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sdp` | object | Yes | The SDP answer object containing the WebRTC session description from the client's peer connection. |
| `session_id` | string | Yes | The ID of the streaming session to start. Obtained from the streaming.new endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stop streaming session

**Slug:** `HEYGEN_STREAMING_STOP`

The streaming.stop endpoint is used to terminate an active streaming session in the Heygen API. This endpoint should be called when you want to end a real-time data transfer session, such as when closing an interactive avatar conversation or stopping a live content stream. It's particularly useful for freeing up server resources and ensuring proper closure of streaming connections. The endpoint requires the unique session_id to identify which specific session to stop, allowing for precise control over multiple concurrent sessions. Note that once a session is stopped, it cannot be resumed; a new session must be started if streaming is needed again.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | Session to stop |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send task to streaming avatar

**Slug:** `HEYGEN_STREAMING_TASK`

The StreamingTask endpoint initiates a real-time speaking task for an AI-driven avatar within an active streaming session. It enables developers to make avatars vocalize specified text, creating interactive and dynamic user experiences. This endpoint should be used when you want to generate speech from an avatar in response to user input or as part of a scripted interaction. It's particularly useful for applications requiring real-time avatar interactions, such as virtual assistants, interactive presentations, or educational content. Note that this endpoint requires an active streaming session, and the avatar's voice and appearance are determined by the session configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Text for avatar to speak |
| `task_mode` | string ("sync" | "async") | No | Task execution mode. |
| `task_type` | string ("repeat" | "chat") | No | Specifies behavior: 'repeat' - avatar simply repeats the input text; 'chat' - avatar responds according to knowledge base set in streaming.new API. |
| `session_id` | string | Yes | Session identifier obtained from streaming.new endpoint |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move folder to trash

**Slug:** `HEYGEN_TRASH_FOLDER`

Tool to move a specific folder to trash by its unique folder ID. Use when you need to delete a folder from HeyGen (soft delete - can be recovered later).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `folder_id` | string | Yes | The unique identifier of the folder to be moved to trash |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update folder name

**Slug:** `HEYGEN_UPDATE_FOLDER`

Tool to update (rename) an existing folder by its unique folder ID. Use when you need to change the name of a folder in HeyGen.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The new name for the folder |
| `folder_id` | string | Yes | The unique identifier of the folder to be updated |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update knowledge base

**Slug:** `HEYGEN_UPDATE_KNOWLEDGE_BASE`

Tool to update an existing knowledge base by its ID. Use when you need to modify the name, opening line, or custom prompt of a knowledge base for Interactive Avatar streaming sessions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name/identifier for the knowledge base. This field is required by the API. |
| `prompt` | string | No | Custom instructions/system prompt for AI behavior that influences how the avatar responds when using the TALK task type with GPT-4o mini |
| `opening` | string | Yes | Initial greeting or opening line that the Interactive Avatar uses when starting a conversation. This field is required by the API. |
| `knowledge_base_id` | string | Yes | The unique identifier of the knowledge base to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update webhook endpoint

**Slug:** `HEYGEN_UPDATE_WEBHOOK_ENDPOINT`

Tool to modify an existing webhook endpoint configuration including URL and subscribed event types. Use when you need to update webhook settings or change event subscriptions for an existing endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The webhook URL where HeyGen will send event notifications. Must respond to OPTIONS requests within 1-second timeout during validation |
| `events` | array | No | List of event types to subscribe to. Common events include 'avatar_video.success', 'avatar_video.fail', 'video_translate.success', 'photo_avatar_train.fail', 'instant_avatar.success' |
| `secret` | string | No | Security key for validating webhook authenticity |
| `endpoint_id` | string | Yes | Unique identifier for the webhook endpoint to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload asset

**Slug:** `HEYGEN_UPLOAD_ASSET`

Tool to upload a file asset (image, video, or audio) to HeyGen platform. Use when you need to upload media files for use in video generation or other HeyGen services.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | File to upload as an asset. Supported types: image (png, jpeg), video (mp4, webm), or audio (mpeg). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upscale motion avatar

**Slug:** `HEYGEN_UPSCALE_AN_AVATAR`

Tool to enhance the resolution and visual quality of a motion avatar. Use when you need to improve avatar quality for higher resolution output. Important: Upscaling can ONLY be performed on motion avatars/looks - the avatar must first have motion added using the Add Motion endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the motion avatar or look to upscale. This must be a motion avatar created using the Add Motion endpoint. Upscaling can ONLY be performed on motion avatars, not regular photo avatars. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List avatars endpoint

**Slug:** `HEYGEN_V1_AVATAR_LIST`

Retrieves a list of available avatars from the Heygen platform. This endpoint allows users to fetch both public and private avatars, depending on their access rights and the specified parameters. It's particularly useful for applications that need to display available avatars to users for selection or customization. The endpoint supports pagination to handle large numbers of avatars efficiently. Use this when you need to present avatar options to users, manage avatar inventories, or sync local avatar data with the Heygen platform. Note that the response will likely include basic information about each avatar, such as ID, name, and type, but may not include full avatar details or assets.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List talking photo entries

**Slug:** `HEYGEN_V1_TALKING_PHOTO_LIST`

Retrieves a list of talking photos created using the HeyGen platform. This endpoint allows users to fetch information about their existing talking photo projects, which are interactive images capable of speaking and engaging users. It's useful for managing and reviewing your talking photo content, or for integrating talking photo information into your application. The endpoint returns details about each talking photo, potentially including identifiers, creation dates, and associated metadata. Note that this endpoint likely returns all talking photos by default, so for users with a large number of projects, implementing client-side filtering or pagination may be necessary.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List videos

**Slug:** `HEYGEN_V1_VIDEO_LIST`

Retrieves a list of videos associated with the user's account on the HeyGen platform. This endpoint is crucial for content management, allowing users to view and organize their video library efficiently. It provides an overview of all videos created or managed through the HeyGen service, including AI-generated videos with custom avatars. Use this endpoint when you need to display a comprehensive list of videos, manage content, or track video creation progress. The response likely includes metadata for each video such as title, creation date, duration, and status. Note that this endpoint does not provide the actual video content or detailed analytics; it's primarily for listing and basic information retrieval.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List voice endpoints

**Slug:** `HEYGEN_V1_VOICE_LIST`

Retrieves a comprehensive list of all available voices in the HeyGen platform. This endpoint should be used when you need to obtain information about the voice options that can be utilized for avatar creation or text-to-speech functionalities. The returned list likely includes details such as voice IDs, names, languages, and potentially other characteristics like gender or accent. It's particularly useful for applications that need to present voice choices to users or for initializing voice-related features. Note that this endpoint does not provide audio samples of the voices; it only lists their metadata.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add webhook endpoint

**Slug:** `HEYGEN_V1_WEBHOOK_ENDPOINT_ADD`

Adds a new webhook endpoint to receive real-time notifications for specified Heygen events. This endpoint allows you to configure where and for which events you want to receive updates, enabling seamless integration of Heygen's capabilities into your application. Use this when you need to set up automated responses to specific events in the Heygen platform, such as avatar creation or video completion. The webhook will send POST requests to the specified URL whenever the subscribed events occur. Note that you may need to implement proper security measures on your receiving endpoint to validate incoming webhook requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Webhook URL |
| `events` | array | Yes | Event types to subscribe to |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List webhook endpoints

**Slug:** `HEYGEN_V1_WEBHOOK_ENDPOINT_LIST`

Retrieves a list of all webhook endpoints configured for your HeyGen account. This endpoint allows you to view and manage the webhook configurations that receive notifications about various events in your HeyGen integration. Use this endpoint to monitor your existing webhook setups, verify their status, or gather information for updating or removing webhooks. The response will likely include details such as the endpoint URLs, associated event types, and current status of each webhook. This tool is particularly useful for developers managing multiple webhook integrations or troubleshooting notification issues within their HeyGen-powered applications.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List webhooks

**Slug:** `HEYGEN_V1_WEBHOOK_WEBHOOK_LIST`

Retrieves a list of all available webhook event types that can be subscribed to in your HeyGen account. This endpoint returns the complete list of event types that HeyGen supports for webhook notifications, such as avatar video success/failure events, video translation events, personalized video events, instant avatar events, photo avatar events, and more. Use this endpoint when you need to discover which webhook events are available for subscription before configuring your webhook endpoints. Note that this endpoint only lists the available event types - to manage actual webhook endpoint configurations, use the webhook endpoint.list, endpoint.add, and endpoint.delete endpoints.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete talking photo by id

**Slug:** `HEYGEN_V2_TALKING_PHOTO_ID_DELETE`

Deletes a specific talking photo from the HeyGen platform using its unique identifier. This endpoint should be used when you need to permanently remove a talking photo resource, such as when it's no longer needed or to manage storage. Once deleted, the talking photo cannot be recovered, so use this endpoint with caution. It's important to note that this operation does not affect any videos or content that may have already been generated using this talking photo.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate video template with variables

**Slug:** `HEYGEN_V2_TEMPLATE_GENERATE`

Generates a customized video from a pre-existing template using HeyGen's AI platform. Accepts a video title and template variables to personalize content. Ideal for creating tailored videos at scale like personalized marketing, educational content, or custom presentations. Supports test mode, captions, and custom dimensions. IMPORTANT: First retrieve template variable definitions using 'Get template by id' (GET /v2/template/{id}). Variable names must exactly match those from that endpoint, or the API will reject with 'Invalid variable name' error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Template ID |
| `test` | boolean | No | Test mode flag |
| `title` | string | Yes | Video title |
| `caption` | boolean | No | Enable captions |
| `dimension` | object | No | Video dimension configuration. |
| `variables` | object | Yes | Dictionary of template variables keyed by variable name. Variable names MUST exactly match those defined in the template (retrieve them first using the 'Get template by id' action with endpoint GET /v2/template/{id}). Each variable has a type (text, image, video, character, voice, audio) and type-specific properties corresponding to its type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get template by id

**Slug:** `HEYGEN_V2_TEMPLATE_ID`

Retrieves a specific template from the HeyGen platform using its unique identifier. This endpoint allows users to access detailed information about a particular template, including its structure, elements, and customization options. It's particularly useful when you need to review or use an existing template for video creation or modification. The endpoint returns comprehensive template data, which may include settings for avatars, content placeholders, and customization parameters. Use this when you want to fetch the complete details of a known template before applying it to create or edit a video. Note that this endpoint retrieves template information only and does not create or modify any content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Template ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve all templates

**Slug:** `HEYGEN_V2_TEMPLATES`

Retrieves a list of available avatar templates from the HeyGen platform. This endpoint allows users to access pre-designed avatars that can be used for creating professional-looking videos. It's particularly useful when you need to browse or select from HeyGen's library of realistic avatars for your video projects. The endpoint returns template information, which likely includes details such as template IDs, names, preview images, and customization options. Use this endpoint when you want to display available avatar options to users or when you need to select a template for video generation.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve user remaining quota

**Slug:** `HEYGEN_V2_USER_REMAINING_QUOTA`

Retrieves the current remaining quota for the authenticated user on the HeyGen platform. This endpoint allows users to check their available resources or actions within their account limits. It should be used to monitor usage and plan resource allocation effectively. The returned information helps users understand how much of their quota is left before reaching account limits. Note that this endpoint does not provide details on total quota or usage history, focusing solely on the remaining available quota.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate video with inputs

**Slug:** `HEYGEN_V2_VIDEO_GENERATE`

Generates a customized video using Heygen's AI-driven platform. This endpoint allows you to create videos featuring digital avatars with specified voices, enabling dynamic content creation. It's ideal for producing personalized video content, such as explainer videos, product demonstrations, or interactive presentations. The endpoint supports multiple input configurations, allowing for complex video scenarios with different characters and voices. Use this when you need to programmatically create AI-generated videos with specific avatar and voice combinations. Note that while the endpoint offers extensive customization, real-time video generation is not supported, and processing times may vary based on complexity and system load.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `test` | boolean | No | Test mode flag |
| `title` | string | No | The title of the video |
| `callback_id` | string | No | Optional callback ID |
| `aspect_ratio` | string | No | Video aspect ratio |
| `video_inputs` | array | Yes | Array of video input configurations |
| `dimension__width` | integer | No | Video width in pixels |
| `dimension__height` | integer | No | Video height in pixels |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post video translate request

**Slug:** `HEYGEN_V2_VIDEO_TRANSLATE`

The TranslateVideo endpoint enables the translation of video content from one language to another. It offers flexible options for translating either the entire video or just the audio track, accommodating various use cases. This tool is ideal for creating multilingual versions of video content, making it accessible to a global audience. The endpoint requires specifying the source video URL and the desired output language, with additional options to customize the translation process, such as handling multiple speakers and setting a title for the translated video. Use this endpoint when you need to quickly and efficiently translate video content while maintaining the integrity of the original presentation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title for translated video |
| `video_url` | string | Yes | Source video URL |
| `speaker_num` | integer | No | Number of speakers |
| `output_language` | string | Yes | Target language |
| `translate_audio_only` | boolean | No | Translate only audio |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve video translation by id

**Slug:** `HEYGEN_V2_VIDEO_TRANSLATE_ID_STATUS`

Retrieves the current status of a video translation job in the HeyGen platform. This endpoint allows users to check the progress of their requested video translations, providing information such as whether the translation is in progress, completed, or if any errors have occurred. It should be used when tracking the state of an ongoing translation task or to confirm if a translation has finished processing. The endpoint does not modify the translation job or initiate new translations; it's purely for status checking purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Video ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve video translation target languages

**Slug:** `HEYGEN_V2_VIDEO_TRANSLATE_TARGET_LANGUAGES`

Retrieves a list of all available target languages supported by HeyGen's video translation feature. This endpoint should be used when you need to know which languages are available for translating your video content. It provides an up-to-date array of supported languages, including various dialects and locales, allowing you to make informed decisions about your video translation projects. The endpoint does not require any parameters and will return the complete list of supported languages, which currently includes over 77 options. This tool is particularly useful for planning multilingual content strategies or when preparing to use HeyGen's video translation services.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List available voices

**Slug:** `HEYGEN_V2_VOICES`

Retrieves a list of available voice models and options that can be used with HeyGen's AI-driven video creation platform. This endpoint provides information about the various voice options, including different languages and voice characteristics, which can be applied to avatars in generated videos. Use this endpoint when you need to present users with voice choices for their video projects or when implementing voice customization features in your application. The returned data likely includes details such as voice ID, language, gender, and other relevant attributes for each available voice model. This endpoint is essential for applications that want to offer a range of voice options to enhance the personalization of AI-generated video content.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
