ApiframeApiframe Docs
Video GenerationVeo

Veo 3.1

Google Veo 3.1 — advanced video generation with audio, reference images, and last-frame control.

Use in Apiframe Studio

POST /v2/videos/generatemodel: "veo-3.1"

Google Veo 3.1 offers the full suite of capabilities: audio generation, resolution control, negative prompts, reference images for style consistency, and last-frame control for precise endings.

See Video Generation overview for common request fields, response format, and error codes.

Model-specific parameters

ParameterTypeDefaultDescription
veoParams.durationinteger8Video duration in seconds: 4, 6, or 8
veoParams.aspect_ratiostringAspect ratio in "W:H" format (e.g. "16:9")
veoParams.seedintegerRandom seed for reproducibility
veoParams.imagestringURL of an input image for image-to-video
veoParams.resolutionstringOutput resolution: "720p" or "1080p"
veoParams.generate_audiobooleantrueWhether to generate audio along with the video
veoParams.negative_promptstringThings to avoid in the video (max 2,000 chars)
veoParams.last_framestringURL of an image to use as the last frame
veoParams.reference_imagesstring[]Up to 3 reference image URLs for style guidance

Credit cost

VariantCredits
4s5
4s-audio10
6s8
6s-audio15
8s10
8s-audio20

Code examples

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a timelapse of a flower blooming in a garden",
    "model": "veo-3.1",
    "veoParams": {
      "duration": 8,
      "generate_audio": true,
      "resolution": "1080p",
      "reference_images": ["https://example.com/garden-style.jpg"]
    }
  }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "a timelapse of a flower blooming in a garden",
        "model": "veo-3.1",
        "veoParams": {
            "duration": 8,
            "generate_audio": True,
            "resolution": "1080p",
            "reference_images": ["https://example.com/garden-style.jpg"],
        },
    },
)
print(response.json())
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: "a timelapse of a flower blooming in a garden",
    model: "veo-3.1",
    veoParams: {
      duration: 8,
      generate_audio: true,
      resolution: "1080p",
      reference_images: ["https://example.com/garden-style.jpg"],
    },
  }),
});
console.log(await response.json());

Try it

POST/v2/videos/generateTry it

On this page