KindRouter Docs
General Description
Header Parameters
For every request endpoint, the following information must be included in the request header.
| Parameter |
Type |
Required |
Example value |
| Authorization |
string |
Yes |
Bearer <token> |
| Content-Type |
string |
Yes |
application/json |
To get your <token>:
1. Log in from the homepage.
2. Click on "Profile" in the upper-right corner.
3. Your <token> will be displayed there.
Submitting a Video Generation Request
Credit consumption
| Resolution |
Credit consumption / Duration (seconds) |
| 720p |
4 |
If the Credit consumption / Duration (seconds) is 6, and your video duration is 5 seconds, the total credits consumed will be 6 × 5 = 30 .
Based on a rate of $15 per 1,000 credits, this would cost $0.45, which is approximately $0.09 per second.
EndPoint
https://kindrouter.com/api/v1/videos
Request Method
POST
Request Parameters
| Parameter |
Type |
Required |
Description |
| model |
string |
Yes |
The model to use for video generation (e.g., bytedance/seedance-2.0-mini) |
| prompt |
string |
Yes |
Text description of the video to generate |
| duration |
integer |
Yes |
Duration of the generated video in seconds, 4-15 |
| resolution |
string |
Yes |
Resolution of the output video (e.g., 720p) |
| aspect_ratio |
string |
Yes |
Aspect ratio of the output video (e.g., 16:9, 9:16) |
| frame_images |
array |
No |
Images for first/last frames (image-to-video) |
| input_references |
array |
No |
Reference images for style guidance (reference-to-video) |
| callback_url |
string |
No |
URL to receive a webhook notification when the job completes. Overrides the workspace-level default callback
URL if set. Must be HTTPS
|
Using Images
There are two ways to provide images, each triggering a different generation mode:
frame_images: Specifies first or last frame images for image-to-video generation. Each entry must include a frame_type of first_frame or last_frame.
input_references: Provides style or content reference images for reference-to-video generation. The model uses these as visual guidance rather than exact frames.
If both fields are provided, frame_images takes precedence and the request is treated as image-to-video.
Image-to-Video (frame_images)
{
"model": "bytedance/seedance-2.0-mini",
"prompt": "A character walking through a forest",
"frame_images": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/first-frame.png"
},
"frame_type": "first_frame"
}
],
"resolution": "1080p"
}
Reference-to-Video (input_references)
{
"model": "bytedance/seedance-2.0-mini",
"prompt": "A colossal solar flare beside a planet",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/style-ref.png"
}
}
],
"resolution": "1080p"
}
Response Format
{
"id": "abc123",
"polling_url": "https://openrouter.ai/api/v1/videos/abc123",
"status": "pending"
}
Job Statuses
Status Description
pending The job has been submitted and is queued
in_progress The video is being generated
completed The video is ready to download
failed The generation failed (check the error field)
Poll Response
EndPoint
https://kindrouter.com/api/v1/videos/{id}
Request Method
GET