Video Generation API
FastRouter.ai supports text-to-video and image-to-video generation across providers. This powerful API enables you to generate creative video clips from natural language prompts and optionally from image inputs — ideal for storytelling, video prototyping, explainer content, and more. For the full list of supported video models, refer to our model catalog.
Sample Videos
Using Veo 3
Using Sora 2 Pro
Endpoints
For Generation:
POST api/v1/videos
For Retrieval:
POST /api/v1/getVideoResponse
Supported Models and Parameters
To better understand which parameters are required and supported, we've broken this down into two tables: one for Image-to-Video and another for Text-to-Video. You can also refer to the model catalog for the supported parameters. For the values these parameters accept, please refer to the tables below.
Parameter Reference Table
prompt
string
Natural language description of the video scene
"A robot walking on Mars"
image
string
URL of an input image (JPG/PNG); base64 is not supported; aspect ratio must be 1:4 to 4:1
https://example.com/image.jpg
length / seconds
enum
Duration of the video in seconds
4, 5, 6, 8, 10,12
resolution
enum
Output video resolution
480p, 720p, 1080p
aspectRatio / size
enum
Width-to-height ratio of the video frame
16:9, 9:16, 4:3, 3:4, 1:1, 5:3, 3:5, 720x1280, 1280x720, 1024x1792, 1792x1024
mode
enum
Generation style/mode (if supported by the model)
std, pro
seed
number
Random seed for deterministic output (optional; useful for reproducibility)
42, 12345
generateAudio
boolean
Generate audio
true, false
Image-to-Video Models
Runway: Runway Gen-3 Turbo runway/runway-gen-3-turbo
image
prompt, length (5, 10), aspectRatio (5:3, 3:5), seed
Runway: Runway Gen-4 Turbo runway/runway-gen-4-turbo
image
prompt, length (5, 10), aspectRatio (16:9), seed
ByteDance: Seedance 1.0 Lite bytedance/seedance
image, resolution (480p, 720p, 1080p)
prompt, length (5, 10), seed
ByteDance: Seedance 1.0 Pro bytedance/seedance-pro
image, resolution (480p, 1080p)
prompt, length (5, 10), seed
Google: Google Veo 3 google/veo3
image
prompt, length (8), resolution (720p, 1080p), aspectRatio (16:9), seed, generateAudio (false)
Google: Google Veo 3 Fast google/veo3-fast
image
prompt, length (8), resolution (720p, 1080p), aspectRatio (16:9), seed, generateAudio (false)
Note: For all models requiring the image parameter, only image URLs are accepted; base64 is not supported. Supported formats include JPG, PNG, and JPEG. The image aspect ratio must be between 1:4 and 4:1.
Text-to-Video Models
Pollo: Pollo V1.6 pollo/pollo-v1-6
prompt, resolution (480p, 720p, 1080p)
length (5, 10), aspectRatio (16:9, 9:16, 4:3, 3:4, 1:1), seed
ByteDance: Seedance 1.0 Lite bytedance/seedance
prompt, resolution (480p, 720p, 1080p)
length (5, 10), seed
ByteDance: Seedance 1.0 Pro bytedance/seedance-pro
prompt, resolution (480p, 1080p)
length (5, 10), seed
Google: Google Veo 3 google/veo3
prompt
length (8), resolution (720p, 1080p), aspectRatio (16:9), seed, generateAudio (false)
Google: Google Veo 3 Fast google/veo3-fast
prompt
length (8), resolution (720p, 1080p), aspectRatio (16:9), seed, generateAudio (false)
OpenA: Sora 2 Pro openai/sora-2-pro
prompt
seconds (4, 8, 12), size (720x1280, 1280x720, 1024x1792, 1792x1024)
Veo 3 Example
Sample Request
curl --location 'https://go.fastrouter.ai/api/v1/videos' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API-KEY' \
--data '{
"model": "google/veo3",
"length": 8,
"prompt": "A casual street interview on a busy Bengaluru IT park sidewalk in the afternoon. The interviewer holds a plain, unbranded microphone and asks: [Have you heard about FastRouter. It is super cool.] Person replies: [Yeah I saw it, it'\''s also available with new Grok models and they also support Google Veo3. It'\''s crazy good.]",
"generateAudio": true
}'Sample Initial Response
You will receive a response indicating the task has been queued. The taskId is used to poll for video completion.
{
"chat_id": "fr_123",
"model": "google/veo3",
"code": "SUCCESS",
"message": "success",
"data": {
"taskId": "taskabc123",
"status": "waiting"
},
"usage": {
"chat_id": "fr_123",
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"user_key_credits_used": 6,
"credits_used": 6,
"provider": "pollo"
}
}Retrieving the Video Output
Video generation is asynchronous. Use the taskId or id from the initial response to check generation status.
curl --location 'https://go.fastrouter.ai/api/v1/getVideoResponse' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API-KEY' \
--data '{
"taskId": "taskabc123",
"model": "google/veo3"
}'Sample Completion Response
Once ready, the response will include a downloadable video URL:
{
"code": "SUCCESS",
"message": "success",
"data": {
"taskId": "taskabc123",
"generations": [
{
"id": "taskabc123",
"createdDate": "2025-07-15T08:02:27.000Z",
"updatedDate": "2025-07-15T08:04:34.000Z",
"status": "succeed",
"failMsg": "",
"url": "https://example.com/filename.mp4",
"mediaType": "video"
}
]
}
}Sora 2 Pro Example
Sample Request
curl --location 'https://go.fastrouter.ai/api/v1/videos' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API-KEY' \
--data '{
"model": "openai/sora-2-pro",
"prompt": "A chill street interview in downtown San Francisco on a sunny afternoon. The interviewer’s holding a plain, unbranded mic and goes, [Hey, quick question — have you heard about FastRouter? I've heard it's super cool.] To this, the second person grins and replies, [“Yeah, I’ve seen it! Love that they support OpenAI Sora-2. It’s honestly pretty darn good.]",
"seconds": "8",
"size": "1024x1792"
}'Sample Initial Response
You will receive a response indicating the task has been queued. The taskId is used to poll for video completion.
{
"id": "video_id",
"chat_id": "fr_ee58ee31-f7ad-4a1c-8614-85c713ee1bda",
"object": "video",
"created_at": 1760617844,
"status": "queued",
"completed_at": 0,
"expires_at": 0,
"model": "sora-2-pro",
"seconds": "8",
"size": "1024x1792",
"usage": {
"api_key_credits_used": 0,
"user_key_credits_used": 4,
"credits_used": 4,
"provider": "openai"
}
}Retrieving the Video Output
Video generation is asynchronous. Use the taskId or id from the initial response to check generation status.
curl --location 'https://go.fastrouter.ai/api/v1/getVideoResponse' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API-KEY' \
--data '{
"taskId": "video_id",
"model": "openai/sora-2-pro"
}'Sample Completion Response
Once ready, the video response will be streamed directly. In the interim, you can view the progress of the completed video:
{
"id": "video_68f0e573755081918d6f03011d59eef40940842a41bb50ea",
"chat_id": "fr_164ce324-2e11-4cd7-8dfe-a8beea9a7c37",
"object": "video",
"created_at": 1760617844,
"status": "in_progress",
"completed_at": 0,
"expires_at": 0,
"model": "sora-2-pro",
"progress": 82,
"seconds": "8",
"size": "1024x1792",
"usage": {
"api_key_credits_used": 0,
"user_key_credits_used": 0,
"credits_used": 0,
"provider": "openai"
}
}Billing & Usage
Credits used: Refer to
user_key_credits_usedin the response.Billed based on: video duration, resolution, and model used.
Transparent pricing: No hidden fees.
Last updated