curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"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: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
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": "seedream_v5_pro_layerize",
"params": map[string]interface{}{
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요.",
},
"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.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "seedream_v5_pro_layerize",
"params" => [
"image_url" => "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size" => "auto",
"prompt" => "영어로 이름과 설명을 반환하세요."
],
"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_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
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")!
let payload: [String: Any] = [
"model": "seedream_v5_pro_layerize",
"params": [
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
] as [String: Any],
"out_task_id": "my_task_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
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"": ""seedream_v5_pro_layerize"",
""params"": {
""image_url"": ""https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png"",
""image_size"": ""auto"",
""prompt"": ""영어로 이름과 설명을 반환하세요.""
},
""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);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{"
"\"model\":\"seedream_v5_pro_layerize\","
"\"params\":{"
"\"image_url\":\"https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png\","
"\"image_size\":\"auto\","
"\"prompt\":\"영어로 이름과 설명을 반환하세요.\""
"},"
"\"out_task_id\":\"my_task_123456\""
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
'model': 'seedream_v5_pro_layerize',
'params': {
'image_url': 'https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png',
'image_size': 'auto',
'prompt': '영어로 이름과 설명을 반환하세요.'
},
'out_task_id': 'my_task_123456'
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "seedream_v5_pro_layerize",
params = list(
image_url = "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size = "auto",
prompt = "영어로 이름과 설명을 반환하세요."
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 0,
"created_at": "2026-08-12T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "요청 매개변수가 유효하지 않습니다",
"ok": false
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인하세요"
}
}
{
"error": {
"code": 433,
"message": "계정 잔액이 부족합니다, 충전 후 다시 시도하세요"
}
}
{
"error": {
"code": 500,
"message": "서버 내부 오류입니다, 잠시 후 다시 시도하세요"
}
}
Seedream 5.0 Pro Layerize
Seedream 5.0 Pro Layerize 레이어 분해
- 비동기 처리 모드, 후속 조회를 위해 작업 ID 반환
- 한 장의 이미지를 여러 개의 독립적으로 편집 가능한 투명 PNG 레이어로 분해
- 각 레이어에는 이름, 설명, z_index 및 bounding_box가 포함됨
- 후불 결제 모드: 제출 시 잔액을 검증하고, 작업 완료 후 실제 산출물 기준으로 정산
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": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"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: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
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": "seedream_v5_pro_layerize",
"params": map[string]interface{}{
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요.",
},
"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.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "seedream_v5_pro_layerize",
"params" => [
"image_url" => "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size" => "auto",
"prompt" => "영어로 이름과 설명을 반환하세요."
],
"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_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
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")!
let payload: [String: Any] = [
"model": "seedream_v5_pro_layerize",
"params": [
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
] as [String: Any],
"out_task_id": "my_task_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
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"": ""seedream_v5_pro_layerize"",
""params"": {
""image_url"": ""https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png"",
""image_size"": ""auto"",
""prompt"": ""영어로 이름과 설명을 반환하세요.""
},
""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);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{"
"\"model\":\"seedream_v5_pro_layerize\","
"\"params\":{"
"\"image_url\":\"https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png\","
"\"image_size\":\"auto\","
"\"prompt\":\"영어로 이름과 설명을 반환하세요.\""
"},"
"\"out_task_id\":\"my_task_123456\""
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
'model': 'seedream_v5_pro_layerize',
'params': {
'image_url': 'https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png',
'image_size': 'auto',
'prompt': '영어로 이름과 설명을 반환하세요.'
},
'out_task_id': 'my_task_123456'
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "seedream_v5_pro_layerize",
params = list(
image_url = "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size = "auto",
prompt = "영어로 이름과 설명을 반환하세요."
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 0,
"created_at": "2026-08-12T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "요청 매개변수가 유효하지 않습니다",
"ok": false
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인하세요"
}
}
{
"error": {
"code": 433,
"message": "계정 잔액이 부족합니다, 충전 후 다시 시도하세요"
}
}
{
"error": {
"code": 500,
"message": "서버 내부 오류입니다, 잠시 후 다시 시도하세요"
}
}
Authorizations
string
필수
모든 인터페이스는 인증에 Bearer Token을 사용해야 합니다.API Key 가져오기:API Key 관리 페이지에 접속하여 API Key를 가져오세요.사용할 때 요청 헤더에 다음을 추가하세요:
Authorization: Bearer YOUR_API_KEY
Body
string
필수
모델 이름고정값:
"seedream_v5_pro_layerize"object
필수
모델 파라미터 객체
표시 params 객체 속성
표시 params 객체 속성
string
필수
분해할 원본 이미지 URL
- 필수이며, 1장의 이미지만 전달할 수 있습니다
- 다음 두 가지 형식을 지원합니다:
- 공개적으로 접근 가능한 URL
- Base64 인코딩 형식
- 반드시 완전한 Data URI 형식을 사용해야 합니다:
data:image/{형식};base64,{base64데이터} - 지원되는 이미지 형식: jpeg, png, webp
- 예:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABg... - ⚠️ 주의: 반드시
data:image/jpeg;base64,접두사 부분을 포함해야 하며, base64 이미지 크기는 10MB를 초과할 수 없습니다
- 반드시 완전한 Data URI 형식을 사용해야 합니다:
- 이미지의 최소 크기는 ≥ 300px이어야 합니다
string
텍스트 프롬프트(선택 사항)레이어 이름 지정 및 설명 생성을 위한 언어를 지정하는 데 사용할 수 있습니다. 예를 들어
Return name and description in english.를 입력하면 레이어 이름과 설명이 영어로 반환됩니다.입력하지 않으면 기본 언어를 사용합니다.string
기본값:"auto"
출력 해상도 단계
auto- 자동 선택(기본값)auto_1K- 1K 해상도auto_1.5K- 1.5K 해상도auto_2K- 2K 해상도
string
기본값:"standard"
프롬프트 강화 모드(API에서만 사용 가능)
standard- 표준 모드(기본값)fast- 빠른 모드
string
작업 완료 후 콜백 주소
object
사용자 정의 메타데이터, 원래대로 반환
string
필수
요청 측 작업 ID사용자가 정의한 작업 식별자, 필수
Response
string
요청 발신자 작업 ID, 결과 조회에 사용할 수 있습니다
string
초기 상태, 고정값은
"pending"입니다number
예상 소모 포인트
string
생성 시간(ISO 형식)
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"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: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
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": "seedream_v5_pro_layerize",
"params": map[string]interface{}{
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요.",
},
"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.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "seedream_v5_pro_layerize",
"params": {
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
},
"out_task_id": "my_task_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "seedream_v5_pro_layerize",
"params" => [
"image_url" => "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size" => "auto",
"prompt" => "영어로 이름과 설명을 반환하세요."
],
"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_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "seedream_v5_pro_layerize",
params: {
image_url: "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size: "auto",
prompt: "영어로 이름과 설명을 반환하세요."
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
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")!
let payload: [String: Any] = [
"model": "seedream_v5_pro_layerize",
"params": [
"image_url": "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
"image_size": "auto",
"prompt": "영어로 이름과 설명을 반환하세요."
] as [String: Any],
"out_task_id": "my_task_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
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"": ""seedream_v5_pro_layerize"",
""params"": {
""image_url"": ""https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png"",
""image_size"": ""auto"",
""prompt"": ""영어로 이름과 설명을 반환하세요.""
},
""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);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{"
"\"model\":\"seedream_v5_pro_layerize\","
"\"params\":{"
"\"image_url\":\"https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png\","
"\"image_size\":\"auto\","
"\"prompt\":\"영어로 이름과 설명을 반환하세요.\""
"},"
"\"out_task_id\":\"my_task_123456\""
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
'model': 'seedream_v5_pro_layerize',
'params': {
'image_url': 'https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png',
'image_size': 'auto',
'prompt': '영어로 이름과 설명을 반환하세요.'
},
'out_task_id': 'my_task_123456'
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "seedream_v5_pro_layerize",
params = list(
image_url = "https://static.aireiter.com/tmp/seedream_v5_pro_layerize/20260811/qSgcBvY4mLLuR_XPBEKfU.png",
image_size = "auto",
prompt = "영어로 이름과 설명을 반환하세요."
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 0,
"created_at": "2026-08-12T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "요청 매개변수가 유효하지 않습니다",
"ok": false
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인하세요"
}
}
{
"error": {
"code": 433,
"message": "계정 잔액이 부족합니다, 충전 후 다시 시도하세요"
}
}
{
"error": {
"code": 500,
"message": "서버 내부 오류입니다, 잠시 후 다시 시도하세요"
}
}
작업 결과 조회
작업 제출 후,POST /api/openapi/query 인터페이스를 사용하여 작업 상태를 폴링합니다. 작업이 완료되면, output 필드가 레이어 목록을 반환합니다.
curl --request POST \
--url https://aireiter.com/api/openapi/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"out_task_id": "my_task_123456"
}'
조회 응답 - 레이어 출력 구조
작업이 완료되면,output은 레이어 객체 배열이며, 각 레이어에는 url과 metadata가 포함됩니다:
array
레이어 목록, 각 요소는 하나의 레이어 객체
표시 레이어 객체 속성
표시 레이어 객체 속성
string
해당 레이어의 투명 PNG 이미지 URL
object
레이어 메타데이터
표시 metadata 속성
표시 metadata 속성
string
고정값
"layer", 이것이 레이어 출력임을 식별합니다number
레이어 계층 인덱스
z_index = 0: 하위 레이어(재구성된 전체 배경 이미지),bounding_box는nullz_index ≥ 1: 전경 레이어, 뒤에서 앞으로의 순서로 정렬됨
object | null
string | null
레이어 이름(예:
"Sky background", "Moss platform")string | null
레이어 설명(예:
"Soft light blue sky with scattered fluffy white clouds")number
실제 사용된 크레딧
조회 응답 예시
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "completed",
"created_at": "2026-08-12T06:03:28.000Z",
"completed_at": "2026-08-12T06:05:41.000Z",
"credits_used": 81,
"output": [
{
"url": "https://static.aireiter.com/content/model-seo/seedream-v5-pro-layerize/layer-0.png",
"metadata": {
"kind": "layer",
"z_index": 0,
"bounding_box": null,
"name": null,
"description": null
}
},
{
"url": "https://static.aireiter.com/content/model-seo/seedream-v5-pro-layerize/layer-1.png",
"metadata": {
"kind": "layer",
"z_index": 1,
"bounding_box": {
"absolute": [0, 142, 928, 535],
"normalized": [0, 115, 999, 433]
},
"name": "Sky background",
"description": "Soft light blue sky with scattered fluffy white clouds"
}
},
{
"url": "https://static.aireiter.com/content/model-seo/seedream-v5-pro-layerize/layer-2.png",
"metadata": {
"kind": "layer",
"z_index": 2,
"bounding_box": {
"absolute": [761, 1075, 849, 1144],
"normalized": [820, 873, 914, 928]
},
"name": "Water and bubbles",
"description": "Clear calm water surface with transparent floating water droplets and bubbles"
}
},
{
"url": "https://static.aireiter.com/content/model-seo/seedream-v5-pro-layerize/layer-3.png",
"metadata": {
"kind": "layer",
"z_index": 3,
"bounding_box": {
"absolute": [28, 962, 887, 1141],
"normalized": [30, 781, 955, 925]
},
"name": "Moss platform",
"description": "Lush green moss growing above the water surface"
}
}
]
}
}
위 예시는 4개 레이어만 보여주며, 실제로는 2–17개의 레이어가 반환됩니다.
z_index = 0은 하위 배경 이미지이며, 나머지는 계층 순서대로 뒤에서 앞으로 정렬됩니다.