curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance2_fast",
"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_fast",
"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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": 67.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 Fast
Seedance 2.0 Fast Video Generation
- Asynchronous processing mode, returns 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 landscape and portrait
- Fast version with quicker generation speed
- 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_fast",
"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_fast",
"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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": 67.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_fast— Standard fast versionseedance2_fast_face— Supports uploading real human version, features identical to the fast 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 identical, choose as needed):
seedance2_fast— Standard fast versionseedance2_fast_face— Supports uploading real-person version, functions same as fast 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— Smart 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_urlis the first frame (only 1),end_image_urlis the last frame,video_urlnot supported
all_reference, first_last_framestring[]
Reference image URLs
all_referencemode: up to 9 images, max 50MB each, minimum side length 300pxfirst_last_framemode: only 1 image (first frame), max 10MB, minimum side length 300px
string[]
Reference video URLsSupported only in
all_reference mode. Maximum 3 videos; supports mp4, mov; single video length 2-15 seconds, total length of all reference videos not exceeding 15 seconds; single video max 50MB; frame rate 24-60 FPS; resolutions supported: 480p, 720p; aspect ratio 0.4~2.5; width and height range 300-6000px; total pixels between 409600 and 927408Only effective in
all_reference mode, do not pass this parameter when type is first_last_framestring
Last frame image URLMax 10MB
Only effective 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)
string
default:"5"
Video length (seconds)Supported range: 4 to 15 seconds, default 5 seconds
boolean
default:"true"
Whether to generate audio, default
truestring
required
Client task IDUser-defined task identifier, required
Response
string
Originator task ID, can be used to query results
string
Initial status, fixed to
"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_fast",
"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_fast",
"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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_fast",
"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_fast",
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_fast",
"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_fast\",\"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": 67.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