Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "grok-video-1.5-preview",
    "prompt": "Animate this product photo into a cinematic commercial video with a subtle camera push-in",
    "images": ["https://example.com/product.jpg"],
    "seconds": "10",
    "aspect_ratio": "16:9"
  }'
{
  "id": "video_abc123def456",
  "object": "generation.task",
  "model": "grok-video-1.5-preview",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.toapis.com/llms.txt

Use this file to discover all available pages before exploring further.

  • Image-to-video only. Text-to-video is not supported.
  • Requires exactly one public reference image URL.
  • Supports 10 and 15 second videos.
  • Async task API: poll video task status with the returned task ID.
Do not pass base64 image data. Upload local files with the Upload Image API, then pass the returned public URL in images.

Authorizations

Authorization
string
required
All API requests require Bearer Token authentication.
Authorization: Bearer YOUR_API_KEY

Body

model
string
default:"grok-video-1.5-preview"
required
Use grok-video-1.5-preview.
prompt
string
required
Describe the motion, camera movement, and visual direction for the reference image.
images
string[]
required
Pass exactly one public image URL.
  • Minimum: 1
  • Maximum: 1
  • Supported URL schemes: http://, https://
seconds
string
default:"10"
Video duration.Supported values: "10", "15"
aspect_ratio
string
default:"16:9"
Video aspect ratio.Supported values: 16:9, 9:16, 3:2, 2:3, 1:1

Pricing

DurationPrice
10s$0.10 / request
15s$0.15 / request

Response

id
string
Task identifier for polling video status.
object
string
Object type, always generation.task.
model
string
Model name used for the task.
status
string
Task status: queued, in_progress, completed, or failed.

Create a video task

curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "grok-video-1.5-preview",
    "prompt": "Animate this product photo into a cinematic commercial video with a subtle camera push-in",
    "images": ["https://example.com/product.jpg"],
    "seconds": "10",
    "aspect_ratio": "16:9"
  }'
{
  "id": "video_abc123def456",
  "object": "generation.task",
  "model": "grok-video-1.5-preview",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}

Query task status

Use the returned id with Video Task Status.