Before you can generate video with a digital twin (type: "digital_twin"), HeyGen needs proof that the person depicted agreed to be cloned. This protects the avatar subject, your account, and HeyGen — and it’s what lets you use a real person’s likeness responsibly at scale.
Consent applies only to digital twin avatars. Photo avatars (type: "photo") and prompt-to-avatar characters (type: "prompt") depict no real, identifiable person and do not require consent.
The three levels of access
Consent is offered as three increasing levels of access. Each level removes friction from the flow, and each is unlocked for a progressively narrower set of accounts. Higher levels are more powerful and correspondingly more restricted.
| Level | Flow | Who it’s for | Availability |
|---|
| 1. Record via webcam | The avatar subject records a short consent statement on camera through HeyGen’s hosted consent page. | All customers | Available today in v3 |
| 2. Upload a consent video | You supply a pre-recorded consent video instead of recording live — more flexible, but consent is still explicitly captured. | Enterprise only | Coming soon |
| 3. Skip the consent flow | Consent collection is waived entirely for accounts that have signed an indemnity agreement. | Enterprise only | Contact sales |
Collect consent via API
The v3 API drives Level 1 (record via webcam). Initiate a consent flow for an avatar group; the response returns a URL the avatar subject visits to approve usage. Full schema: POST /v3/avatars/{group_id}/consent.
Request
curl -X POST "https://api.heygen.com/v3/avatars/group_xyz789/consent" \
-H "X-Api-Key: $HEYGEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reroute_url": "https://heygen.com/consent-done"
}'
| Parameter | Type | Required | Description |
|---|
reroute_url | string | No | Redirect URL after the subject completes consent. Defaults to HeyGen’s own completion page. |
Response
{
"data": {
"avatar_group": {
"id": "group_xyz789",
"name": "My Digital Twin",
"consent_status": "pending",
"looks_count": 1,
"created_at": 1717000000
},
"url": "https://heygen.com/consent/abc123..."
}
}
| Field | Type | Description |
|---|
url | string | Consent page URL. Send this to the avatar subject to complete approval. |
avatar_group.consent_status | string | Current consent status (e.g. "pending"). |
Check consent_status on the avatar group via GET /v3/avatars/{group_id} to know when consent is complete. It is null for photo and prompt avatars, which never require consent.
Where consent fits
Consent is one step in the digital twin flow. To create the avatar itself, see Create Avatar; to browse the resulting characters and looks, see Avatars and Avatar Looks.