APIMaster.ai

Vérification du titulaire et ressources de portrait

Guide commun APIMaster pour la vérification, les ressources et la génération Seedance.

Vérification du titulaire et ressources de portrait

Les quatre modèles utilisent les mêmes interfaces APIMaster. Le serveur adapte les interfaces, identifiants et états des fournisseurs. La vérification officielle du titulaire, la validation de portraits par une filière et les ressources ordinaires ou virtuelles restent distinctes. Utilisez uniquement des photos expressément autorisées.

1. Capacités et portée

Interrogez les capacités avec votre clé APIMaster. Utilisez le channel_id renvoyé pour conserver le contexte. La disponibilité dépend des permissions, du projet et du routage du modèle. Un parcours non pris en charge est refusé sans changer de filière ou de modèle. SD1.0, SD1.5 et les alias personnalisés nécessitent une vérification séparée du protocole.

model duration Image Video Audio
seedance-2.0 4–15 s ≤9 ≤3 / ≤15 s ≤3 / ≤15 s
seedance-2.0-fast 4–15 s ≤9 ≤3 / ≤15 s ≤3 / ≤15 s
seedance-2.0-mini 4–15 s ≤9 ≤3 / ≤15 s ≤3 / ≤15 s
seedance-2.5 4–30 s / -1 ≤30 ≤10 / ≤30 s ≤10 / ≤30 s

2. Choisir le parcours

official_h5 exige une session et une vérification personnelle sur téléphone. channel_material_review utilise un groupe purpose=channel_portrait puis la soumission et la consultation des ressources ; owner_verified=false ne prouve pas une vérification officielle. purpose=ordinary concerne les ressources ordinaires lorsque cette capacité est disponible. virtual_or_ordinary ne propose pas la vérification officielle ; unverified signifie que la capacité reste non vérifiée. Sans purpose, la création de groupe conserve le comportement virtuel existant.

curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/groups' \
 -H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
 -d "{\"model\":\"seedance-2.5\",\"channel_id\":${APIMASTER_CHANNEL_ID},\"purpose\":\"channel_portrait\",\"name\":\"Authorized portrait materials\"}"

3. Vérification sur téléphone

Pour official_h5, créez une session puis ouvrez le h5_link sur le téléphone du titulaire. APIMaster héberge le rappel HTTPS : aucun serveur de rappel client n’est nécessaire. Omettez callback_url. Les clés durables et BytedToken restent sur le serveur. Le résultat du navigateur seul ne suffit pas : le serveur confirme le résultat auprès du fournisseur. Les rappels répétés ne créent pas de nouvelles ressources.

export APIMASTER_KEY='<your APIMaster key>'
export APIMASTER_CHANNEL_ID='<available channel ID from the capability API>'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/capabilities?model=seedance-2.5' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/verifications' \
 -H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
 -H 'Idempotency-Key: portrait-session-001' \
 -d "{\"model\":\"seedance-2.5\",\"channel_id\":${APIMASTER_CHANNEL_ID},\"name\":\"My portrait\"}"

4. Confirmer le résultat

Après completed, utilisez le group_id public. Les états et délais ci-dessous sont distincts de la durée d’autorisation du portrait. Une erreur réseau temporaire conserve l’état ; n’ouvrez pas automatiquement une nouvelle session. Consultez aussi /console/seedance-materials. Une session, un groupe, une ressource et une tâche vidéo ont des identifiants distincts.

curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/verifications/verification_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
API fields / values
capabilities model, channel_id, method, configured, reason, hosted_callback, real_person_verified
verification session_id (id), method, status, h5_link (verification_url), created_at, expires_at, group_id
verification.status creating, pending, completed, failed, expired, failed_unconfirmed, submission_unknown
Idempotency-Key 8–128; same request → original receipt; changed request → 409
verification rate ≤3 / user / minute; upstream limits also apply
H5 / BytedToken single-use H5; query credential ≤30 min; expires_at ≠ portrait authorization expiry

5. Importer et vérifier les ressources

