> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Avatar Consent

> How HeyGen verifies that the person in a digital twin agreed to be cloned — the three levels of consent access, and the API flow for collecting it.

Before you can generate video with a **digital twin** ([`type: "digital_twin"`](/docs/create-avatar#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.

<Note>
  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.
</Note>

## 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, whitelisted accounts | Available today in v3 — [contact sales](https://www.heygen.com/contact-us/sales) |
| **3. Skip the consent flow**  | Consent collection is waived entirely for accounts that have signed an indemnity agreement.                                  | Enterprise only, whitelisted accounts | [Contact sales](https://www.heygen.com/contact-us/sales)                         |

## Collect consent via API

One endpoint drives both **Level 1** and **Level 2**: [`POST /v3/avatars/{group_id}/consent`](/reference/create-avatar-consent). By default it starts the webcam flow and returns a URL for the avatar subject; whitelisted enterprise accounts can pass a pre-recorded [`consent_video`](#upload-a-consent-video-level-2) instead.

### Record via webcam (Level 1)

```bash theme={null}
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. Applies to the webcam flow only. |

#### Response

```json theme={null}
{
  "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. Returned for the webcam flow; when you upload a `consent_video`, the group is all you need, so the field is omitted. |
| `avatar_group.consent_status` | string | Current consent status (e.g. `"pending"`).                                                                                                                                                   |

### Upload a consent video (Level 2)

Whitelisted enterprise accounts can submit a pre-recorded consent statement directly — same endpoint, with `consent_video` in place of the flow parameters:

```bash theme={null}
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 '{
    "consent_video": { "type": "url", "url": "https://example.com/consent.mp4" }
  }'
```

| Parameter       | Type   | Required           | Description                                                                                                                                                                       |
| --------------- | ------ | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `consent_video` | object | Yes, for this flow | The pre-recorded consent video, as `{"type": "url", "url": "https://..."}` or `{"type": "asset_id", "asset_id": "..."}` (see [Upload Assets](/docs/upload-assets) for uploading). |

The video is submitted immediately for review — the subject never visits a consent page, so the response contains the `avatar_group` alone and no `url`. Because there is no hosted page in this flow, send `consent_video` on its own, without the webcam-flow parameters. This flow requires a whitelisted account — please [reach out to sales](https://www.heygen.com/contact-us/sales) or your account team to request access.

#### What the consent video must contain

Because the upload flow has no hosted page prompting the subject, you provide the statement yourself. Consent is validated **semantically** — the subject names themselves and explicitly allows HeyGen to use their footage — so minor wording differences are fine. A clear version of the statement:

> "I, \[Full Name], hereby allow HeyGen to use the footage of me to build a HeyGen avatar."

| Requirement       | Detail                                                                                                |
| ----------------- | ----------------------------------------------------------------------------------------------------- |
| Consent statement | The subject says the line above: their name plus explicit permission for HeyGen to use their footage. |
| Same person       | Must be the same person as the training footage (identity-matched).                                   |
| One visible face  | A single, clearly visible face on camera.                                                             |
| Audio             | Clearly audible.                                                                                      |
| Length            | A short clip is enough.                                                                               |
| Format            | A standard video file (for example MP4), supplied as a public HTTPS URL or an uploaded `asset_id`.    |

No passcode is required for the upload path — a spoken code applies only to the interactive webcam flow (Level 1).

<Tip>
  Check `consent_status` on the avatar group via [`GET /v3/avatars/{group_id}`](/reference/get-avatar-group) to know when consent is complete. It is `null` for photo and prompt avatars, which never require consent.
</Tip>

## Where consent fits

Consent is one step in the digital twin flow. To create the avatar itself, see [Create Avatar](/docs/create-avatar); to browse the resulting characters and looks, see [Avatars](/docs/avatars) and [Avatar Looks](/docs/avatar-looks).
