X-Api-Key; no Volcengine access key or secret key is required.
Separate from virtual portrait assets
Virtual portraits are documented in Virtual portrait assets. This page covers real-person verification only.Integration flow
- Create a verification session and store
bytedToken. - Send
shortLinkorh5Linkto the person being verified. - Complete the session from your backend with the same API key.
- Store the returned
RealPersongroup ID. - Create an asset and wait until its status is
Active. - Pass
asset://{assetId}to Seedance.
Create and complete verification
This request has one field. Do not send the virtual portrait fieldsname or description:
Call Create verification session:
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:
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: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 toPOST /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, oraudios. - Append only the asset ID after
asset://. - Use only
Activeassets.

