Skip to main content
HeyGen logo

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
1

Step 1

Go to https://app.heygen.com and sign in
2

Step 2

Navigate to Settings > API
3

Step 3

Copy your API key
4

Step 4

Paste the API key below

Required Credentials

FieldDescriptionRequiredFormat
HeyGen API KeyYour HeyGen API key from app.heygen.com/settingsYesxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Available Actions

Parameters

talking_photo_id
string
required
Identifier of the talking photo to use
text
string
required
The text that the character will speak
voice_id
string
required
Identifier of the voice to use
title
string
Title of the video
test
boolean
Set to true to use test mode (no credits charged, watermark added)
caption
boolean
Set to true to create video with captions
scale
string
Talking photo scale, value between 0 and 2.0 (default 1.0)
talking_photo_style
string
Talking photo crop style: square, circle
talking_style
string
Talking photo talking style: stable, expressive
expression
string
Talking photo expression style: default, happy
super_resolution
boolean
Whether to enhance the photo image
matting
boolean
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"
}

Parameters

template_id
string
required
Identifier of the template to use
title
string
Title of the video
test
boolean
Set to true to use test mode (no credits charged, watermark added)
caption
boolean
Set to true to create video with captions
variables
object
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"
}

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"
}

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"
}

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.

Browser Use

Amazon Alexa

ElevenLabs