curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"video_url": ["https://example.com/dance.mp4"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
},
"out_task_id": "my_task_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "Transition from sunrise to sunset",
"type": "first_last_frame",
"image_url": ["https://example.com/start.jpg"],
"end_image_url": "https://example.com/end.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5"
},
"out_task_id": "my_task_123457"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": True
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "seedance2",
"params": map[string]interface{}{
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": []string{"https://example.com/character.jpg"},
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true,
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "seedance2",
"params" => array(
"prompt" => "A person dancing in a studio",
"type" => "all_reference",
"image_url" => array("https://example.com/character.jpg"),
"aspect_ratio" => "16:9",
"resolution" => "720p",
"video_length" => "5",
"generate_audio" => true
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "seedance2",
"params": [
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"code": "200",
"success": true,
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 82.5,
"created_at": "2026-04-02T08:00:00.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Seedance 2.0
Seedance 2.0 Video Generation
- Asynchronous processing mode, returns a task ID for subsequent queries
- Supports text-to-video and image-to-video (first frame, last frame, multiple reference images)
- Supports multiple aspect ratios including horizontal and vertical
- Supports audio generation
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"video_url": ["https://example.com/dance.mp4"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
},
"out_task_id": "my_task_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "Transition from sunrise to sunset",
"type": "first_last_frame",
"image_url": ["https://example.com/start.jpg"],
"end_image_url": "https://example.com/end.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5"
},
"out_task_id": "my_task_123457"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": True
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "seedance2",
"params": map[string]interface{}{
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": []string{"https://example.com/character.jpg"},
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true,
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "seedance2",
"params" => array(
"prompt" => "A person dancing in a studio",
"type" => "all_reference",
"image_url" => array("https://example.com/character.jpg"),
"aspect_ratio" => "16:9",
"resolution" => "720p",
"video_length" => "5",
"generate_audio" => true
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "seedance2",
"params": [
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"code": "200",
"success": true,
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 82.5,
"created_at": "2026-04-02T08:00:00.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
This endpoint supports two model variants with identical parameters:
seedance2— Standard versionseedance2_face— Supports uploading real person version, functionality is consistent with the standard version
Authorizations
string
required
All endpoints require authentication using a Bearer TokenGet the API Key:Visit the API Key management page to obtain your API KeyInclude in the request headers:
Authorization: Bearer YOUR_API_KEY
Body
string
required
Model NameSupports the following model variants (parameters are exactly the same, choose as needed):
seedance2— Standard versionseedance2_face— Supports uploading real human version, functionality is consistent with the standard version
object
required
Model parameters object
Show params Object Properties
Show params Object Properties
string
required
Text description for video generation, cannot be empty
string
required
Reference mode, determines how image/video parameters are used
all_reference— Intelligent reference mode:image_urlused as character/style reference images (up to 9),video_urlused as reference videos (up to 3)first_last_frame— First and last frame mode:image_urlas first frame (only 1),end_image_urlas last frame,video_urlnot supported
all_reference, first_last_framestring[]
Reference image URLs
- In
all_referencemode: up to 9 images, max 50MB each, minimum side length 300px - In
first_last_framemode: only 1 image (first frame), max 10MB, minimum side length 300px
string[]
Reference video URLsOnly supported in
all_reference mode. Up to 3; supports mp4, mov; single video duration 2-15 seconds, total length of all reference videos no more than 15 seconds; max 50MB per video; frame rate 24-60 FPS; resolutions supported are 480p, 720p; aspect ratio 0.4-2.5; width and height range 300-6000px; total pixels between 409600 and 927408Only valid in
all_reference mode, do not pass this parameter when type is first_last_framestring
Last frame image URLMax 10MB
Only valid in
first_last_frame modestring
default:"16:9"
Video aspect ratioSupported aspect ratios:
16:9- Landscape (default)9:16- Portrait1:1- Square4:3- Standard3:4- Portrait standard21:9- Ultra-wide
string
default:"720p"
Video resolutionSupported resolutions:
480p720p(default)1080p
string
default:"5"
Video length (seconds)Supported length range: 4 to 15 seconds, default 5 seconds
boolean
default:"true"
Whether to generate audio, default
truestring
required
Initiator task IDUser-defined task identifier, required
Response
string
The initiator task ID, which can be used to query the results
string
Initial status, fixed as
"pending"number
Estimated consumed credits
string
Creation time (ISO format)
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"video_url": ["https://example.com/dance.mp4"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
},
"out_task_id": "my_task_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2",
"params": {
"prompt": "Transition from sunrise to sunset",
"type": "first_last_frame",
"image_url": ["https://example.com/start.jpg"],
"end_image_url": "https://example.com/end.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5"
},
"out_task_id": "my_task_123457"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedance2",
"params": {
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": True
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "seedance2",
"params": map[string]interface{}{
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": []string{"https://example.com/character.jpg"},
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true,
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "seedance2",
"params" => array(
"prompt" => "A person dancing in a studio",
"type" => "all_reference",
"image_url" => array("https://example.com/character.jpg"),
"aspect_ratio" => "16:9",
"resolution" => "720p",
"video_length" => "5",
"generate_audio" => true
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedance2",
params: {
prompt: "A person dancing in a studio",
type: "all_reference",
image_url: ["https://example.com/character.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
video_length: "5",
generate_audio: true
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "seedance2",
"params": [
"prompt": "A person dancing in a studio",
"type": "all_reference",
"image_url": ["https://example.com/character.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"video_length": "5",
"generate_audio": true
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"seedance2\",\"params\":{\"prompt\":\"A person dancing in a studio\",\"type\":\"all_reference\",\"image_url\":[\"https://example.com/character.jpg\"],\"aspect_ratio\":\"16:9\",\"resolution\":\"720p\",\"video_length\":\"5\",\"generate_audio\":true},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"code": "200",
"success": true,
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 82.5,
"created_at": "2026-04-02T08:00:00.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
⌘I