Skip to main content
Real-person assets let Seedance use authorized media of a real person. Your integration only needs an AiToEarn X-Api-Key; no Volcengine access key or secret key is required.
Use this feature only with the person’s explicit authorization. Keep the API key on your backend.

Separate from virtual portrait assets

Virtual portraits are documented in Virtual portrait assets. This page covers real-person verification only.
If generating a video with a real-person asset fails, use Create virtual portrait group.

Integration flow

  1. Create a verification session and store bytedToken.
  2. Send shortLink or h5Link to the person being verified.
  3. Complete the session from your backend with the same API key.
  4. Store the returned RealPerson group ID.
  5. Create an asset and wait until its status is Active.
  6. Pass asset://{assetId} to Seedance.

Create and complete verification

This request has one field. Do not send the virtual portrait fields name or description: Call Create verification session:
Store data.bytedToken. AiToEarn retains the session for 30 minutes. After verification, the browser redirects to your callbackUrl with bytedToken, resultCode, and other query parameters. Your backend must still call Complete verification with the same API key:
Completion has no request body. Store data.groupId. Business code 12329 means the result is not ready; retry the same bytedToken. If generating a video with a real-person asset fails, use Create virtual portrait group.

Create an asset

If the file is local or private, use Asset upload first. Then call Create asset:
Store data.assetId. Query Asset details until the status becomes Active:
Processing means the asset is still being processed. Failed means you should check the source file and create a new asset.

Use the asset in Seedance

Send the following body to POST /api/ai/video/generations with the same X-Api-Key:
  • Keep one verified person per real-person group.
  • Use clear face media and avoid multiple faces.
  • Keep the source URL publicly accessible while processing.
  • Match the asset type to images, videos, or audios.
  • Append only the asset ID after asset://.
  • Use only Active assets.
If generating a video with a real-person asset fails, use Create virtual portrait group.
Last modified on October 30, 2026