Async Generations
Request schema, status lifecycle, and completed output URLs.
Video modes are text-to-video, image-to-video, and multimodal-to-video. Image modes are text-to-image and image-to-image.
Media inputs use this shape:
{
"type": "image",
"url": "https://approved-storage.example/reference.png"
}Video and audio inputs in multimodal requests also include trusted duration_seconds from 2 to 15. Each integration receives an input-host allowlist. The API never downloads arbitrary URLs itself and rejects non-HTTPS URLs, credentials in URLs, custom ports, fragments, IP literals, localhost, and hosts outside that allowlist.
The exact hosts assigned to your Key are shown on Settings → API Keys → Create API Key. Phase one has no upload endpoint: publish local files as public HTTPS URLs on one of those hosts. If you do not control an assigned host, ask support to review your storage host before use.
Statuses are queued, processing, completed, failed, and canceled. Poll only the returned status_url. Polling queries the existing internal task and Provider, updates the same task row, and triggers the same failure-refund logic as PC.
Completed URLs are returned in output.urls. Video responses also contain output.video_url; image responses contain output.image_urls. Raw Provider responses and IDs are removed.
Every generation-enabled Key may choose real-person mode per request. Use one of the three Seedance models in image or multimodal mode, set parameters.real_person_mode: true and compliance.rights_confirmed: true, and put a stable ID for the consent/evidence record in your own system in compliance.consent_reference (for example, campaign-2026-08-1234). Do not put a name, email, document URL, personal data, or the consent document itself in this field; retain the evidence in your system.