seedanceapi
Veo3.1 · Text to Video render example

Google · Veo3.1 · text to video

Veo3.1 · Text to Video

Render Veo3.1 through the same job workflow as Seedance — from $4.32 per render.

Model idgoogle/veo3.1/text-to-videoShot spec720p · 1080p · 4k · 8sRatefrom $4.32

What it renders

Google Veo 3.1 converts text prompts into videos with synchronized audio at native 1080p for high-quality outputs. Hand over the model id and your shot settings, keep the job id, and collect the finished clip once the job lands. Pricing is per completed render from $4.32 and is locked in before the first frame is queued.

  1. Motion-first defaults

    Veo3.1 · Text to Video opens on workable shot framing before you tune anything.

  2. Async by design

    Renders run as background jobs; poll at your own pace instead of holding a connection open.

  3. Clip-ready output

    Results arrive as a downloadable asset from private storage with a short-lived link.

  4. Text to Video shots

    Text to Video stays available for Veo3.1 · Text to Video without leaving the video workspace.

  5. Veo3.1 shots

    Veo3.1 stays available for Veo3.1 · Text to Video without leaving the video workspace.

  6. Video shots

    Video stays available for Veo3.1 · Text to Video without leaving the video workspace.

From the shot board

Veo3.1 · Text to Video example output.
Veo3.1 · Text to Video output
Veo3.1 · Text to Video example reference.
Veo3.1 · Text to Video reference

Wire the render pipeline

  1. Grab a key

    Sign in, create a server-side key and add a little balance.

  2. Confirm the endpoint

    GET /v1/models lists google/veo3.1/text-to-video with its shot limits and current rate.

  3. Queue the render

    POST /v1/jobs with the model id, your shot settings and a unique Idempotency-Key.

  4. Collect the clip

    Poll GET /v1/jobs/{id} until it lands, then fetch GET /v1/jobs/{id}/content.

Queue the render

# Seedance API — queue one render
curl https://seedanceapi.pro/v1/jobs \
  -H "Authorization: Bearer $SEEDANCE_API_KEY" \
  -H "Idempotency-Key: $REQUEST_ID" \
  -H "Content-Type: application/json" \
  -d '{"model":"google/veo3.1/text-to-video","aspect_ratio":"16:9","duration":8,"generate_audio":true,"prompt":"A slow dolly across a rain-lit neon street, shallow depth of field.","resolution":"1080p","seed":1}'

Shot settings

aspect_ratiooptional
string · 16:9 / 9:16
durationoptional
integer · 8 / 4 / 6
generate_audiooptional
boolean · default true
negative_promptoptional
string
promptoptional
string
resolutionoptional
string · 720p / 1080p / 4k
seedoptional
integer

Try a render from here

This queues a real job on this site's /v1/jobs using your signed-in balance, or an API key if you are not signed in. A pasted key lives only in this tab; the render is billed at the quoted USD rate.

Or sign in to use your account balance.

Before you wire it in

How do I start a Veo3.1 · Text to Video render?

Authenticate, check the live model list for google/veo3.1/text-to-video, then POST the model id and shot settings to /v1/jobs with an Idempotency-Key. Poll the job id until it settles, then download the clip.

What can I control on Veo3.1 · Text to Video?

Veo3.1 · Text to Video accepts aspect_ratio, duration, generate_audio, negative_prompt, prompt, resolution, seed. Unknown keys are rejected before the render is queued, so a typo never burns a job.

What does a Veo3.1 · Text to Video render cost?

Pricing is per render and starts at $4.32. The exact figure for your settings is returned by the model list and reserved before the job is accepted.

Is the same Seedance key valid for Veo3.1 · Text to Video?

Yes — Veo3.1 · Text to Video runs on the same account, key and wallet as Seedance. Each endpoint is enabled individually, so verify the route before you depend on it.

Why does my Veo3.1 · Text to Video job show as queued?

Video rendering is asynchronous: queued and running are normal. Keep polling until the job succeeds, fails or asks for review, and never resubmit the same Idempotency-Key expecting a second render.

More endpoints like this