HeyGen website screenshot

HeyGen

HeyGen is an AI video generation platform that creates studio-quality avatar videos, voice clones, and translated video content from simple text prompts. The product line includes Avatar V (digital twins), Photo Avatar, Avatar IV, the Starfish text-to-speech engine, the Video Agent API, Video Translation, and Lipsync. HeyGen serves sales, marketing, e-learning, and localization teams with both self-serve pay-as-you-go API access (starting at a $5 minimum) and enterprise contracts. The company is SOC 2 Type II and GDPR compliant and has powered 50M+ generated videos.

1 APIs 0 Features
Artificial IntelligenceGenerative AIVideoAvatarsVoice CloningText To SpeechLipsyncTranslationStreamingMCP

APIs

HeyGen API

The HeyGen REST API exposes video generation, avatar management, text-to-speech (Starfish), video translation, and lipsync capabilities. It supports avatar videos generated from...

Collections

HeyGen API

OPEN

Pricing Plans

Heygen Plans Pricing

1 plans

PLANS

Rate Limits

Heygen Rate Limits

2 limits

RATE LIMITS

FinOps

Heygen Finops

FINOPS

Resources

🔗
Website
Website
🔗
Documentation
Documentation
📰
Blog
Blog
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
X
X
🔗
LinkedIn
LinkedIn
📄
ChangeLog
ChangeLog
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: HeyGen API
  version: 4.0.8
request:
  auth:
    type: apikey
    key: X-API-KEY
    value: '{{X-API-KEY}}'
    placement: header
items:
- info:
    name: Videos
    type: folder
  items:
  - info:
      name: Retrieve Video Status/Details
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/video_status.get
      params:
      - name: video_id
        value: ''
        type: query
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint allows you to retrieve the status and details of a specific video.
  - info:
      name: Delete a Video
      type: http
    http:
      method: DELETE
      url: https://api.heygen.com/v1/video.delete
      params:
      - name: video_id
        value: ''
        type: query
        description: id of the video you want to delete
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Delete a Video
  - info:
      name: Create Avatar Video (V2)
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/video/generate
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This API now generates videos with our New AI Studio backend.
  - info:
      name: Retrieve Video List
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/video.list
      params:
      - name: limit
        value: ''
        type: query
        description: Enter a range from 0-100 for the number of videos you wish to retrieve in one response. If more than
          100 videos exist, you can retrieve the remaining videos using the pagination token returned in the response.
      - name: folder_id
        value: ''
        type: query
      - name: title
        value: ''
        type: query
      - name: token
        value: ''
        type: query
        description: pagination token for next page
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint retrieves a list of videos associated with the user.
  - info:
      name: Create a WebM Video
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/video.webm
      headers:
      - name: x-api-key
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Generates a webm video with transparent background and an avatar speaking the input text. You can customize the
      avatar's pose, style, and voice, as well as the dimensions of the video.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List Webhook Endpoints
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/webhook/endpoint.list
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: list all your registered webhook endpoints
  - info:
      name: Add a Webhook Endpoint
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/webhook/endpoint.add
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Add a Webhook Endpoint
  - info:
      name: Update a Webhook Endpoint
      type: http
    http:
      method: PATCH
      url: https://api.heygen.com/v1/webhook/endpoint.update
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: update an existing webhook endpoint
  - info:
      name: Delete a Webhook Endpoint
      type: http
    http:
      method: DELETE
      url: https://api.heygen.com/v1/webhook/endpoint.delete
      params:
      - name: endpoint_id
        value: ''
        type: query
        description: the endpoint's id you want to delete
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: delete an existing webhook endpoint
  - info:
      name: List Available Webhook Events
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/webhook/webhook.list
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: list all supported webhook events
- info:
    name: Avatars
    type: folder
  items:
  - info:
      name: List All Avatars (V2)
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/avatars
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: You can get your Avatars and Talking Photos(Photo Avatars) with this endpoint.
  - info:
      name: List All Avatar Groups
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/avatar_group.list
      params:
      - name: include_public
        value: ''
        type: query
        description: Whether to include all public avatar groups
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: List all avatar groups
  - info:
      name: List All Avatars in one avatar group
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/avatar_group/:group_id/avatars
      params:
      - name: group_id
        value: ''
        type: path
        description: Avatar group id
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: List all avatars in one avatar group
- info:
    name: Templates
    type: folder
  items:
  - info:
      name: Generate Video from Template
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/template/:template_id/generate
      params:
      - name: template_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This API now supports New AI Studio!
  - info:
      name: Retrieve Template Details
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/template/:template_id
      params:
      - name: template_id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This API now supports New AI Studio!
  - info:
      name: List Templates
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/templates
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This API now supports New AI Studio!
  - info:
      name: Retrieve Template Details (V3)
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v3/template/:template_id
      params:
      - name: template_id
        value: ''
        type: path
        description: Unique identifier of the template.
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Retrieves template details by ID, including variables available for replacement and scene mappings for the New AI
      Studio.
- info:
    name: Voices
    type: folder
  items:
  - info:
      name: List All Voices (V2)
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/voices
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: List All Voices (V2)
  - info:
      name: List Brand Voices
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/brand_voice/list
      params:
      - name: limit
        value: ''
        type: query
        description: Limit of brand voices to return
      - name: token
        value: ''
        type: query
        description: Pagination token
      - name: name_only
        value: ''
        type: query
        description: Return the name of the brand voices
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to retrieve a list of brand voices your created
  - info:
      name: Update Brand Voice
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/brand_voice/:brand_voice_id
      params:
      - name: brand_voice_id
        value: ''
        type: path
        description: The unique identifier of the brand voice to update
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Updates an existing brand voice with specified changes. Only the fields that need to be modified should be included
      in the request body.
