Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Veo3.1-quality-official",
    "prompt": "A dolphin leaping through crystal blue ocean waters, splashing water droplets, sunlight glistening on the surface",
    "duration": 8,
    "size": "16:9",
    "resolution": "1080p",
    "metadata": {
      "generateAudio": true,
      "negativePrompt": "blurry, low quality"
    }
  }'
{
  "id": "video_01K8SGYNNNVBQTXNR4MM964S7K",
  "object": "generation.task",
  "model": "Veo3.1-quality-official",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}
  • Asynchronous processing mode, returns a task ID for subsequent status queries
  • Direct connection to Google Vertex AI, supporting all native Veo parameters
  • Supports text-to-video, image-to-video, and keyframe interpolation generation modes
  • Generated video links are valid for 24 hours, please save them promptly
Important Change: For better performance and cost control, we no longer support passing base64 image data directly in image_urls. Please use the Upload Image endpoint to upload images first, then use the returned URL in this API.

Authorizations

Authorization
string
required
All endpoints require Bearer Token authenticationGet API Key: Visit the API Key Management page to obtain your API KeyAdd to request headers:
Authorization: Bearer YOUR_API_KEY

Body

model
string
default:"Veo3.1-quality-official"
required
Video generation model nameAvailable models:
  • Veo3.1-quality-official - High-quality generation model, ideal for final production
  • Veo3.1-fast-official - Fast generation model, ideal for quick previews and iteration
Example: "Veo3.1-quality-official"
prompt
string
required
Text description for video generation
duration
integer
Video duration in secondsSupported values:
  • 4 - 4 seconds
  • 6 - 6 seconds
  • 8 - 8 seconds (default)
size
string
Video aspect ratioSupported formats:
  • 16:9 (landscape, default)
  • 9:16 (portrait)
resolution
string
Video resolutionSupported values:
  • 720p (default)
  • 1080p
image_urls
string[]
First frame reference image for image-to-video generation. The video will begin from this image. Only the first URL in the array is used.⚠️ Only URL format is supported (base64 is no longer supported)
  • Publicly accessible image URLs (http:// or https://)
  • Use the Upload Image endpoint to upload local images and get URLs
Limits:
  • Maximum file size: 10MB
  • Supported formats: .jpeg, .jpg, .png, .webp
image_urls and metadata.referenceImages cannot be used together. If both are provided, image_urls (first frame) takes priority and referenceImages will be ignored.
metadata
object
Veo3 Official specific extension parameters

Response

id
string
Unique task identifier for querying task status
object
string
Object type, always generation.task
model
string
Model name used
status
string
Task status
  • queued - Queued for processing
  • in_progress - Processing
  • completed - Successfully completed
  • failed - Failed
progress
integer
Task progress percentage (0-100)
created_at
integer
Task creation timestamp (Unix timestamp)
metadata
object
Task metadata
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Veo3.1-quality-official",
    "prompt": "A dolphin leaping through crystal blue ocean waters, splashing water droplets, sunlight glistening on the surface",
    "duration": 8,
    "size": "16:9",
    "resolution": "1080p",
    "metadata": {
      "generateAudio": true,
      "negativePrompt": "blurry, low quality"
    }
  }'
{
  "id": "video_01K8SGYNNNVBQTXNR4MM964S7K",
  "object": "generation.task",
  "model": "Veo3.1-quality-official",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}