---
title: "Frames to Video"
method: POST
path: "/v2/veo/frames-to-video"
tags: ["Veo V2"]
---

# Frames to Video

`POST /v2/veo/frames-to-video`

Generate video from a start image (required) and optional end image, guided by a text prompt. Returns immediately with `202 Accepted`.

### Example

```bash
curl -X POST https://genaipro.io/api/v2/veo/frames-to-video \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "start_image=@photo.jpg" \
  -F "prompt=Animate this photo with gentle motion" \
  -F "aspect_ratio=VIDEO_ASPECT_RATIO_LANDSCAPE" \
  -F "number_of_videos=1"
```

> **Rate limit:** 30 requests/minute

## Response `202`

Task accepted for processing. Returns exactly one history item representing the parent task; use its `id` to poll `GET /v2/veo/tasks/{id}`.

- object
  - `histories` VeoV2History[]
    - `id` string — Task ID (use for polling via `GET /v2/veo/tasks/{id}`)
    - `prompt` string — The prompt used for generation
    - `file_url` string — URL of the generated file (empty while processing)
    - `status` 'processing' | 'completed' | 'failed' — Task status
    - `created_at` string, date-time — Timestamp when the task was created

## Other responses

- `400` — Invalid request (missing fields, file too large, invalid format)
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/genaipro/apis/genaipro-api.md) · [All operations](https://skmtc.dev/genaipro/apis/genaipro-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/genaipro/genaipro-api/revisions/91f814eaecbd/schema)