- info:
    name: Video Translation
    type: folder
  items:
  - info:
      name: List Supported Languages
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/video_translate/target_languages
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: List Supported Languages
  - info:
      name: Check Translation Status
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/video_translate/:video_translate_id
      params:
      - name: video_translate_id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Check Translation Status
  - info:
      name: Translate Video
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/video_translate
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Translate Video
- info:
    name: Streaming
    type: folder
  items:
  - info:
      name: Send Task
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.task
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to send a text to an Interactive Avatar, prompting it to speak the provided text.
  - info:
      name: Close Session
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.stop
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to terminate an active streaming session.
  - info:
      name: Start Session
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.start
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to start the connection for an existing streaming session.
  - info:
      name: List Sessions
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/streaming.list
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to retrieve a list of currently active streaming sessions.
  - info:
      name: New Session
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.new
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to initiate a new streaming session.
  - info:
      name: Create Session Token
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.create_token
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to generate a new access token for a streaming session.
  - info:
      name: Interrupt Task
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/streaming.interrupt
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint is used to interrupt the speaking of an Interactive Avatar.
  - info:
      name: List Streaming Avatars
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/streaming/avatar.list
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This API endpoint allows you to retrieve a list of public and custom interactive avatars.
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Get Remaining Quota
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/user/remaining_quota
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Get Remaining Quota
  - info:
      name: Get Current User Information
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/user/me
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Get Current User Information
- info:
    name: Photo Avatars
    type: folder
  items:
  - info:
      name: Generate photo avatar photos
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/photo/generate
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint will generate photos that can be used to create photo avatars, returns a generation id, which can
      be used in the check generation status endpoint to get status and final image/image keys
  - info:
      name: Generate photo avatar looks
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/look/generate
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This endpoint can be used to generate additional looks for a trained photo avatar group. The photo avatar group
      must be trained to use this endpoint.
  - info:
      name: Check photo/look generation status
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/photo_avatar/generation/:generation_id
      params:
      - name: generation_id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Check photo/look generation status
  - info:
      name: Create photo avatar group
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/avatar_group/create
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: 'This api can be used to create a photo avatar group

      For generated photo avatar, pass the generation_id and the image_key

      For user uploaded avatar, first upload the photo using the upload assets api. Then use the key as image_key

      This api only allows using one photo to establish the identity, you can add more photos using the add looks api'
  - info:
      name: Add looks to photo avatar group
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/avatar_group/add
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Add other looks to existing photo avatar group
  - info:
      name: Train photo avatar group
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/train
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Train a photo avatar group.
  - info:
      name: Get training job status
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/photo_avatar/train/status/:group_id
      params:
      - name: group_id
        value: ''
        type: path
        description: Avatar group id
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Get the training status of a avatar group
  - info:
      name: Add motion
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/add_motion
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Add motion to an existing photo avatar, returns the id of the new avatar that has motion
  - info:
      name: Add sound effect
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/add_sound_effect
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: This api adds sound effect into a photo avatar
  - info:
      name: Photo avatar details
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/photo_avatar/:id
      params:
      - name: id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Get the details of a photo avatar
  - info:
      name: Upscale an avatar
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/photo_avatar/upscale
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Call this api to upscale an avatar, can only be called on an avatar that has motion, returns the photo avatar id
      that is upscaled
- info:
    name: Folders
    type: folder
  items:
  - info:
      name: Create Folder
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/folders/create
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Create Folder
  - info:
      name: List Folders
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v1/folders
      params:
      - name: limit
        value: ''
        type: query
        description: Number of folders to return
      - name: parent_id
        value: ''
        type: query
        description: Filter by parent folder ID
      - name: name_filter
        value: ''
        type: query
        description: Search folders by name
      - name: is_trash
        value: ''
        type: query
        description: Filter trashed folders
      - name: token
        value: ''
        type: query
        description: A pagination token used for fetching the next set of folders
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Retrieves a list of folders with optional filters.
  - info:
      name: Update Folder (Rename Only)
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/folders/:folder_id
      params:
      - name: folder_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Updates the name of an existing folder.
  - info:
      name: Trash Folder
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/folders/:folder_id/trash
      params:
      - name: folder_id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Moves a folder to the trash.
  - info:
      name: Restore Folder
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/folders/:folder_id/restore
      params:
      - name: folder_id
        value: ''
        type: path
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Restore Folder
- info:
    name: Assets
    type: folder
  items:
  - info:
      name: Upload Asset
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v1/asset
      headers:
      - name: Content-Type
        value: ''
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Uploads a media file (image, video, or audio) to the authenticated user's HeyGen account and returns the asset ID
      for future use.
- info:
    name: Digital Twins
    type: folder
  items:
  - info:
      name: Get Digital Twin Generation Status
      type: http
    http:
      method: GET
      url: https://api.heygen.com/v2/video_avatar/:avatar_id
      params:
      - name: avatar_id
        value: ''
        type: path
        description: Unique identifier of the Digital Twin avatar.
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Checks the current status of the Digital Twin generation process and returns relevant details.
  - info:
      name: Delete Digital Twin
      type: http
    http:
      method: DELETE
      url: https://api.heygen.com/v2/video_avatar/:avatar_id
      params:
      - name: avatar_id
        value: ''
        type: path
        description: Unique identifier of the Digital Twin avatar.
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Deletes a Digital Twin by its ID.
  - info:
      name: Create Digital Twin
      type: http
    http:
      method: POST
      url: https://api.heygen.com/v2/video_avatar
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: X-API-KEY
        value: '{{X-API-KEY}}'
        placement: header
    docs: Submits the URLs for the required training footage and consent statement to create a Digital Twin.
bundled: true