AIFreeAPI Logo

OpenAI Image Generation API Example: 今使える JavaScript・Python・cURL

A
11 min readAI開発

今すぐ動く OpenAI image generation API example を探しているなら、2026年3月時点で最も安全なデフォルトは gpt-image-1.5 を使った Images API です。この記事では JavaScript、Python、cURL の実用サンプルをまとめ、どのタイミングで Responses API に切り替えるべきか、そして access や verification が原因でサンプルが失敗する典型パターンも整理します。

OpenAI image generation API のルート図。Images API の直接ルートと Responses ルートを示す

OpenAI image generation API example を探しているなら、最初に選ぶべきは Images APIgpt-image-1.5 です。2026年3月23日 時点では、これがシンプルな画像生成リクエストを最短で通すための最も安全なルートです。Responses API に切り替えるのは、画像生成がより大きなマルチモーダル workflow の中で tool として振る舞う場合だけで十分です。

このトピックが必要以上にややこしく見えるのは、答えが複数のページに分散しているからです。メインの image generation guide は直接生成と編集を扱い、image_generation tool guideresponses.create() 経由の流れを扱います。Images API reference は生の endpoint と request shape を確認するためのページです。1ページだけ読むと、動きそうなコードを間違った surface に持ち込んでしまいがちです。

いちばん安全な順番はシンプルです。まずは直接生成リクエストを1本通し、返ってきた base64 画像を保存するところまで確認する。そのあとで edits、transparent background、compression、streaming を追加します。会話状態や tools、より広いマルチモーダル orchestration が本当に必要になったら、その時点で Responses を選べば十分です。

最短で動く OpenAI image generation API サンプル

Images API の直接ルートと Responses の image_generation tool ルートを比較する判断マトリクス
Images API の直接ルートと Responses の image_generation tool ルートを比較する判断マトリクス

このキーワードでは、最初の正解は Images API です。現在の endpoint は POST /v1/images/generations で、今の新規サンプルの中心に置くべき model ID は gpt-image-1.5 です。画像を1枚生成して保存したいだけなら、最初から assistant workflow に持ち込む必要はありません。

覚えやすい流れは次の4つです。

  • prompt を送る
  • base64 画像を受け取る
  • decode する
  • ローカルに保存する

JavaScript の最小サンプル:

js
import fs from "fs"; import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, }); const result = await client.images.generate({ model: "gpt-image-1.5", prompt: "Create a clean editorial illustration of a robot camera operator in a bright studio", size: "1024x1024", quality: "medium", }); const imageBase64 = result.data[0].b64_json; const imageBuffer = Buffer.from(imageBase64, "base64"); fs.writeFileSync("openai-image-example.png", imageBuffer);

Python 版:

python
from openai import OpenAI import base64 client = OpenAI() result = client.images.generate( model="gpt-image-1.5", prompt="Create a clean editorial illustration of a robot camera operator in a bright studio", size="1024x1024", quality="medium", ) image_base64 = result.data[0].b64_json image_bytes = base64.b64decode(image_base64) with open("openai-image-example.png", "wb") as f: f.write(image_bytes)

cURL 版:

bash
curl https://api.openai.com/v1/images/generations \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-1.5", "prompt": "Create a clean editorial illustration of a robot camera operator in a bright studio", "size": "1024x1024", "quality": "medium" }' \ | jq -r '.data[0].b64_json' \ | base64 --decode > openai-image-example.png

環境によっては base64 --decode が使えないので、その場合は OS に合ったフラグに置き換えてください。macOS なら通常 base64 -D です。

このサンプルが良いのは、今の direct contract を最小で理解できるからです。tool orchestration を早い段階で持ち込まずに済みます。もうひとつ古い記事が落としがちなポイントは、GPT image models はデフォルトで hosted URL ではなく base64 image data を返すことです。だから、役に立つ最初のサンプルは request だけで終わらず、decode と保存まで示す必要があります。

Images API と Responses はどう使い分けるべきか

画像を生成・編集するだけなら Images API のほうが理解しやすく、デバッグも簡単です。テキスト、tools、画像、会話状態をまとめて扱う assistant を作っているなら Responses のほうが自然です。

状況先に選ぶべきルート理由
画像を1枚生成して保存したいImages APIもっとも短くてわかりやすい
1枚以上の画像を編集したいImages APIedit flow と input_fidelity がここにある
シンプルな backend endpoint が欲しいImages API層が少なく、失敗点も少ない
画像生成が大きな multimodal workflow の tool であるResponses API画像が tool として自然に収まる
1回のリクエストで画像以外の reasoning も必要Responses APIorchestration がしやすい

