Get started

Quickstart

From zero to a finished video in about five minutes.

1. Get an API key

In the Vivideo app, open Settings → More → API Keys (app.vivideo.ai/account/api-keys) and create a key. Copy it now — the full key is shown only once. Set it as an environment variable:

terminal
export VIVIDEO_API_KEY="vv_live_..."

2. Verify your account

Confirm the key works and check your plan and credit balance:

GET /v1/me
curl https://api.vivideo.ai/v1/me \
  -H "Authorization: Bearer $VIVIDEO_API_KEY"

3. Create a video

Video generation is asynchronous — you get an id back immediately. Send an Idempotency-Key so a retry never creates a duplicate:

POST /v1/videos
curl https://api.vivideo.ai/v1/videos \
  -H "Authorization: Bearer $VIVIDEO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: my-first-video-001" \
  -d '{
    "mode": "manual",
    "model": "veo31_fast",
    "prompt": "A golden retriever surfing a wave at sunset, cinematic",
    "duration_seconds": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'
201 Created
{
  "id": "9c1a7e2b40f14b7f9d3f2a6c8e5d4b21",
  "object": "video",
  "mode": "manual",
  "model": "veo31_fast",
  "status": "processing",
  "credits_charged": 16,
  "poll_interval_seconds": 5
}

4. Wait for it, then download

Poll GET /v1/videos/{id} until status is completed — then video_url is your MP4. Respect poll_interval_seconds (usually 5s):

poll until ready
curl https://api.vivideo.ai/v1/videos/VIDEO_ID \
  -H "Authorization: Bearer $VIVIDEO_API_KEY"

# → { "id": "...", "status": "completed", "video_url": "https://...mp4" }
Prefer not to poll? Register a webhook and get a signed video.completed event the moment it's done.

Next steps


Machine-readable: interactive reference · openapi.yaml · llms-api.txt. Base URL https://api.vivideo.ai.