# 새 생성 작업마다 한 번만 만듭니다. 같은 작업을 재시도할 때는 원래 값을 유지하세요.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 payload를 재사용하세요.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 body를 재사용하세요.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
GPT-Image-2.5 Ext
GPT-Image-2.5 Ext 이미지 생성
- gpt-image-2.5-ext를 사용하며 version으로 Flare 또는 Sunburst 선택
- 비동기 처리 방식으로, 제출 후 작업 ID를 사용해 결과 조회
- 텍스트 기반 이미지 생성 및 최대 16개의 참조 이미지를 활용한 이미지 생성 지원
- 10가지 화면 비율과 auto, 1K / 2K / 4K 해상도 지원
- 요청당 1~4개 이미지를 생성하며 버전, 해상도, 실제 제공된 이미지 수에 따라 과금
POST
/
v1
/
images
/
generations
# 새 생성 작업마다 한 번만 만듭니다. 같은 작업을 재시도할 때는 원래 값을 유지하세요.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 payload를 재사용하세요.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 body를 재사용하세요.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
# 새 생성 작업마다 한 번만 만듭니다. 같은 작업을 재시도할 때는 원래 값을 유지하세요.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 payload를 재사용하세요.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// 새 생성 작업마다 한 번만 만듭니다. 재시도할 때는 원래 headers와 body를 재사용하세요.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "비 오는 날 창가의 아늑한 독서 공간, 따뜻한 탁상 조명, 영화 같은 라이팅",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
인증 및 요청 헤더
string
필수
생성 및 작업 조회 엔드포인트는 플랫폼 API Key를 이용한 Bearer Token 인증을 사용합니다. API Key 관리 페이지에서 키를 발급받으세요.작업을 조회할 때는 동일한 플랫폼 사용자에게 속한 API Key를 사용하세요.
Authorization: Bearer YOUR_API_KEY
string
필수
제출 시
application/json을 사용합니다. 텍스트 기반 생성과 참조 이미지 기반 생성 모두 JSON 요청 본문을 전송합니다.버전 선택
| 표시 이름 | model | version |
|---|---|---|
| Flare(기본값) | gpt-image-2.5-ext | flare |
| Sunburst | gpt-image-2.5-ext | sunburst |
요청 매개변수
string
필수
고정값:
gpt-image-2.5-ext.string
기본값:"flare"
모델 버전입니다.
flare, sunburst 중에서 선택합니다.string
필수
이미지 생성 또는 편집에 사용할 프롬프트입니다. 앞뒤 공백을 제거한 후에도 내용이 있어야 합니다.참조 이미지 기반 생성에서는 유지할 내용과 변경할 내용을 설명할 수 있습니다.
string
기본값:"1K"
출력 해상도 등급입니다.
1K, 2K, 4K 중에서 선택합니다.string
기본값:"auto"
출력 화면 비율입니다.
auto 또는 아래 10가지 비율 중에서 선택합니다.1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9.integer
기본값:"1"
요청당 생성할 이미지 수입니다.
1~4 사이의 정수여야 합니다.string[]
최대
16개의 참조 이미지 배열입니다. 참조 이미지를 생략하면 텍스트 기반으로 생성하고, 포함하면 참조 이미지 기반으로 생성합니다. 참조 이미지에는 추가 요금이 부과되지 않습니다.지원하는 입력 형식:- 접근 가능한 이미지 URL
- Data URL:
data:image/...;base64,...
사용 예제
다음은POST /v1/images/generations의 JSON 요청 본문입니다. 인증 및 권장 헤더는 위 설명을 따릅니다. 참조 이미지 예제 URL을 실제 접근 가능한 이미지 URL로 바꾸세요.
텍스트 기반 이미지 생성
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "미래 도시의 공중 정원, 이른 아침의 옅은 안개, 건축 사진",
"size": "16:9",
"resolution": "2K",
"n": 1
}
Sunburst로 참조 이미지 기반 생성
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "상품 본체와 포장 문구를 유지하고 배경을 부드러운 미색 촬영 스튜디오로 바꾼 뒤 자연스러운 그림자를 추가해 주세요",
"size": "1:1",
"resolution": "2K",
"n": 1,
"image_urls": [
"https://example.com/product.png"
]
}
여러 참조 이미지 및 여러 이미지 출력
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "첫 번째 이미지의 상품을 주제로 삼고 두 번째 이미지의 배경을 참고하여 가로형 광고 이미지를 생성해 주세요",
"size": "16:9",
"resolution": "2K",
"n": 2,
"image_urls": [
"https://example.com/product.png",
"https://example.com/set.jpg"
]
}
자동 화면 비율 및 4K 해상도
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "미니멀한 상품 출시 행사 메인 비주얼, 이미지 내용에 맞는 적절한 구도와 화면 비율 선택",
"size": "auto",
"resolution": "4K",
"n": 1
}
작업 결과 조회
작업 ID를 사용해 작업 조회 엔드포인트를 호출합니다.curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01EXAMPLE \
--header 'Authorization: Bearer <token>'
작업 성공
아래 작업 ID, 시간, URL 및 금액은 응답 구조를 설명하기 위한 예시이며 실제 작업이나 가격을 나타내지 않습니다.{
"code": 200,
"data": {
"id": "task_01EXAMPLE",
"status": "completed",
"progress": 100,
"created": 1788912000,
"completed": 1788912045,
"actual_time": 45,
"estimated_time": 300,
"cost": 0.2,
"credits_cost": 2,
"result": {
"images": [
{
"url": [
"https://example.com/output-1.png",
"https://example.com/output-2.png"
],
"expires_at": 1788998445
}
]
}
}
}
응답
integer
응답 상태 코드입니다. 통합 형식의 제출 성공 시
200입니다.string
문제 해결에 사용하는 이 요청의 식별자입니다.