Skip to main content
HeyGen offers two Enterprise billing models depending on your contract. Your account team will help you choose the right fit.
ModelHow It WorksBest For
Usage-Based BillingMonthly Minimum Commitment (MMC) with a per-second rate and overage billingTeams with predictable, recurring API usage
Credit PackagesPurchase an annual pool of credits upfront under a contractTeams that prefer a fixed annual spend with flexible drawdown
Both models authenticate with an API Key (x-api-key header). Check your balance at any time with GET /v3/user/me → wallet.
OAuth vs API Key: If you authenticate with an OAuth bearer token, usage is billed against your web plan — not your Enterprise API balance.API key authentication provides higher concurrency limits and is more flexible and powerful for automation and integration workflows.

1. Usage-Based Billing

Usage-based billing pairs a flat Monthly Minimum Commitment (MMC) with a per-second credit rate. If you exceed the included credits in a given month, overage is billed at a slightly higher rate.

How It Works

  1. Monthly Minimum Commitment (MMC): A flat fee charged monthly via Stripe, regardless of usage.
  2. Included Credits: Each tier includes a pool of API credit-seconds per month at the contract rate.
  3. Overage: Usage beyond the included pool is billed at the overage rate per second.

Billing Tiers

All rates and credits are expressed per second, which is the unit used for metering.
Monthly Minimum CommitmentContract Rate (per second)Included Credits / MonthOverage Rate (per second)
$1,000$0.00833120,000$0.01000
$5,000$0.00750600,000$0.00833
$20,000$0.006672,400,000$0.00750
Custom MMC and overage combinations are available — contact your account team for details.
The minimum contract rate for the Enterprise API is $0.005 per second ($0.30 per credit-minute).

Example

$5,000 MMC tier: Your contract includes 600,000 credit-seconds per month at $0.00750/sec. If you use 700,000 credit-seconds in a month, the first 600,000 are covered by your MMC. The remaining 100,000 seconds are billed at the overage rate of $0.00833/sec, adding $833.00 to your invoice.

2. Credit Packages

Credit packages let you purchase a fixed annual pool of credits under a contract. Credits are drawn down as you use the API throughout the year.

How It Works

  1. Annual Contract: You agree to a total credit amount for the contract term (typically 12 months).
  2. Drawdown: Credits are consumed per second as you use HeyGen’s API. The per-second cost of each product is listed in the pricing table below.
  3. Balance Tracking: Monitor your remaining credit balance via GET /v3/user/me → wallet.
Credit package terms — including total credits, price per credit, and contract duration — are set in your Enterprise agreement. Contact your account team to discuss packaging options.

Product Pricing (Enterprise Credits)

The table below applies to both billing models. For usage-based accounts, credits are metered per second against your included pool and overage. For credit package accounts, credits are deducted from your annual balance.

Video Agent

FeatureRate
Prompt to Video0.0666 credit / sec

Video Generation

Avatar TypeEngineRate
Public AvatarIV0.1 credit / sec
Digital TwinIV0.1 credit / sec
Photo AvatarIV0.1 credit / sec

Video Translation

ModeRate
Speed Mode0.05 credit / sec
Precision Mode0.1 credit / sec
Proofread0.0083 credit / sec

Overdub

ModeRate
Speed Mode0.05 credit / sec
Precision Mode0.1 credit / sec

Text-to-Speech

ModelRate
Speech — Starfish0.000333 credit / sec

Avatar Creation

OperationRate
Digital Twin1 credit per call
Photo Avatar1 credit per 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.