メインコンテンツへスキップ
POST
/
v1
/
images
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "窓辺に座って夕日を見つめる茶トラ猫、水彩画風",
    "n": 1,
    "size": "16:9",
    "resolution": "2k"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "窓辺に座って夕日を見つめる茶トラ猫、水彩画風",
    "n": 1,
    "size": "16:9",
    "resolution": "2k"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA"
    }
  ]
}

Authorizations

Authorization
string
必須
すべてのエンドポイントは Bearer Token による認証が必要ですAPI キーの取得:API キー管理ページ にアクセスして API キーを取得してください使用時はリクエストヘッダーに以下を追加:
Authorization: Bearer YOUR_API_KEY

Body

model
string
デフォルト:"gpt-image-2"
必須
画像生成モデル名gpt-image-2 に固定
prompt
string
必須
画像生成のテキスト記述
  • 日本語・英語・中国語をサポート、詳細な記述を推奨
  • 送信前にプラットフォームのセンシティブワード / セーフティレビューを通過します。違反内容は即座にエラーを返します
n
integer
デフォルト:"1"
生成する画像の枚数範囲:1
必ず数値(例:1)を入力してください。引用符で囲まないでください
size
string
デフォルト:"1:1"
画像生成の比率以下の比率をサポート、auto を渡すとサーバー側で適切な比率を自動選択します:
sizeタイプ
auto自動
1:1正方形
3:2
2:3
4:3
3:4
5:4
4:5
16:9
9:16
2:1
1:2
3:1
1:3
21:9
9:21
1881x836 / 887x1774 のようなピクセルサイズも直接指定できます。
sizeauto を指定した場合、デフォルトの比率は 1:1 です。
resolution
string
デフォルト:"1k"
出力解像度の段階選択肢:1k / 2k / 4ksize × resolution → 実際のピクセル対応:
size1k2k4k
1:11024×1024 / 1254×12542048×20482880×2880
3:21536×10242048×13603520×2336
2:31024×15361360×20482336×3520
4:31024×7682048×15363312×2480
3:4768×10241536×20482480×3312
5:41280×1024 / 1448×10862560×20483216×2576
4:51024×1280 / 1122×14022048×25602576×3216
16:91536×864 / 1672×9412048×11523840×2160
9:16864×1536 / 941×16721152×20482160×3840
2:12048×1024 / 1774×8872688×13443840×1920
1:21024×2048 / 887×17741344×26881920×3840
3:11881×836 / 1536×5123072×10243840×1280
1:3887×1774 / 512×15361024×30721280×3840
21:92016×864 / 1915×8212688×11523840×1648
9:21864×2016 / 821×19151152×26881648×3840
4K は上記 15 種類の比率をサポートします。表内のピクセルサイズを size で直接指定することもできます。
image_urls
array
参照画像配列(OpenAI 標準フィールド)。渡すと画像から画像モードに切り替わります
その他の OpenAI 標準フィールド(response_formatqualitystyle など)は現在サポートされておらず、無視されます。タスク結果は url のみを返します。base64 が必要な場合はご自身でダウンロードして変換してください。
official_fallback
boolean
デフォルト:"false"
公式チャネルをフォールバックとして使用するかどうか
  • false:使用しない(デフォルト)
  • true:公式チャネルを使用

使用シナリオ例

テキストから画像(最小リクエスト)
{
  "model": "gpt-image-2",
  "prompt": "窓辺に座って夕日を見つめる茶トラ猫、水彩画風"
}
テキストから画像(比率指定 + 2K)
{
  "model": "gpt-image-2",
  "prompt": "a corgi astronaut on the moon, cinematic, 8k",
  "size": "16:9",
  "resolution": "2k"
}
テキストから画像(4K 出力)
{
  "model": "gpt-image-2",
  "prompt": "星空の下の古城",
  "size": "16:9",
  "resolution": "4k"
}
画像から画像(参照 = URL)
{
  "model": "gpt-image-2",
  "prompt": "この写真を水彩画風に変換",
  "image_urls": [
    "https://example.com/photo.jpg"
  ]
}
画像から画像(参照 = base64)
{
  "model": "gpt-image-2",
  "prompt": "この写真を水彩画風に変換",
  "image_urls": [
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ]
}
画像から画像(複数参照融合、URL + base64 混在)
{
  "model": "gpt-image-2",
  "prompt": "この 2 枚の写真を 1 枚のポスターに融合",
  "size": "4:3",
  "resolution": "2k",
  "image_urls": [
    "https://example.com/photo-a.jpg",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ]
}

Response

code
integer
レスポンスステータスコード
data
array
レスポンスデータ配列

タスク結果のクエリ

提出成功後に task_id が返されます。GET /v1/tasks/{task_id} でタスク状態をポーリングしてください。詳細は タスククエリ API を参照。

成功レスポンス例

{
  "code": 200,
  "data": {
    "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
    "status": "completed",
    "progress": 100,
    "created": 1776748674,
    "completed": 1776748726,
    "actual_time": 52,
    "cost": 0.05279,
    "estimated_time": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/xxxxxxxx-gpt_image_2_task_xxx_0.png"
          ],
          "expires_at": 1776835126
        }
      ]
    }
  }
}
画像の取得:data.result.images[0].url[0]

タスクステータス

ステータス意味
submitted提出済み
processing上流で処理中
completed成功、result.images 利用可能
failed失敗、error.message を確認

ポーリングの推奨事項

  • 初回クエリの遅延:提出後 10~20 秒待ってから最初のクエリを実行
  • クエリ間隔:3~5 秒推奨。ミリ秒単位のポーリングは避けてください
  • タイムアウトの目安:1 枚通常 3060 秒で完了(実測 actual_time 4453s)
  • バッチクエリ:複数タスクを同時にクエリする場合は POST /v1/tasks/batch を使用、ボディ {"task_ids": ["task_xxx", "task_yyy"]}

注意事項

  1. 非同期処理:提出後に task_id が返ります。/v1/tasks/{task_id} をポーリングして最終画像 URL を取得
  2. コンテンツレビューprompt は先にレビューされ、違反は即拒否 & 課金なし
  3. 結果 URL:プラットフォームが上流の一時署名リンクを自社 R2 オブジェクトストレージにミラーリング、返されるのは安定リンクでクライアントから直接アクセス可能
  4. URL 有効期限:レスポンスの expires_at = completed + 24h はビジネス層のヒントフィールド。早めにダウンロードまたは自社 CDN に転送してください
  5. 比率の競合:比率は size フィールドでのみ指定することを推奨。prompt での重複記述は上流の解釈の競合を招くため避けてください
  6. 課金規則:解像度段階(1K / 2K / 4K)に応じて課金、失敗・レビュー拒否は課金なし
  7. 4K 対応比率:上記 15 種類の比率はいずれも 4K 対応。対応するピクセルサイズを size で直接指定することもできます
  8. タスクの保持task_id はデータベースにデフォルトで数日間保持されます(TASK_RETENTION_DAYS で設定)。期限切れのクエリは「タスクが存在しないか期限切れ」を返します