curl --request GET \
--url https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations', 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://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"state": "created",
"err_code": "<string>",
"payload": "<string>",
"creations": [
{
"id": "<string>",
"url": "<string>",
"cover_url": "<string>",
"watermarked_url": "<string>"
}
],
"task_id": "<string>"
}Query tasks(Vidu)
This series supports OpenAI video generation formats (see the link Video generation Sora compatible formats).
Vidu official video generation API; the public path follows the Vidu official specification.
viduq3-turbo, viduq2, and vidu2.0 support text-to-video, image-to-video, first-and-last-frame video generation, or reference-to-video according to their respective capabilities. They can also be accessed through the /v1/videos Sora compatible format.
Vidu Q4: vidu-q4 is fixed at 720p, and vidu-q4-540p is fixed at 540p. Supports generating videos from 3 to 16 seconds. At least 1 image is required, with up to 15 reference images supported. Reference generation can include up to 3 MP3 audio clips, each 3 to 12 seconds long and up to 50 MB. Pure text-to-video, specified first and last frames, and reference videos are not supported. Multiple images are used as joint references and do not indicate first or last frame positions. Tasks can be created via POST /v1/videos, POST /api/v3/contents/generations/tasks, or the Vidu formats POST /ent/v2/img2video and POST /ent/v2/reference2video. For the unified endpoint, mode=reference_images is recommended; use mode=reference_material when including audio. Reference audio can use audio_urls. The Seedance format can also use the audio_url field of the standard content; the audio Boolean field controls audio generation and is used separately from the reference audio URL list. The resolution must match the model name.
Provides the public request skeleton, task query structure, and recommended validation template for the Vidu official video generation format, while the public path retains the Vidu official endpoint format.
Supported models: viduq3-turbo, viduq2, vidu2.0
Unified request fields:
model(string, required): Public model name for Vidu. Vidu Q4 supports only image-to-video and reference-to-video with images; Q3/Q2/V2 retain their respective capabilities.prompt(string, optional): Video generation prompt; required for text-to-video, and passed as needed for image-to-video, start-and-end-frame, and reference-based video generation.images(array[string], optional): Image input. Single-image image-to-video uses 1 image; Vidu Q4 reference generation uses 1–15 images, which are used as joint references. For older models, use first-and-last-frame images and reference image counts according to their respective capabilities.videos(array[string], optional): Video subject input is available only according to the capabilities of older models; Vidu Q4 does not support reference videos.subjects(array[object], optional): Subject-library format input for reference-based video generation; may include fields such as subject name, image, video, or voice timbre.duration(integer, optional): Video duration, in seconds.viduq3-turbocommonly uses 5 seconds; set it according to the official range.resolution(string, optional): Output resolution, common values are540p,720p, and1080p.aspect_ratio(string, optional): Output aspect ratio, commonly used for text-to-video/reference-based video generation, such as16:9,9:16, and1:1.seed(integer, optional): Random seed.movement_amplitude(string, optional): Motion intensity, common values areauto,small,medium, andlarge.audio(boolean, optional): Whether to enable direct audio-video output.audio_urls(array[string], optional): Reference audio for Vidu Q4. Supports up to 3 MP3 files, each 3–12 seconds and no larger than 50 MB; separate from theaudioBoolean switch.off_peak(boolean, optional): Whether to use staggered generation.watermark(boolean, optional): Whether to add a watermark.
Common model/mode differences:
Vidu 文生视频: Supports the viduq3-turbo, viduq2, and vidu2.0 models; official-format text-to-video.Vidu 图生视频: Supports the viduq3-turbo, viduq2, and vidu2.0 models; official-format single-image image-to-video.Vidu 首尾帧生视频: Supports the viduq3-turbo, viduq2, and vidu2.0 models; official-format first-and-last-frame video generation using two images.Vidu 参考生视频: Supports the viduq3-turbo, viduq2, and vidu2.0 models; official-format multi-reference image-to-video.
curl --request GET \
--url https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations', 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://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/ent/v2/tasks/{task_id}/creations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"state": "created",
"err_code": "<string>",
"payload": "<string>",
"creations": [
{
"id": "<string>",
"url": "<string>",
"cover_url": "<string>",
"watermarked_url": "<string>"
}
],
"task_id": "<string>"
}Authorizations
Use Bearer Token authentication.
Format: Authorization: Bearer sk-xxxxxx
Path Parameters
Task ID, from the task_id returned when creating the task.
Response
Query successful
Task ID.
Task status. Common values: created, queueing, processing, success, failed.
created, queueing, processing, success, failed The task ID returned when creating a task, used to query the task.