ここで大事なのは、Responses が新しそうだからといって最初のデフォルトにしないことです。マルチモーダル orchestration が本当に必要な時だけ Responses を選べば十分です。そうでないなら、最初のサンプルを無駄に難しくしているだけです。

もう1つよくあるミスは、Responses の model フィールドに gpt-image-1.5 を入れてしまうことです。tool guide が示している通り、image_generation tool の背後で GPT Image が使われ、トップレベルの model には gpt-5 のような reasoning model を置きます。

この違いはデバッグの仕方も変えます。Images API なら access、payload、file write をまず見ればよいですが、Responses では tool invocation や output parsing も確認対象になります。だからこのページでは、最初の working example を direct Images API に固定しています。

より広いルーティングを見たいなら、日本語版の OpenAI Image API 教程 を続けて読むとつながりやすいです。

コードの前に access と model ID を確認する

OpenAI image API の setup gate 図。API key、対応 tier、organization verification、current model checks を示す
OpenAI image API の setup gate 図。API key、対応 tier、organization verification、current model checks を示す

「サンプルが壊れている」と見える問題の多くは、実際には code ではなく access 側です。2026年3月23日 時点で GPT Image 1.5 の model page は Free not supported を示し、Tier 1 starting at 100,000 TPM and 5 IPM と書いています。つまり、コードが正しくても model を呼べないケースがあります。

さらに、API model availability by usage tier and verification status では gpt-image-1gpt-image-1-mini が tiers 1 through 5 の API ユーザー向けに利用可能で、ただし一部 access は organization verification に依存すると説明されています。見た目は正しいサンプルでも失敗するなら、まず account surface を疑うべきです。

確認の順番は次の通りです。

  1. 最新 SDK を入れる。
  2. OPENAI_API_KEY を確認する。
  3. account が対応 usage tier にあるか確認する。
  4. active organization を確認する。
  5. current model name を確認する。
  6. そのあとで prompt や parameters を調整する。

Node.js:

bash
npm install openai

Python:

bash
pip install openai

verification を終えたのに not verified のようなエラーが残る場合、API Organization Verification最大30分待つ、API key を作り直す、セッションを更新する、正しい organization を確認するという順を案内しています。これは周辺情報ではなく、このキーワードで実際によく踏む分岐です。

実務的なルールはシンプルです。まず access、次に request shape、最後に prompt quality を疑う。これを逆にすると、不要な試行錯誤が増えます。

API を変えずに edits と output controls を追加する

OpenAI image output controls のボード。edit fidelity、transparency、size、quality、output format、compression を Images API 上で示す
OpenAI image output controls のボード。edit fidelity、transparency、size、quality、output format、compression を Images API 上で示す

ベースのサンプルが動いたあとも、すぐに Responses に移る必要はありません。image edits、transparent background、output tuning は、そのまま direct Images API の範囲にあります。

js
import fs from "fs"; import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, }); const result = await client.images.edit({ model: "gpt-image-1.5", image: [ fs.createReadStream("product-photo.png"), fs.createReadStream("logo.png"), ], prompt: "Add the logo to the product box as if it were printed on the packaging.", input_fidelity: "high", }); const imageBase64 = result.data[0].b64_json; fs.writeFileSync("product-with-logo.png", Buffer.from(imageBase64, "base64"));

ここでの input_fidelity: "high" は、入力画像の細部保持が重要な時に役立ちますが、image-token cost は増えます。最初のテストで何でも高 fidelity にするのではなく、本当に必要な場面で使うのが安全です。

同じ direct API で次の調整もできます。

  • size: 最初のテストは 1024x1024
  • quality: 最初の検証なら medium
  • background: GPT image models の png / webp で透明背景が使える
  • output_format: ファイルサイズや latency を気にするなら jpegwebp
  • output_compression: JPEG / WebP の圧縮率を制御したい時

最初のリクエストは「退屈」なくらいがちょうどいいです。正方形、medium quality、単一出力なら、access、payload、decode、file write のどこで失敗しているかが見えやすくなります。そのあとで transparency や高品質出力、多画像 edits を足していけば十分です。

コストも先に把握したいなら、日本語版の OpenAI image generation API pricing guide を合わせて見ると判断しやすくなります。

Responses に切り替えるべきタイミング

「画像を1枚作る」から、「assistant が reasoning を行い、tools を呼び、時々画像も返す」へ進んだら、その時点で Responses が正しい abstraction になります。