POST /uploads héberge seulement le fichier source ; POST /assets est le point commun d’enregistrement et de validation. L’ancien POST /v1/seedance2/private-avatar est un alias du même traitement. Seul Active autorise la génération. Processing, Pending et Failed sont indisponibles. Chaque nouvelle photo d’un groupe officiel real_person fait l’objet d’une validation de correspondance ; channel_portrait reste une validation de ressources. Une réussite partielle conserve les ressources acceptées. Après un délai d’attente, consultez les ressources existantes ; ne répétez pas automatiquement le POST et n’inventez pas asset_id.

curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/uploads' \
 -H "Authorization: Bearer $APIMASTER_KEY" -F 'file=@authorized-owner.png'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets' \
 -H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
 -H 'Idempotency-Key: portrait-asset-001' \
 -d '{"model":"seedance-2.5","group_id":"group_PUBLIC_ID","asset_type":"Image","assets":[{"url":"<signed upload URL>","name":"Owner"}]}'
curl --fail-with-body 'https://apimaster.ai/v1/tasks/asset_task_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets?group_id=group_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets/asset_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
API fields / values
uploads JPEG / PNG ≤10 MB; upload_id, url, url_expires_at, delete_after
groups public id; group_type=virtual / ordinary / channel_portrait / real_person
assets public asset_id; status=Pending / Processing / Active / Failed
channel_material_review verification_method, owner_verified=false, material_purpose, review.scope_model
review task asset_task_*; GET /v1/tasks/{id}

6. Générer et télécharger

Obtenez une estimation avec /v1/videos/quote avant de générer. Elle ne garantit pas un plafond de facturation. Le serveur conserve la filière, le compte et le projet compatibles avec les ressources. Les combinaisons incompatibles sont refusées. Le changement de modèle exige le contrôle de ses propres limites ; les nouvelles photos exigent une nouvelle validation. Après succès, consultez le reçu et téléchargez la vidéo.

curl --fail-with-body 'https://apimaster.ai/v1/videos' \
 -H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
 -H 'Idempotency-Key: portrait-video-001' \
 -d '{"model":"seedance-2.5","prompt":"The person smiles naturally","image_urls":["asset://asset_PUBLIC_ID"],"resolution":"480p","duration":4,"generate_audio":false}'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/video-requests/video_request_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID/billing' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID/content' -H "Authorization: Bearer $APIMASTER_KEY" -o owner.mp4
API fields / values
generation Idempotency-Key required; no automatic POST retry
receipt video_request_*; X-Seedance-Request-Id; replay → 202 + original receipt
video task task_*; separate from receipt, verification and asset IDs

7. Confidentialité et suppression

Les liens signés sont sensibles : toute personne les détenant peut télécharger le fichier pendant leur validité. Ne journalisez pas les liens H5, les URL signées ou les identifiants de rappel. La suppression du fichier hébergé ne supprime pas la ressource fournisseur. La suppression d’une ressource retire son association APIMaster et utilise la suppression fournisseur si disponible ; aucune suppression distante non prise en charge n’est promise. Supprimez les ressources avant le groupe. Les vidéos déjà produites ne disparaissent pas automatiquement. Aucun modèle biométrique n’est conservé ; validation et autorisation d’usage sont distinctes.

API / storage values
signed original URL 1 h
hosted original access ≤24 h; hourly cleanup ≤25 h; private files 0600
DELETE /uploads/{upload_id} hosted original
DELETE /assets/{asset_id} APIMaster mapping; upstream deletion if supported
DELETE /groups/{group_id} empty group

8. Coûts et erreurs

Vérifié le 2026-10-07 : la documentation officielle décrit la vérification comme temporairement gratuite. Les frais réels de session, validation, import, stockage et gestion dépendent du contexte et ne sont pas tous confirmés. Aucun achat de droits n’est automatique. La génération utilise les mécanismes existants de devis, réservation, règlement et remboursement ; consultez le reçu réel. Les erreurs distinguent permissions, capacité indisponible, validation en attente ou échouée, ressource incompatible et réponse fournisseur incertaine. Aucun accès interutilisateur n’est autorisé.

HTTP context
400 input / callback
403 permissions
404 resource
409 pending / failed review / incompatible context
429 rate limit
502 / 503 uncertain upstream result / unavailable