Generate Video

Generate videos from text prompts or images using state-of-the-art AI models.

Endpoint

POST
/api/v1/jobs

Create a generate_video job

Supported Models

ModelCreditsNotes
veo3175Default. High quality text-to-video
kling-3.1300Premium quality, longer generation
seedance150Fast, stylized output
seedance-2250Fal.ai Seedance 2.0; supports text, single image, and multiple reference images
grok-imagine150Creative and imaginative output

Input Parameters

Request Body

NameTypeDescription
workflowrequiredstring"generate_video"
input.promptrequiredstringText description of the video to generate
input.modelstringDefault: veo3Model to use
input.aspect_ratiostringDefault: 16:9Aspect ratio (e.g., '16:9', '9:16', '1:1')
input.image_urlstringImage URL for image-to-video generation
input.image_urlsstring[]Reference image URLs for Seedance 2 reference-to-video; upload files first with /api/v1/upload
input.durationnumberTarget duration in seconds
webhookUrlstringURL to receive completion notification

Example Request

Create Video Job

curl -X POST https://vydra.ai/api/v1/jobs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow": "generate_video",
    "input": {
      "prompt": "A golden retriever running on a beach at sunset, cinematic 4K",
      "model": "veo3",
      "aspect_ratio": "16:9"
    }
  }'

Seedance 2 Reference Images

// 1. Upload one or more reference images
const formData = new FormData();
formData.append('file', imageFile);

const uploadRes = await fetch('https://vydra.ai/api/v1/upload', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
  body: formData
});
const { url } = await uploadRes.json();

// 2. Create a Seedance 2 generate_video job
const jobRes = await fetch('https://vydra.ai/api/v1/jobs', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    workflow: 'generate_video',
    input: {
      prompt: '15-second vertical product video with smooth camera motion',
      model: 'seedance-2',
      image_urls: [url],
      aspect_ratio: '9:16',
      duration: 15
    }
  })
});
const job = await jobRes.json();

Example Response

Response (201 Created)json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "running",
  "workflow": "generate_video",
  "creditsCharged": 175,
  "createdAt": "2026-01-26T12:00:00.000Z",
  "_links": {
    "self": "https://vydra.ai/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000",
    "status": "https://vydra.ai/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000"
  }
}

Image-to-Video

Provide an image_url to animate a static image:

Image-to-Video Request Bodyjson
{
  "workflow": "generate_video",
  "input": {
    "prompt": "The character slowly turns and smiles",
    "image_url": "https://example.com/character.png",
    "model": "veo3"
  }
}

Image Requirements

The image URL must be publicly accessible. Supported formats: PNG, JPEG, WebP.