---
title: "Create Video"
method: POST
path: "/videos/generations"
tags: ["Videos"]
---

# Create Video

`POST /videos/generations`

## Request

- Base URL: `https://platform.qubrid.com/v1`
- URL: `https://platform.qubrid.com/v1/videos/generations`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/qubrid/apis/qubrid-video-api/docs/videos/generations/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate a video using text, optional image input, optional audio input, or uploaded files.

## Request body

- VideoGenerationRequest
  - `model` string, required: The video generation model to use.
  - `prompt` string: Optional text prompt describing the video to generate.
  - `duration` integer: Duration of the generated video in seconds.
  - `resolution` string: Output video resolution.
  - `fps` integer: Frames per second for the generated video.
  - `aspect_ratio` string: Aspect ratio of the output video.
  - `image` string, nullable: Optional input image URL to guide or initialize video generation.
  - `audio` string, nullable: Optional input audio URL to include in the generated video.
  - `draft` boolean: Whether to generate a draft/preview version of the video.
  - `save_audio` boolean: Whether to retain the provided audio in the final generated video.
  - `prompt_upsampling` boolean: Whether to automatically enhance or expand the prompt before generation.

## Response `200`

Video generated successfully

- VideoGenerationResponse
  - `created` integer: Unix timestamp when the video generation request was created.
  - `data` object[]
    - `url` string: URL of the generated video.

## Other responses

- `400`: Bad request - missing required fields, invalid values, or malformed input
- `401`: Unauthorized - missing or invalid API key
- `402`: Insufficient credits to process the request
- `403`: Forbidden - authenticated but not allowed to access this model or resource
- `404`: Model not found - the specified video model does not exist or is not available
- `429`: Rate limit exceeded
- `500`: Internal server error
- `502`: Bad gateway - upstream video provider is unavailable or returned an error
- `504`: Gateway timeout - video generation job did not complete in time

## Changes

- **2026-04-13** `6528d8a2e948`: 6 breaking, 6 warning, 41 info
  - the `error` response's property type changed from `string` to `object` for status `400`
  - the `error` response's property type changed from `string` to `object` for status `401`
  - the `error` response's property type changed from `string` to `object` for status `403`
  - the `error` response's property type changed from `string` to `object` for status `404`
  - …49 more

[Operation history](https://skmtc.dev/qubrid/apis/qubrid-video-api/changes/videos/generations/post.md)

---

[API](https://skmtc.dev/qubrid/apis/qubrid-video-api.md) - [All operations](https://skmtc.dev/qubrid/apis/qubrid-video-api/llms.txt) - [OpenAPI document](https://skmtc.dev/qubrid/apis/qubrid-video-api/revisions/6528d8a2e948?raw)
