# 新しい生成操作ごとに一度だけ作成します。同じ操作の再試行では元の値を保持してください。
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 回のリクエストで 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 回のリクエストで生成する画像数。
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": "1 枚目の商品の画像を主役にし、2 枚目の背景を参考にして、横長の広告画像を生成する",
"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
トラブルシューティングに使用する、このリクエストの識別子。