POST /v1/videos/generations returns a public task identity and usually a poll_url; the final video appears on later status responses.
When the selected Seedance model can use the AI Sonar material library, image URLs and supported inline data URLs are prepared as reusable AI Sonar materials before generation. If preparation takes longer than 60 seconds, retry after the returned auto_material_asset_ids become ACTIVE. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path.
OpenAI-Style And Volc-Compatible Video APIs
Use/v1/videos/generations for AI Sonar’s unified video API across models. If you are migrating an existing Seedance 2.0 integration that already uses Volc-style content[] or Action requests, use the Seedance compatibility endpoints under /api/v3. Both styles use AI Sonar Bearer API keys and async polling, but their request and response shapes are different.
Supported Operations
Use explicitoperation in production. AI Sonar can infer some operations from inputs, but explicit operation values make validation, support, and retries clearer.
Model Discovery
model, then choose feature variants with operation and the corresponding media inputs. Examples include wan-2.7, happyhorse-1.0, viduq3, viduq3-mix, pixverse-v6, kling-3.0-video, veo3.1, and seedance-2.0; do not use operation-specific suffixes as AI Sonar model names.
Read the selected model detail before relying on specialized fields such as reference_images, kling_elements, output_audio, duration, resolution, or aspect_ratio.
Create Request
https URLs over inline data: URLs. If you use temporary URLs, keep them valid until AI Sonar finishes creating the task.
Inputs And Model-Specific Fields
- Veo 3 family requests default to audio-on when
output_audiois omitted. Set it explicitly when the model supports the toggle and your UX depends on sound. kling_elementsis forkling-3.0-videoimage-conditioned requests. Reference each element inpromptas@name; do not combine it withoutput_audio=true.- For the Seedance 2.0 family, read the Seedance 2.0 video models guide before using 4K output, Fast/Mini resolution caps, or multimodal reference inputs.
- For
grok-imagine-video, video-to-video uses a public.mp4video_url; model-specific limits such asdurationandresolutionmust come from the model details.
PixVerse and HappyHorse
On AI Sonar, the PixVerse models above do not accept
operation=video-extension.
Polling Results
Use the returnedpoll_url first. If you need a fixed endpoint, use GET /v1/tasks/{id} with the same id / task_id from the create response.
Completed video tasks may return video_url, video, or videos depending on the model and output count. Treat billing_transaction_id as a billing identifier, not as a task identifier.
Common Pitfalls
- Do not hard-code old video status paths; prefer
poll_url. - Do not combine first-frame fields with dedicated reference-image flows unless the model details allows it.
- Do not assume
durationdescribes input reference video length; it usually controls generated output length. - Do not retry create requests after a timeout without checking whether a task was already created.