# Veo 3.1 | Text to Video The most advanced video generation model by Google DeepMind. Creates realistic scenes, natural sounds, and physically consistent motion from a single text prompt. Perfect for storytelling, cinematic ads, and short films. ## API Information - **Model Slug:** veo3-1-text-to-video - **Branded URL:** https://www.eachlabs.ai/google/veo3-1/veo3-1-text-to-video - **Provider:** Google - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Veo3.1, 8s, 720p, Audio On - **Estimated Processing Time:** 85 seconds - **Last Updated:** 2026-05-04 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/veo3-1-text-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $3.20 - **Pricing Details:** Veo3.1, 8s, 720p, Audio On ### Pricing Rules | Rule | Condition | Price | | --- | --- | --- | | multiple_conditions | duration == "4" AND resolution == "720p" AND generate_audio == "false" | $0.8000 | | multiple_conditions | duration == "4" AND resolution == "720p" AND generate_audio == "true" | $1.60 | | multiple_conditions | duration == "4" AND resolution == "1080p" AND generate_audio == "false" | $0.8000 | | multiple_conditions | duration == "4" AND resolution == "1080p" AND generate_audio == "true" | $1.60 | | multiple_conditions | duration == "4" AND resolution == "4k" AND generate_audio == "false" | $1.60 | | multiple_conditions | duration == "4" AND resolution == "4k" AND generate_audio == "true" | $2.40 | | multiple_conditions | duration == "6" AND resolution == "720p" AND generate_audio == "false" | $1.20 | | multiple_conditions | duration == "6" AND resolution == "720p" AND generate_audio == "true" | $2.40 | | multiple_conditions | duration == "6" AND resolution == "1080p" AND generate_audio == "false" | $1.20 | | multiple_conditions | duration == "6" AND resolution == "1080p" AND generate_audio == "true" | $2.40 | | multiple_conditions | duration == "6" AND resolution == "4k" AND generate_audio == "false" | $2.40 | | multiple_conditions | duration == "6" AND resolution == "4k" AND generate_audio == "true" | $3.60 | | multiple_conditions | duration == "8" AND resolution == "720p" AND generate_audio == "false" | $1.60 | | multiple_conditions | duration == "8" AND resolution == "720p" AND generate_audio == "true" | $3.20 | | multiple_conditions | duration == "8" AND resolution == "1080p" AND generate_audio == "false" | $1.60 | | multiple_conditions | duration == "8" AND resolution == "1080p" AND generate_audio == "true" | $3.20 | | multiple_conditions | duration == "8" AND resolution == "4k" AND generate_audio == "false" | $3.20 | | multiple_conditions | duration == "8" AND resolution == "4k" AND generate_audio == "true" | $4.80 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt describing the video you want to generate | | aspect_ratio | string | No | 16:9 | 9:16,16:9 | The aspect ratio of the generated video. If it is set to 1:1, the video will be outpainted. | | duration | integer | No | 8 | 4,6,8 | The duration of the generated video in seconds | | negative_prompt | string | No | - | - | A negative prompt to guide the video generation | | enhance_prompt | boolean | No | true | - | Whether to enhance the video generation | | seed | integer | No | - | - | A seed to use for the video generation | | auto_fix | boolean | No | true | - | Whether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them | | resolution | string | No | 720p | 720p,1080p | The resolution of the generated video | | generate_audio | boolean | No | true | - | Whether to generate audio for the video. If false, %33 less credits will be used. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo3-1-text-to-video", "input": { "prompt": "Two-person street interview in Paris. The host holds a small microphone and casually talks with a passerby near a café terrace with the Eiffel Tower in the background. Natural daylight, lively ambient city sounds — people chatting, distant traffic, light breeze.\n\nDialogue:\nHost: “Hey! Did you catch the update?”\nPerson: “Of course — VE0 3.1 just dropped on eachlabs! You have to check it out, it’s unreal.”" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **veo3.1-text-to-video — Text to Video AI Model** veo3.1-text-to-video, Google DeepMind's most advanced text-to-video AI model, transforms detailed text prompts into cinematic videos with native audio, physically realistic motion, and up to 4K resolution. Creators and developers seeking a **Google text-to-video** solution can generate broadcast-quality clips featuring synchronized soundscapes and consistent characters, ideal for storytelling that rivals professional production. Developed as part of the Veo 3.1 family, this model excels in understanding cinematic terminology like lighting and camera movements, producing clips that extend beyond typical AI limitations for short films, ads, and social media content. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.