Skip to main content

Request settings

With no explicit settings or conflicting prompt instructions, a text-video quote resolves to 10 seconds, native 720p, 16:9, and sound on. Image-to-video keeps the same duration, resolution, and sound defaults, but uses the source-driven aspect profile. Send these in the body of POST /v1/video/quotes, not in the acceptance request. Keep prompt instructions and explicit settings consistent. A silent prompt with generate_audio: true, a duration that conflicts with the options, or shot timings that exceed the clip length are rejected rather than silently changed. Review resolved_settings on every quote.

Dimensions and duration

aspect_ratio describes shape, while resolution describes the native output profile. V1 has no custom width, height, or frame-rate request fields. It does not offer 1080p or 4K output. Do not assume landscape output is always exactly 1280 by 720 pixels, or that the file duration is an exact whole second. Read video_job.metadata.width, height, duration_seconds, fps, and audio_streams on the completed execution. For example, a validated native 720p landscape clip can be 1280 by 704 pixels with a measured duration just over 10 seconds. Use these delivered values when sizing a player, checking audio, or importing the file into an editor. For vertical text video, send "aspect_ratio": "9:16"; for square text video, send "aspect_ratio": "1:1". For image-to-video, prepare a reference in the intended composition and omit the aspect option; the resolved aspect is reported as native. A quote does not promise a particular final pixel width and height before generation.

Sound on and off

Sound is on by default for new requests. Describe what should be heard, such as ambience, effects, music, or dialogue. This is a creative request, not a guarantee of perfect speech, synchronization, or timing. Listen to the delivered clip before publishing it. For silence, set "generate_audio": false and remove conflicting sound instructions from the prompt. An explicit request for a silent video also resolves to sound off when the option is omitted. Stored quotes and existing jobs keep their original audio settings; the default does not change older silent videos. The current public 720p price schedule charges the same rate for sound on and sound off, for otherwise identical settings. The returned quote is authoritative. Changes to the creative request can change the quote, even when duration stays the same. These are examples, not two fixed prices for every prompt. USD equivalents use $0.25 per newly purchased API credit and are rounded for display. There is no separate dollar charge on top of the quoted credit charge. Read current credit pricing and always approve the actual quote.

Quote and billing rules

  1. Requesting a quote does not generate a video or reserve generation credits.
  2. A ready quote contains customer_price.currency: api_credits, a decimal-string amount, and expires_at. New acceptance normally has a 10-minute window.
  3. Accept with quote_id and a positive max_credits ceiling of at most 100. The ceiling must cover the quoted amount. A pricing_pending quote cannot be accepted.
  4. Acceptance reserves the quoted API credits. Successful owned video delivery settles that amount once. A higher ceiling does not increase the charge.
  5. Failed or eligible cancelled work restores its hold. Long-unresolved work can have credits restored while its status remains nonterminal. Check credits_restored, reserved_credits, settled_credits, and billing_note, not status alone.
  6. If output arrives after restoration, it is not charged again. Replaying the accepted quote does not create another job or charge. A deliberately new quote and acceptance can create new paid work.
max_credits applies to one execution, not a daily or account-wide spending cap. Keep your own approval and budget controls across multiple requests. Use the API balance, not a different application’s wallet.

Limits at a glance

The request windows also apply. Capacity is not guaranteed merely because your account has fewer than two active videos.

Next steps