---
title: "Generate a video"
method: POST
path: "/videos/generate"
tags: ["Video"]
---

# Generate a video

`POST /videos/generate`

## Request

- Base URL: `https://api.crevio.co/v1`
- URL: `https://api.crevio.co/v1/videos/generate`
- Auth: API key in header `Authorization`

Submits an asynchronous video generation job to the fal.ai queue and returns the queued job immediately. Poll `GET /v1/jobs/{id}` or `GET /v1/videos/{id}` for status and results. Credits are charged only when the job completes successfully.

## Headers

- `Idempotency-Key` string

## Request body

- VideoGenerateRequest
  - `model` string, required: A quality tier (fast, balanced, quality) or any fal.ai video endpoint id. Prefer a tier — it tracks the best current model for that price point. Required: video bills per second, so there is no default. `GET /v1/videos/models` maps tiers to ids with live pricing.
  - `input` object, required: Model-specific input, forwarded to fal verbatim. `prompt` is required.
    - `prompt` string, required: Text prompt describing the video to generate.
    - `duration` integer: Clip length in seconds (model-dependent, e.g. 5-10).
    - `aspect_ratio` string: Aspect ratio, e.g. 16:9, 9:16, 1:1.
    - `image_url` string: Source image URL for image-to-video models.

## Response `202`

Generation job queued

- ProviderJob
  - `id` string, required
  - `object` string, required
  - `type` string, required
  - `status` 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled', required
  - `model` string, required
  - `progress` integer, required
  - `input` object, required
  - `result` object, nullable, required
  - `error` string, nullable, required
  - `error_code` string, nullable, required
  - `credits_used` integer, nullable, required
  - `provider_request_id` string, nullable, required
  - `created_at` string, date-time, required
  - `started_at` string, date-time, nullable, required
  - `completed_at` string, date-time, nullable, required

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `402`: Insufficient credits
- `422`: Validation error
- `429`: Rate limit exceeded — 600 requests per minute per credential. Retry after the number of seconds in `Retry-After`.
- `500`: Internal server error

---

[API](https://skmtc.dev/crevio/apis/crevio-api-v1.md) · [All operations](https://skmtc.dev/crevio/apis/crevio-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/crevio/apis/crevio-api-v1/revisions/2219f18ad651?raw)
