Get generation result
curl --request GET \
--url https://open.skills.video/api/v1/generation/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://open.skills.video/api/v1/generation/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://open.skills.video/api/v1/generation/{id}', 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://open.skills.video/api/v1/generation/{id}",
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://open.skills.video/api/v1/generation/{id}"
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://open.skills.video/api/v1/generation/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://open.skills.video/api/v1/generation/{id}")
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_bodyimport Foundation
let url = URL(string: "https://open.skills.video/api/v1/generation/{id}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Authorization": "Bearer <token>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self)){
"id": "gen_123",
"status": "COMPLETED",
"input": {
"prompt": "a cat",
"aspect_ratio": "1:1",
"resolution": "1024x1024",
"n": 1
},
"data": {
"type": "image",
"n": 1,
"actual_prompt": "a cat",
"images": [
{
"url": "https://cdn.example.com/output/cat.png",
"file_name": "cat.png",
"content_type": "image/png",
"width": 1024,
"height": 1024
}
],
"image": {
"url": "https://cdn.example.com/output/cat.png",
"file_name": "cat.png",
"content_type": "image/png",
"width": 1024,
"height": 1024
}
},
"usage": {
"total": 20,
"subscription": 20,
"permanent": 0
}
}{
"error": "INVALID_INPUT",
"code": "INVALID_INPUT",
"message": "Missing request body"
}{
"error": "UNAUTHORIZED",
"code": "UNAUTHORIZED",
"message": "Unauthorized"
}{
"error": "FORBIDDEN",
"code": "FORBIDDEN",
"message": "Forbidden."
}{
"error": "PREDICTION_NOT_FOUND",
"code": "PREDICTION_NOT_FOUND",
"message": "Prediction not found."
}{
"error": "INVALID_INPUT",
"code": "INVALID_INPUT",
"message": "'prompt' parameter is required"
}Generation Result
Get generation result
GET
/
generation
/
{id}
Get generation result
curl --request GET \
--url https://open.skills.video/api/v1/generation/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://open.skills.video/api/v1/generation/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://open.skills.video/api/v1/generation/{id}', 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://open.skills.video/api/v1/generation/{id}",
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://open.skills.video/api/v1/generation/{id}"
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://open.skills.video/api/v1/generation/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://open.skills.video/api/v1/generation/{id}")
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_bodyimport Foundation
let url = URL(string: "https://open.skills.video/api/v1/generation/{id}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Authorization": "Bearer <token>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self)){
"id": "gen_123",
"status": "COMPLETED",
"input": {
"prompt": "a cat",
"aspect_ratio": "1:1",
"resolution": "1024x1024",
"n": 1
},
"data": {
"type": "image",
"n": 1,
"actual_prompt": "a cat",
"images": [
{
"url": "https://cdn.example.com/output/cat.png",
"file_name": "cat.png",
"content_type": "image/png",
"width": 1024,
"height": 1024
}
],
"image": {
"url": "https://cdn.example.com/output/cat.png",
"file_name": "cat.png",
"content_type": "image/png",
"width": 1024,
"height": 1024
}
},
"usage": {
"total": 20,
"subscription": 20,
"permanent": 0
}
}{
"error": "INVALID_INPUT",
"code": "INVALID_INPUT",
"message": "Missing request body"
}{
"error": "UNAUTHORIZED",
"code": "UNAUTHORIZED",
"message": "Unauthorized"
}{
"error": "FORBIDDEN",
"code": "FORBIDDEN",
"message": "Forbidden."
}{
"error": "PREDICTION_NOT_FOUND",
"code": "PREDICTION_NOT_FOUND",
"message": "Prediction not found."
}{
"error": "INVALID_INPUT",
"code": "INVALID_INPUT",
"message": "'prompt' parameter is required"
}Fetch the async generation result by generation task id.
Authorizations
API Key for API endpoints
Path Parameters
Generation task ID
Response
Generation result. When status is FAILED, data is null and the response includes sanitized code and message fields.
Generation id.
Queue status
Available options:
IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED, CANCELED Normalized input payload for the generation task.
- Text Image To Video
- Frame To Video
- Reference To Video
- Text Image To Video
- Frame To Video
- Reference To Video
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Text To Video
- Image To Video
- Reference To Video
- Edit Video
- Input
- Text Image To Video
- Motion Control
- TryOnRequest
- Text To Video
- Image To Video
- Input
- Frame To Video
- Reference To Video
- Video To Video
- Video Reference To Video
- Input
- Text Image To Video
- Frame To Video
- Reference To Video
- Video To Video
- Video Reference To Video
- Input
- Input
- Text/Image
- Audio To Video
- Extend Video
- Retake Video
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Text/Image
- Frames
- Extend Video
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Input
- Text/Image
- Frames
- Reference
- Edit Video
- Input
- Input
- Input
- Input
- Input
- Input
- Text/Image
- Extend Video
- Edit Video
- Input
- Input
- Input
- MiniMax Speech 2.8 HD Input
- Qwen 3 TTS 1.7B Input
- ElevenLabs Eleven v3 Input
- MiniMax Speech 2.8 Turbo Input
Show child attributes
Show child attributes
data
Output · string<uri>Option 2 · objectOutput · string<uri>Option 4 · objectOutput · string<uri>Option 6 · objectOutput · string<uri>Option 8 · objectOutput · string<uri>Option 10 · objectOutput · string<uri>Option 12 · objectOutput · string<uri>Option 14 · objectOutput · string<uri>Option 16 · objectOutput · string<uri>Option 18 · objectOutput · string<uri>Option 20 · objectOutput · string<uri>Option 22 · objectOutput · string<uri>Option 24 · objectOutput · string<uri>Option 26 · objectOutput · string<uri>Option 28 · objectOutput · string<uri>Option 30 · objectOutput · string<uri>Option 32 · objectOutput · objectOption 34 · objectOption 35 · objectOption 36 · objectOutput · objectOption 38 · objectTryOnOutput · objectOption 40 · objectOutput · objectOption 42 · objectOption 43 · objectOption 44 · objectOutput · objectOption 46 · objectOption 47 · objectOption 48 · objectOutput · objectOption 50 · objectOutput · objectOption 52 · objectOption 53 · objectOption 54 · objectOutput · objectOption 56 · objectOption 57 · objectOption 58 · objectOption 59 · objectOption 60 · objectOutput · objectOption 62 · objectOutput · objectOption 64 · objectOutput · objectOption 66 · objectOutput · objectOption 68 · objectOutput · string<uri>Option 70 · objectOutput · string<uri>Option 72 · objectOutput · string<uri>[]Option 74 · objectOutput · string<uri>[]Option 76 · objectOutput · string<uri>[]Option 78 · objectOutput · string<uri>Option 80 · objectOutput · string<uri>Option 82 · objectOption 83 · objectOption 84 · objectOption 85 · objectOption 86 · objectOutput · objectOption 88 · objectOutput · objectOption 90 · objectOutput · objectOption 92 · objectOutput · string<uri>Option 94 · objectOutput · string<uri>Option 96 · objectOutput · string<uri>Option 98 · objectOutput · objectOption 100 · objectOutput · objectOption 102 · objectOutput · objectOption 104 · objectOutput · objectOption 106 · objectOutput · objectOption 108 · objectOption 109 · objectOption 110 · objectOption 111 · objectOption 112 · objectOption 113 · objectOption 114 · objectOutput · objectOption 116 · objectOutput · objectOption 118 · objectOutput · objectOption 120 · objectOutput · objectOption 122 · objectOutput · objectOption 124 · objectOutput · string<uri>Option 126 · objectOutput · objectOption 128 · objectOutput · objectOption 130 · objectOutput · objectOption 132 · objectOption 133 · objectOption 134 · objectMiniMax Speech 2.8 HD Output · objectOption 136 · objectQwen 3 TTS 1.7B Output · objectOption 138 · objectElevenLabs Eleven v3 Output · objectOption 140 · objectMiniMax Speech 2.8 Turbo Output · objectOption 142 · object
required
Model-specific output payload. This field is null until the generation completes. Inspect the endpoint-specific output schema and response examples for concrete fields.
Credit usage breakdown for the request
Show child attributes
Show child attributes
Machine-readable generation error code. Present when status is FAILED.
Sanitized human-readable failure message. Present when status is FAILED.