Seedance V1 Lite
curl --request POST \
--url https://whollyapi.com/api/v1/jobs/createTask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"duration": "<string>",
"resolution": "<string>",
"camera_fixed": true,
"seed": 123,
"enable_safety_checker": true,
"end_image_url": "<string>"
}
}
'import requests
url = "https://whollyapi.com/api/v1/jobs/createTask"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"duration": "<string>",
"resolution": "<string>",
"camera_fixed": True,
"seed": 123,
"enable_safety_checker": True,
"end_image_url": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
prompt: '<string>',
image_url: '<string>',
duration: '<string>',
resolution: '<string>',
camera_fixed: true,
seed: 123,
enable_safety_checker: true,
end_image_url: '<string>'
}
})
};
fetch('https://whollyapi.com/api/v1/jobs/createTask', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whollyapi.com/api/v1/jobs/createTask",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'input' => [
'prompt' => '<string>',
'image_url' => '<string>',
'duration' => '<string>',
'resolution' => '<string>',
'camera_fixed' => true,
'seed' => 123,
'enable_safety_checker' => true,
'end_image_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://whollyapi.com/api/v1/jobs/createTask"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whollyapi.com/api/v1/jobs/createTask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whollyapi.com/api/v1/jobs/createTask")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"msg": "<string>",
"data": {
"taskId": "<string>"
}
}Bytedance
Seedance V1 Lite
POST
/
api
/
v1
/
jobs
/
createTask
Seedance V1 Lite
curl --request POST \
--url https://whollyapi.com/api/v1/jobs/createTask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"duration": "<string>",
"resolution": "<string>",
"camera_fixed": true,
"seed": 123,
"enable_safety_checker": true,
"end_image_url": "<string>"
}
}
'import requests
url = "https://whollyapi.com/api/v1/jobs/createTask"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"duration": "<string>",
"resolution": "<string>",
"camera_fixed": True,
"seed": 123,
"enable_safety_checker": True,
"end_image_url": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
prompt: '<string>',
image_url: '<string>',
duration: '<string>',
resolution: '<string>',
camera_fixed: true,
seed: 123,
enable_safety_checker: true,
end_image_url: '<string>'
}
})
};
fetch('https://whollyapi.com/api/v1/jobs/createTask', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whollyapi.com/api/v1/jobs/createTask",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'input' => [
'prompt' => '<string>',
'image_url' => '<string>',
'duration' => '<string>',
'resolution' => '<string>',
'camera_fixed' => true,
'seed' => 123,
'enable_safety_checker' => true,
'end_image_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://whollyapi.com/api/v1/jobs/createTask"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whollyapi.com/api/v1/jobs/createTask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whollyapi.com/api/v1/jobs/createTask")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"input\": {\n \"prompt\": \"<string>\",\n \"image_url\": \"<string>\",\n \"duration\": \"<string>\",\n \"resolution\": \"<string>\",\n \"camera_fixed\": true,\n \"seed\": 123,\n \"enable_safety_checker\": true,\n \"end_image_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"msg": "<string>",
"data": {
"taskId": "<string>"
}
}Generate videos from a source image using the
bytedance/v1-lite-image-to-video model.
Authentication
All API requests require a Bearer Token.Authorization: Bearer YOUR_API_KEY
Create a Video Generation Task
Submit an image-to-video generation task using the endpoint below.POST /api/v1/jobs/createTask
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | The model used for video generation. |
input | object | Yes | Input parameters for the video generation task. |
string
required
Must be
bytedance/v1-lite-image-to-video.object
required
Input Parameters
Theinput object contains the parameters used to generate the video.string
required
Use
prompt to describe the video you want to generate.Maximum length: 10000 characters.string
required
The
image_url must contain the URL of an uploaded image. The value must be an uploaded file URL, not the file content itself.Supported formats:image/jpegimage/pngimage/webp
10 MBstring
Use
duration to specify the length of the generated video.Supported values:"5""10"
"5"string
Specify the resolution of the generated video.Supported values:
480p720p1080p
720pboolean
default:"false"
Whether to fix the camera position.Default:
falsenumber
Random seed to control video generation. Use -1 for random.Manimum value:
Maximum value:
Step:
-1 Maximum value:
2147483647 Step:
1Default: -1boolean
default:"true"
The safety checker is always enabled in Playground. It can only be disabled by setting false through the API.Default:
truestring
Set
end_image_url as the image displayed at the end of the videoThe end_image_url must contain the URL of an uploaded image. The value must be an uploaded file URL, not the file content itself.Supported formats:image/jpegimage/pngimage/webp
10 MBExample Request
{
"model": "bytedance/v1-lite-image-to-video",
"input": {
"prompt": "A tranquil mountain lake at golden hour, with crystal-clear water reflecting snow-capped peaks, pine trees gently swaying in the breeze, soft mist drifting across the surface, and warm sunlight illuminating the peaceful landscape.",
"image_url": "https://demo.com/example2.png",
"resolution": "720p",
"duration": "5",
"camera_fixed": false,
"seed": -1,
"enable_safety_checker":true
"end_image_url":""
}
}
Response
Successful Response
number
Response status code.
string
Response message. Contains the error description when the request fails.Example:
successobject
required
The task data object containing task id.
string
required
The unique identifier for this task.Example:
task_123456Query Task Status
After submitting a task, use the unified query endpoint to check the task progress and retrieve the generated results.Get Task Details
Check task status, monitor generation progress, and retrieve results.
Error Response
{
"code": 500,
"msg": "Server Error - An unexpected error occurred while processing the request",
"data": null
}
Response Codes
| Code | Meaning |
|---|---|
200 | Success — the request was successfully processed. |
401 | Unauthorized — authentication credentials are missing or invalid. |
402 | Insufficient Credits — the account does not have enough credits. |
404 | Not Found — the requested resource or interface does not exist. |
408 | Upstream service issue — no result has been returned for over 10 minutes. |
422 | Validation Error — request parameters failed validation. |
429 | Rate Limited — request frequency limit has been exceeded. |
433 | Request Limit — sub-key usage exceeded the limit. |
455 | Service Unavailable — system is undergoing maintenance. |
500 | Server Error — an unexpected error occurred while processing the request. |
501 | Generation Failed — content generation failed. |
505 | Feature Disabled — the requested feature is disabled. |
