RunAPI Vidu API
The Vidu API from RunAPI — 4 operation(s) for vidu.
The Vidu API from RunAPI — 4 operation(s) for vidu.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/runapi:runapi-vidu-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: RunAPI Vidu API
version: v1
description: Create and retrieve AI media tasks, or use compatible LLM protocol endpoints.
servers:
- url: https://runapi.ai
security:
- bearerAuth: []
tags:
- name: Vidu
paths:
/api/v1/vidu/image_to_video:
post:
tags:
- Vidu
summary: Vidu Image-to-Video
description: Create an asynchronous task through the Vidu image to video endpoint.
operationId: task_endpoint_vidu_image_to_video
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
model:
type: string
description: Vidu Q4 image-to-video model.
const: vidu-q4-image-to-video
first_frame_image_url:
type: string
description: HTTP(S) URL of a JPG, JPEG, PNG or WEBP first frame, up to 50 MB. The provider validates the remote file.
prompt:
type: string
maxLength: 20000
description: Optional video description, up to 20,000 characters.
duration_seconds:
type: integer
maximum: 16
minimum: 3
default: 5
description: Video duration in seconds.
output_resolution:
type: string
enum:
- 540p
- 720p
- 1080p
- 2k
- 4k
default: 720p
description: Output video resolution.
audio:
type: boolean
default: true
description: Generate synchronized audio. False produces a silent video.
callback_url:
type: string
description: RunAPI customer callback URL for the terminal task result.
additionalProperties: false
required:
- model
- first_frame_image_url
responses:
'202':
description: Create acceptance
content:
application/json:
schema:
type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
task_replayed:
type: boolean
unevaluatedProperties: false
'400':
description: Invalid request
content:
application/json:
schema:
oneOf:
- type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
- type: object
required:
- error
- errors
properties:
error:
type: string
description: Human-readable validation summary.
errors:
type: object
description: Validation messages keyed by public request field, with an array of human-readable strings for each field.
additionalProperties:
type: array
items:
type: string
unevaluatedProperties: false
'401':
description: Authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'402':
description: Insufficient balance
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'409':
description: Request conflict
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'429':
description: Api token credit limit exceeded or Rate limited
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'503':
description: Service unavailable
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'504':
description: Timeout error
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/vidu/image_to_video/{id}:
get:
tags:
- Vidu
summary: Retrieve Vidu Image-to-Video task
description: Create an asynchronous task through the Vidu image to video endpoint.
operationId: task_endpoint_vidu_image_to_video_retrieve
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Polling processing or Polling completed or Polling failed
content:
application/json:
schema:
oneOf:
- type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
unevaluatedProperties: false
- type: object
required:
- id
- status
- videos
- usage
properties:
id:
type: string
status:
type: string
enum:
- completed
videos:
type: array
items:
type: object
required:
- url
properties:
url:
type: string
x-runapi-generated-media: true
unevaluatedProperties: false
usage:
type: object
properties:
cost:
type: number
unevaluatedProperties: false
unevaluatedProperties: false
- type: object
required:
- id
- status
- error
properties:
id:
type: string
status:
type: string
enum:
- failed
error:
type: string
unevaluatedProperties: false
'401':
description: Polling authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'404':
description: Task not found
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/vidu/reference_to_video:
post:
tags:
- Vidu
summary: Vidu Reference-to-Video
description: Create an asynchronous task through the Vidu reference to video endpoint.
operationId: task_endpoint_vidu_reference_to_video
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
model:
type: string
description: Vidu Q4 reference-to-video model.
const: vidu-q4-reference-to-video
prompt:
type: string
maxLength: 20000
minLength: 1
description: Video description, up to 20,000 characters.
reference_image_urls:
type: array
items:
type: string
maxItems: 15
minItems: 1
description: Ordered HTTP(S) URLs of 1 to 15 JPG, JPEG, PNG or WEBP reference images. The provider validates the remote files.
reference_audio_urls:
type: array
items:
type: string
maxItems: 3
description: Up to 3 HTTP(S) URLs of MP3 references, each 3 to 12 seconds and up to 50 MB. The provider validates the remote files.
aspect_ratio:
type: string
enum:
- '16:9'
- '9:16'
- '1:1'
- '4:3'
- '3:4'
default: '16:9'
description: Output video aspect ratio.
duration_seconds:
type: integer
maximum: 16
minimum: 3
default: 5
description: Video duration in seconds.
output_resolution:
type: string
enum:
- 540p
- 720p
- 1080p
- 2k
- 4k
default: 720p
description: Output video resolution.
audio:
type: boolean
default: true
description: Generate synchronized audio. False produces a silent video.
callback_url:
type: string
description: RunAPI customer callback URL for the terminal task result.
additionalProperties: false
required:
- model
- prompt
- reference_image_urls
responses:
'202':
description: Create acceptance
content:
application/json:
schema:
type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
task_replayed:
type: boolean
unevaluatedProperties: false
'400':
description: Invalid request
content:
application/json:
schema:
oneOf:
- type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
- type: object
required:
- error
- errors
properties:
error:
type: string
description: Human-readable validation summary.
errors:
type: object
description: Validation messages keyed by public request field, with an array of human-readable strings for each field.
additionalProperties:
type: array
items:
type: string
unevaluatedProperties: false
'401':
description: Authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'402':
description: Insufficient balance
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'409':
description: Request conflict
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'429':
description: Api token credit limit exceeded or Rate limited
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'503':
description: Service unavailable
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'504':
description: Timeout error
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/vidu/reference_to_video/{id}:
get:
tags:
- Vidu
summary: Retrieve Vidu Reference-to-Video task
description: Create an asynchronous task through the Vidu reference to video endpoint.
operationId: task_endpoint_vidu_reference_to_video_retrieve
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Polling processing or Polling completed or Polling failed
content:
application/json:
schema:
oneOf:
- type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
unevaluatedProperties: false
- type: object
required:
- id
- status
- videos
- usage
properties:
id:
type: string
status:
type: string
enum:
- completed
videos:
type: array
items:
type: object
required:
- url
properties:
url:
type: string
x-runapi-generated-media: true
unevaluatedProperties: false
usage:
type: object
properties:
cost:
type: number
unevaluatedProperties: false
unevaluatedProperties: false
- type: object
required:
- id
- status
- error
properties:
id:
type: string
status:
type: string
enum:
- failed
error:
type: string
unevaluatedProperties: false
'401':
description: Polling authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'404':
description: Task not found
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API token