private_asset_review: true in your video request. The platform selects a channel using the usual routing rules. Channels with a private asset library prepare and review assets first; other channels skip this step and use their existing media processing and video generation flow. You do not need to check channel capabilities, duplicate the asset list, create groups, or poll a separate review API.
This workflow supports asynchronous video generation requests with media inputs, beyond Seedance. The platform must enable the feature. Text-only requests, synchronous endpoints, and video remix or extend operations are not supported. Existing model requirements and channel availability rules still apply. Skipping private asset review does not bypass the provider’s own content moderation. 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.
The example below uses Seedance 2. For other models, use the media fields and generation parameters in that model’s documentation, then add private_asset_review: true.
Private asset review uses the fields below. Channels that skip review retain their model’s existing media fields and limits:
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.
Models that already support
video_list continue to accept it, including as the only media input, such as reference video requests for Kling Omni and Gemini Omni 1.1. This field is outside the private asset review scope above and follows the model’s own rules. The switch does not enable unsupported fields or formats.
HTTP(S) URLs in the review fields above 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,.... When review is required, they are decoded, validated, and stored first. Channels that skip review process URLs or Base64 under their existing model rules; no new format support is added. The video and audio fields above 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.
- For channels with a private asset library, the platform checks for a reusable record. If none is available, it stores the asset, creates a separate group for that channel’s asset, and submits it for review. Concurrent requests for the same user, media source, and channel share preparation instead of creating separate groups and duplicate reviews.
- All assets requiring review in this round must pass before video submission. First-time preparation can take several minutes; a usable record skips repeat review. Channels without a private asset library use their existing media processing and generation flow without creating asset copies or groups for this feature. 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. Normal video reservation and settlement apply after media preparation. Reusing records or skipping private asset review does not change model pricing or parameter defaults.
Reuse, retries, and retention
- Send the media again with
private_asset_review: true; no asset ID is needed. For channels that require review, URLs match by full address and Base64 images by a digest of decoded content within the same user and channel. 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.
- When review is required, the platform stores a separate copy for each channel. The current default cleanup threshold is 60 days without use; actual retention depends on platform configuration. Automatically created groups are cleaned up with their asset copies. This flow does not take over legacy API assets or shared groups. 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, no generation channel is available, or review configuration fails. A configuration error on a channel configured for review does not cause review to be skipped.