Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.heygen.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Enterprise plans are billed in credits. Credits are consumed when a video, translation, or speech job completes successfully — you are not charged for failed jobs. Most rates are per second of output video (or audio) produced. The rate depends on the feature and the quality mode you select.
Credit balances and remaining usage are available via GET /v3/users/me. Contact your account team to purchase additional credits or adjust your credit pool.
OAuth vs API Key: If you authenticate with an OAuth bearer token, usage is billed against your web plan, not the API tier.Using an API Key is recommended for automation and integration workflows. API key authentication provides higher concurrency limits and is more flexible and powerful for programmatic use.

Pricing

Video Generation — Avatar IV & V

Avatar TypeRate
Photo Avatar0.1 credits / sec
Digital Twin0.1 credits / sec
Studio Avatar0.1 credits / sec

Video Generation — Avatar III

Avatar III is available to existing customers only. It is not offered to new users. For all new integrations use Avatar IV or Avatar V.
Avatar TypeRate
Photo Avatar0.0033 credits / sec
Digital Twin0.0033 credits / sec
Studio Avatar0.0033 credits / sec

Video Agent

FeatureRate
Prompt to Video0.0667 credits / sec

Video Translation

ModeRate
Speed — Audio Only0.05 credits / sec
Speed — Lip Sync0.05 credits / sec
Precision — Lip Sync0.1 credits / sec
Proofread0.00833 credits / sec

Lipsync

ModeRate
Speed0.05 credits / sec
Precision0.1 credits / sec

Text-to-Speech

ModelRate
Speech — Starfish0.000333 credits / sec

Avatar Creation

OperationRate
Digital Twin1 credit / call
Photo Avatar1 credit / call

Concurrency Limits

PlanMax Concurrent Video Jobs
Enterprise20+ (varies by contract)
Concurrent jobs include any asynchronous generation in progress: Video Agent sessions, avatar video renders, and video translations. Exceeding the limit returns 429 Too Many Requests with a Retry-After header.

Endpoint Limits

Video Generation Input

Resources provided to POST /v3/videos must meet these limits. Invalid resources will cause render failures.
Resource TypeSupported FormatsMax File SizeMax Resolution
VideoMP4, WebM100 MB< 2K
ImageJPG, PNG50 MB< 2K
AudioWAV, MP350 MB
Requirements:
  • Resource URLs must be publicly accessible (no authentication required).
  • The file extension must match the actual file format.
  • Files must not be corrupted or malformed.

Avatar Input

  • Script text: Maximum 5,000 characters.
  • Audio input: Maximum 10 minutes (600 seconds).

Video Agent Input

  • Prompt: 1–10,000 characters.
  • File attachments: Up to 20 files. Supported types: image (PNG, JPEG), video (MP4, WebM), audio (MP3, WAV), and PDF.
  • Files can be provided as an asset_id (from POST /v3/assets), an HTTPS URL, or base64-encoded content.

Asset Upload (POST /v3/assets)

  • Maximum file size: 32 MB.
  • Supported types: Image (PNG, JPEG), video (MP4, WebM), audio (MP3, WAV), and PDF.

Text-to-Speech Input (POST /v3/voices/speech)

  • Text length: 1–5,000 characters.
  • Speed multiplier: 0.5× to 2.0×.
  • Input type: Plain text or SSML markup.

Output Video Specifications

  • Frame rate: 25 fps for videos containing avatars.
  • Resolution: Width and height must each be between 128 and 4,096 pixels. Default output is 1080p (up to 4K on Enterprise).
  • Aspect ratio: 16:9 or 9:16.
  • Maximum scenes: 50 per video.
  • Maximum duration: Custom (contact your account team).

Pagination

Most list endpoints use cursor-based pagination with a limit parameter and next_token for the next page.
EndpointDefaultMax
GET /v3/videos10100
GET /v3/avatars2050
GET /v3/avatars/looks2050
GET /v3/voices20100
GET /v3/video-agents/styles20100
GET /v3/video-translations10100
GET /v3/webhooks/endpoints10100
GET /v3/webhooks/events10100
GET /v3/video-agents/sessions/{id}/resources8100

Rate Limiting

All endpoints enforce rate limits. When exceeded, the API returns 429 Too Many Requests with a Retry-After header indicating the number of seconds to wait before retrying.