D-ID Premium+ Avatars offers a hyper-realistic, high-fidelity solution for creating digital presenters that truly embody your unique presence. With PremiumβΊ, you can build avatars that bring an unparalleled level of authenticity to your communications, whether for offline videos or interactive Agents.
β΄οΈ Introduction
D-ID provides two distinct methods for creating a Premium+ Avatar: the Basic and Advanced API usage flows.
For users who want a quick and easy way to create videos, the Basic flow is the perfect choice. It simplifies the process by managing all complex tasksβlike handling consent scripts and uploading videosβdirectly within the D-ID Studio interface. Once these initial steps are done, the API takes over to seamlessly generate videos.
For more experienced developers looking for greater control and customization, the Advanced flow offers the flexibility to manage both avatar creation and video generation entirely through the API. While this option requires the use of external hosting services, it allows for seamless integration of the entire process into your application.
β΄οΈ API Usage - Basic
The Basic flow is designed for users who want to create videos quickly without the need for custom integrations. In this process, all the complex tasks, including handling consent scripts and video uploads, are managed directly through the D-ID Studio interface. Once these steps are completed, video creation proceeds through the API, just like with D-ID's other video creation endpoints.
β€β΄οΈ Prerequisites
- Login to the D-ID Creative Studio
- Go to the Avatars Screen
- Click on Create Avatar, and select Premium+ Avatar
- Follow the steps and guidelines presented on the screen.
Once the Premium+ Avatar is ready, you can continue to the next step.
β€β΄οΈ Video Creation
1. Fetch the Premium+ Avatar
After the Premium+ Avatar is ready, fetch the created Premium+ Avatar's status and properties.
To make the avatar speak with a cloned voice, save the voice_id
for the next step.
GET
https://api.d-id.com/clips/presenters/{id}
| Get Presenter by id
{
"presenters": [
{
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"gender": "male",
"name": "Joe",
"preview_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/preview.mp4",
"modified_at": "2024-11-18T04:28:37.562Z",
"owner_id": "userID",
"thumbnail_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/thumbnail.png",
"image_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/image.png",
"talking_preview_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/talkingPreview.mp4",
"created_at": "2024-11-11T00:00:00.000Z",
"voice": {
"type": "elevenlabs",
"voice_id": "PREMIUM_PLUS_VOICE_ID"
},
"is_streamable": true
}
]
}
To see all of the available Premium and Premium+ Avatars, use the Get a list of the presenters endpoint.
2. Create a Clip with your Premium+ Avatar
Use the id
(from the previous step) and place it in the presenter_id
property.
To use the cloned voice created automatically in the creation process, make sure to include the voice_id
fetched from the previous step.
POST
https://api.d-id.com/clips
| Create a Clip
{
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"script": {
"type": "text",
"input": "Hi! I'm a Premium Plus Avatar! Nice to meet you!",
"provider": {
"type": "elevenlabs",
"voice_id": "PREMIUM_PLUS_VOICE_ID"
}
},
"webhook":"webhook.site/joe_clip_creation_result"
}
{
"id": "clp_ok6xUfv4P5AmqEywO_abc",
"created_at": "2024-11-11T10:00:00.000Z",
"object": "clip",
"status": "created"
}
Use Webhooks!
Create an endpoint that accepts
POST
requests, and add it to thewebhook
field.
This endpoint will be triggered once the video is ready.
3. Get the Clip
GET
https://api.d-id.com/clips/id
| Get a specific Clip
{
///...///
"id": "clp_ok6xUfv4P5AmqEywO_abc",
"status": "started",
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"created_at": "2024-11-11T10:00:00.000Z",
"pending_url": "s3://d-id-clips-prod/userID/clp_ok6xUfv4P5AmqEywO_abc/PREMIUM_PLUS_PRESENTER_ID.mp4"
///...///
}
Note
The output video will be located in the
result_url
field only when"status": "done"
β΄οΈ API Usage - Advanced
The Advanced flow is designed for experienced developers who aim to manage the entire Premium+ Avatar creation process and video generation through the API. This approach requires using external hosting services and offers users the flexibility to integrate both avatar creation and video generation seamlessly into their applications.
β€β΄οΈ Consent
To prevent misuse, we need to confirm the identity of the person in the video by reading a consent statement and dynamic passcode.
1. Create a Consent
POST
https://api.d-id.com/consents
| Create a Consent
{
"language": "english"
}
{
"id": "cst_CgeFQXJD2PHelloMINPQHnY",
"text": "I, [user name] confirm that I have all the necessary rights or consents to use this footage and voice recording for creating an Avatar from my 'User Submission' all in accordance with the Terms of Use. This is my dynamic passcode lake, grass, salad",
"created_at": "2024-09-20T12:30:00.112Z",
"created_by": "userID"
}
Supported Consent Languages:
Dutch, Turkish, Swedish, Indonesian, Filipino, Czech, Romanian, Danish, Malay, Slovak, Croatian, English, Polish, German, Spanish, French, Italian and Portuguese
Expiration Period
The consent challenge will expire 30 minutes after it is created - make sure to use it within that time!
The response id
will be referred to as consent_id
in the next steps.
2. Record a Video with the Consent Script
Record a video of your avatar subject reading aloud the text from the previous step's response and upload it to an external hosting service (e.g. Amazon S3).
Consent Footage Tips:
- Replace the [user name] with your Premium+ Avatar's name
- Pronounce only the provided consent script and nothing else, when recording the consent video
- Only one person should be in the frame of the video
- Ensure the speaker is facing the camera with their face visible at all times
3. Upload the Consent Video
POST
https://api.d-id.com/consents/{id}
| Upload a Consent Video
{
"name": "Joe",
"source_url": "https://yourwebsite.storage.com/JoeConsentFile.mp4",
"webhook": "webhook.site/joe_verification_result"
}
Webhook will be fired once the consent is verified with "status":"done"
- Include the URL of the recorded Consent video in the
source_url
field. - The Premium+ Avatar's
name
must match the"[user name]"
pronounced in the recorded Consent video.
Use Webhooks!
Create an endpoint that accepts
POST
requests, and add it to thewebhook
field.
This endpoint will be triggered once the Consent video is verified.
Note
You can proceed with the consent only when its
"status": "done"
β€β΄οΈ Premium+ Avatar Creation
1. Record a video with your Avatar
Record at least a five minute video of your Avatar subject and upload it to an external hosting service (e.g. Amazon S3) with at least 30 seconds of silence and idle movements at the end of the footage.Without the silent part, the validation will fail.
Footage Tips:
- Keep the subject's face visible at all times
- The subject must face the camera directly
- Record the subject in a quiet, well lit environment
- Make sure the subjectβs mouth is closed when pausing between sentences
- The submitted video must be at least 5 minutes long
- The submitted video must include 30 seconds of silence and idle movements at the end of the footage
2. Create the Premium+ Avatar
POST
https://api.d-id.com/clips/avatars
| Create a Premium+ Avatar
{
"source_url": "https://yourwebsite.storage.com/JoeAvatarVideoFile.mp4",
"name": "Joe",
"gender": "male",
"consent_id": "consent_id",
"webhook": "webhook.site/joe_avatar_result",
"config": {
"is_greenscreen": "false"
}
}
{
"id": "trn_1234AfuyBpJpEVUk88",
"status": "created",
"name": "Joe",
"gender": "male",
"created_at": "2025-01-01T00:00:00.000Z",
"owner_id": "userID",
"created_by": "userID",
"presenter_id": "PREMIUM_PLUS_PRESNETER_ID",
"driver_id": "driverID"
}
- The Premium+ Avatar's
name
should match the "[user name]
" pronounced in the recorded consent video. - Place the
consent_id
returned in the first Consent step. - Copy and save the
presenter_id
for the next step.
Use Webhooks!
Create an endpoint that accepts
POST
requests, and add it to thewebhook
field.
This endpoint will be triggered once the Avatar's creation is done.
Avatar Creation Time
Please note that the Avatar creation process can take up to 24 hours.
3. Fetch the Premium+ Avatar
Use the following endpoint to fetch the created Premium+ Avatar's status and properties.
After the status
is set todone
, you can start creating videos with it.
To make the avatar speak with its cloned voice, save the voice_id
for the next step.
GET
https://api.d-id.com/clips/presenters/{id}
| Get Presenter by ID
{
"presenters": [
{
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"gender": "male",
"name": "Joe",
"preview_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/preview.mp4",
"modified_at": "2024-11-18T04:28:37.562Z",
"owner_id": "userID",
"thumbnail_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/thumbnail.png",
"image_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/image.png",
"talking_preview_url": "https://clips-presenters.d-id.com/v2/userID/_ZW3aat123/1g4jIw123/talkingPreview.mp4",
"created_at": "2024-11-11T00:00:00.000Z",
"voice": {
"type": "elevenlabs",
"voice_id": "PREMIUM_PLUS_VOICE_ID"
},
"is_streamable": true
}
]
}
To see all of the available Premium and Premium+ Avatars, use the Get a list of the presenters endpoint.
β€β΄οΈ Video Creation
1. Create a Clip with your Premium+ Avatar
Use the id
(from the previous step) and place it in the avatar_id
property.
To use the cloned voice created automatically in the creation process, make sure to include the voice_id
fetched from the previous step.
POST
https://api.d-id.com/clips
| Create a Clip
{
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"script": {
"type": "text",
"input": "Hi! I'm a Premium Plus Avatar! Nice to meet you!",
"provider": {
"type": "elevenlabs",
"voice_id": "PREMIUM_PLUS_VOICE_ID"
}
},
"webhook":"webhook.site/joe_clip_creation_result"
}
{
"id": "clp_ok6xUfv4P5AmqEywO_abc",
"created_at": "2024-11-11T10:00:00.000Z",
"object": "clip",
"status": "created"
}
Use Webhooks!
Create an endpoint that accepts
POST
requests, and add it to thewebhook
field.
This endpoint will be triggered once the video is ready.
2. Get the Clip
GET
https://api.d-id.com/clips/{id}
| Get a specific Clip
{
///...///
"id": "clp_ok6xUfv4P5AmqEywO_abc",
"status": "started",
"presenter_id": "PREMIUM_PLUS_PRESENTER_ID",
"created_at": "2024-11-11T10:00:00.000Z",
"pending_url": "s3://d-id-clips-prod/userID/clp_ok6xUfv4P5AmqEywO_abc/PREMIUM_PLUS_PRESENTER_ID.mp4"
///...///
}
Note
The output video will be located in the
result_url
field only when"status": "done"
β΄οΈ Support
Have any questions? We are here to help! Please leave your question in the Discussions section and we will be happy to answer shortly.
Ask a question