js
import fs from "fs"; import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, }); const response = await client.responses.create({ model: "gpt-5", input: "Generate a transparent sticker-style icon of a paper airplane for a travel app", tools: [ { type: "image_generation", background: "transparent", quality: "high", }, ], }); const imageBase64 = response.output .filter((item) => item.type === "image_generation_call") .map((item) => item.result)[0]; fs.writeFileSync("paper-airplane.png", Buffer.from(imageBase64, "base64"));

このサンプルは正しいですが、解いている問題が違います。画像生成がより広い interaction の一部になる時に強いのであって、「まずは1本動くサンプルが欲しい」という用途には過剰です。

Responses を選ぶべきなのは次のような時です。

  • 1回の呼び出しでテキストも画像も返る可能性がある
  • 画像生成が assistant workflow の tool である
  • model に、いつ画像を生成するか判断させたい
  • 画像ステップが他の tools と並んで存在する

逆に direct Images API に留まるべきなのは、

  • 最短の onboarding が欲しい
  • backend endpoint が1つの image task だけを担当する
  • generation / editing をデバッグしている
  • チームに渡す最小サンプルをきれいにしておきたい

Troubleshooting: 古い記事が省略しがちな失敗パターン

1つ目は、古い model name をそのまま使ってしまうことです。この query では GPT Image 1 や DALL·E 時代の内容がまだ混ざります。今日の新しい direct example なら、最初に置くべき名前は gpt-image-1.5 です。

2つ目は、Responses の modelgpt-image-1.5 を直接入れることです。tool guide が示している通り、GPT Image は image_generation tool の背後にあり、トップレベル modelgpt-5 のような mainline model です。

3つ目は、access error を code error と勘違いすることです。availability、permission、verification 系のエラーなら、まず tier と organization verification を見てください。そこを詳しく追いたいなら、日本語版の verification guide があります。

4つ目は、古い DALL·E の出力イメージを期待してしまうことです。GPT image models では direct Images API のデフォルトは base64 なので、decode-and-save が必要です。

5つ目は、最初のリクエストで全部やろうとすることです。portrait size、transparency、high quality、multi-image edits、assistant orchestration を最初から全部入れるより、まず direct path が通ることを確認したほうが速いです。

SDK と cURL の比較も有効です。両方が同じように失敗するなら、問題はアプリコードではなく access、model naming、organization context であることが多いです。cURL は通るのにアプリだけ失敗するなら、environment variables や request parsing、file write を疑うべきです。

もう一つ実務で効くのは、最初に成功した direct request を team の baseline として残しておくことです。prompt、model、size、quality、保存した出力ファイルを一緒に固定しておくと、その後に transparency や edits を足した時も、どこで壊れたかをすぐ切り分けられます。

FAQ

新しい例では gpt-image-1.5gpt-image-1 のどちらを使うべきですか?

新しい direct example なら gpt-image-1.5 です。公式の GPT Image 1.5 page はこれを latest image generation model として扱っています。gpt-image-1 は migration や legacy comparison ではまだ意味がありますが、最初の default ではありません。

なぜ direct Images API は URL ではなく base64 を返すのですか?

GPT image models がデフォルトで base64 image data を返すからです。DALL·E 時代の hosted URL 前提を引きずっている古い記事が混乱を増やしています。

transparent PNG や image edits のために Responses は必要ですか?

不要です。direct Images API は edits、input_fidelity、transparent background、output_formatoutput_compression をすでにサポートしています。Responses が必要なのは orchestration が理由になる時です。

最終的なおすすめ

openai image generation api example という検索に対する今の正直な答えは、page one が見せるよりもずっとシンプルです。まず Images API を使い、gpt-image-1.5 を選び、最初の request は小さく正方形に保ち、返ってきた base64 image を実際に保存してください。これが 2026年3月23日 時点でいちばん速く動くルートです。

Responses image_generation に切り替えるのは、画像がより大きな workflow の tool になった時だけで十分です。この境界をはっきり保てば、今のドキュメント群で起きる混乱の大半は最初の一歩で避けられます。

Nano Banana Pro

4K画像80%OFF

Google Gemini 3 Pro Image · AI画像生成

10万+の開発者にサービス提供
$0.24/枚
$0.05/枚
期間限定·企業レベル安定性·Alipay/WeChat
Gemini 3
ネイティブモデル
ダイレクト接続
20ms遅延
4K超高解像度
2048px
30秒生成
超高速
|@laozhang_cn|$0.05獲得

200+ AI Models API

Jan 2026
GPT-5.2Claude 4.5Gemini 3Grok 4+195
Image
80% OFF
gemini-3-pro-image$0.05

GPT-Image-1.5 · Flux

Video
80% OFF
Veo3 · Sora2$0.15/gen
16% OFF5-Min📊 99.9% SLA👥 100K+