private_asset_review: true in your video request. The platform prepares the media actually used by the request and submits the video after all of it passes review. No duplicate asset list, asset group creation, or separate review polling is needed.
This workflow requires a Seedance asynchronous video channel with on-demand asset review enabled. It does not apply to every video model or synchronous endpoint. Requests fail if the feature is disabled or no compatible channel is available. Users in mainland China can replace
https://toapis.com with https://toapis.cn.Send the request
UsePOST /v1/videos/generations. Keep images, video, and audio in their existing input fields and add the boolean switch.
Use these input fields. Existing model limits and role combinations still apply:
Images use the first nonempty field in this order:
image_with_roles[].url > reference_images > image_urls > images > image. These fields are not merged. Models that reject mixed image fields still reject them. Prompts and metadata are not scanned, and ignored input fields remain ignored.
HTTP(S) URLs are matched after trimming surrounding whitespace, may contain at most 2048 UTF-8 bytes, and cannot embed credentials. Repeated URLs of the same type are reused; conflicting types are rejected. Images also accept raw Base64 or
data:image/...;base64,..., which is decoded, validated, and stored before review. Video and audio require HTTP(S). Local paths are unsupported; you can also upload images to obtain URLs.
Files must be nonempty. On-demand storage accepts images up to 20 MiB and video or audio up to 100 MiB. Models or review services may impose stricter format, duration, and size limits. The upload link above is for images; use video upload or audio upload for those media types.
Wait for the video result
- An accepted request returns a video task without holding the HTTP connection open for review. Acceptance does not mean review passed or video generation started.
- The platform stores a copy and checks for a usable review record on the selected channel. If needed, it starts review. Concurrent requests for the same user, URL, and channel share preparation.
- All effective media inputs must pass before video submission. First-time preparation can take several minutes. A usable record skips repeat review, but video generation remains asynchronous.
client_business_id:
queued during review; do not poll the legacy asset endpoint. completed means the video is ready. For failed, inspect error.message.
The default preparation deadline is 20 minutes per round, measured from the start of that round. All assets share it; it is not 20 minutes per asset and does not include subsequent video generation. Platform configuration may change this deadline. Switching channels starts a new preparation round. Rejection or preparation timeout ends the video task without submitting the video.
If initial review does not pass, no video generation fee is charged. After review passes, normal video reservation and settlement apply. Reusing review records does not change video pricing.
Reuse, retries, and retention
- Send the media again with
private_asset_review: true; no asset ID is needed. Within the same user and channel, URLs match by full address and Base64 images by a digest of decoded content. Raw Base64 and data URIs with identical bytes reuse the same record. Records are not shared across users or channels. - A different URL is a new source. Content changes at the same URL are not detected by file content; use a versioned URL for changed media.
- The platform stores an independent copy. By default, copies unused for more than 30 days may be cleaned up; actual retention depends on platform configuration. An accepted video submission counts as use, even before the video finishes. Later requests prepare cleaned-up assets again, so keep source URLs accessible.
- Retry the same business request with the same
client_business_idto replay an existing task. Use a new business ID for another video or a fresh attempt after failure. Do not create repeated tasks just because review takes time. - If video submission is still unconfirmed, keep querying the original task or contact support before resending with a new business ID.
Compatibility with existing asset APIs
With the switch omitted orfalse, the private avatar API and existing asset:// references retain their behavior. With true, any asset:// in media fields returns HTTP 400. Existing records are not looked up, copied, or migrated.
The switch does not change model capabilities or content requirements, or replace separate real avatar verification. The earlier private_assets field is no longer accepted; use the boolean private_asset_review field.
For validation errors, check the boolean type, asset:// references, and URL or Base64 format. For download failures, check URL access and expiry. Contact the platform if the feature is disabled or no compatible channel is available.