> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreamlayer.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Video settings, sound, and pricing

> Understand supported settings, sound-on defaults, fixed quotes, and API credit settlement.

## 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.

| Field | Contract |
| - | - |
| `operation` | `text_to_video` or `image_to_video`. If omitted, an attached source implies image-to-video; otherwise text-to-video. Explicit values make integrations clearer. |
| `prompt` | Required, nonblank, 1 to 4,000 characters. Describe the subject, action, camera, environment, and desired sound. |
| `input_asset_id` | One owned, unexpired upload for image-to-video. Omit for text-to-video. |
| `input_mode` | Optional `text` or `first_frame`; must agree with whether a source is attached. |
| `options.duration_seconds` | Whole seconds from 4 to 30, subject to quote validation. If omitted, a supported duration in the prompt is used, otherwise 10 seconds. |
| `options.resolution` | `720p` only. This is a native output profile, not a promise of an exact encoded height. |
| `options.aspect_ratio` | Text video only: `16:9`, `9:16`, or `1:1`. Default is `16:9` unless the prompt supplies a supported aspect. Omit for image-to-video. |
| `options.generate_audio` | Boolean. If omitted, sound is on unless the prompt explicitly requests silence. |
| `context.use_case` | Optional `general` or `product_showcase` creative context. |
| `context.requested_background` | Optional `clean_white`, `non_white`, or `unknown` (default). Must agree with the prompt. |

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.

| Example for a 10-second quote | Sound on | Sound off |
| - | - | - |
| If the returned price is 14.5 API credits | 14.5 credits, about \$3.63 | 14.5 credits, about \$3.63 |
| If the returned price is 19.7 API credits | 19.7 credits, about \$4.93 | 19.7 credits, about \$4.93 |

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](/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

| Limit | Video V1 |
| - | - |
| Source images | One, at most 4096 pixels per side and 20 MiB after normalization |
| Output | MP4, at most 256 MiB |
| Active Video admissions | Up to two per account, also subject to shared service capacity |
| Open Video event streams | Three per API key |
| Output retention | 30 days after completion; use `retention_expires_at` |
| Signed download link | 15 minutes; get another link from the authenticated asset endpoint while retained |

The [request windows](/agent-api/limits) also apply. Capacity is not guaranteed merely because your account has fewer than two active videos.

## Next steps

* [Text-to-video](/agent-api/text-to-video)
* [Image-to-video](/agent-api/image-to-video)
* [Execution states, billing recovery, and cancellation](/agent-api/video-jobs)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.