Nano Banana Pro APIドキュメント
コードからNano Banana Proを呼び出すために必要な情報をすべて掲載しています。ベースURLはhttps://cheapergen.com/api/v1です。まずプレイグラウンドでお試しください。
コーディングエージェントを使いますか?
これをClaude Code、Cursor、Codex、または任意のコーディングエージェントに貼り付けてください。プロジェクトにAPIを追加し、キーをCHEAPERGEN_API_KEYに保存して、支払いが発生する前に無料見積もりでテストします。
Add Nano Banana Pro (CheaperGen endpoint google/ nano-banana-pro/ text-to-image) to this project by following https:/ / cheapergen.com/ agents/ integrate.md認証
ダッシュボード → APIキーでキーを作成し、Bearerトークンとして送信してください。キーはサーバー側で管理してください。
export CHEAPERGEN_API_KEY="cg_live_…"
# every request
Authorization: Bearer $CHEAPERGEN_API_KEYNano Banana Pro テキストから画像を生成 API
/api/v1/run/google/nano-banana-pro/text-to-image非同期ジョブを送信すると、生成IDを含む202が返されます。GET /api/v1/generations/{id}をポーリングするか、webhook_urlを指定してください。詳細はジョブのライフサイクルをご覧ください。
入力パラメーター
| 名前 | 種類 | 説明 | 料金に影響 |
|---|---|---|---|
prompt必須 | string | ショットを説明してください:被写体、動き、カメラワーク、照明、スタイル。 | いいえ |
aspect_ratio | string (enum) | 出力画像の形状。 値:1:1 · 2:3 · 3:2 · 3:4 · 4:3 · 4:5 · 5:4 · 9:16 · 16:9 · 21:9 デフォルト:1:1 | はい |
resolution | string (enum) | 出力サイズ:1K ≈ 1メガピクセル、2K ≈ 4 MP、4K ≈ 16 MP。 値:1K · 2K · 4K デフォルト:1K | はい |
webhook_url | string (URL) | 任意。生成が完了すると、Webhookシークレットで署名してここにPOSTします。Webhook | いいえ |
リクエスト
const API = "https://cheapergen.com/api/v1";
const headers = {
Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
"Content-Type": "application/json",
};
// 1. Submit the job
let job = await fetch(`${API}/run/google/nano-banana-pro/text-to-image`, {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "雨の夜の居心地よいラーメン店。濡れた路面に温かな光がこぼれ、「OPEN」と光るネオンサイン。写実的。",
"aspect_ratio": "1:1",
"resolution": "1K"
}),
}).then((r) => r.json());
// 2. Poll until it finishes (or pass webhook_url and skip polling)
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
}
console.log(job.status === "succeeded" ? job.output.images[0].url : job.error);レスポンス
{
"id": "gen_8c2QmX1nq0k4",
"object": "generation",
"model": "google/nano-banana-pro",
"endpoint": "google/nano-banana-pro/text-to-image",
"mode": "text-to-image",
"status": "queued",
"input": {
"prompt": "雨の夜の居心地よいラーメン店。濡れた路面に温かな光がこぼれ、「OPEN」と光るネオンサイン。写実的。",
"aspect_ratio": "1:1",
"resolution": "1K"
},
"output": null,
"error": null,
"cost": {
"amount_usd": 0.2255,
"currency": "usd",
"estimated": true,
"official_usd": null,
"list_price_source": "official",
"list_price_label": "Official",
"saved_usd": null
},
"source": "api",
"started_at": null,
"completed_at": null,
"urls": {
"get": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4",
"cancel": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4/cancel"
},
"created_at": "2026-10-15T09:21:04Z"
}Nano Banana Pro 画像を編集 API
/api/v1/run/google/nano-banana-pro/edit非同期ジョブを送信すると、生成IDを含む202が返されます。GET /api/v1/generations/{id}をポーリングするか、webhook_urlを指定してください。詳細はジョブのライフサイクルをご覧ください。
入力パラメーター
| 名前 | 種類 | 説明 | 料金に影響 |
|---|---|---|---|
prompt必須 | string | ショットを説明してください:被写体、動き、カメラワーク、照明、スタイル。 | いいえ |
image_urls必須 | string[] (URLs) | 編集・合成に使える画像は最大14枚です。商品、人物、スタイルなどを指定し、プロンプトでは「画像1」「画像2」…と参照してください。 最大項目数:14 | いいえ |
aspect_ratio | string (enum) | 出力画像の形状。 値:1:1 · 2:3 · 3:2 · 3:4 · 4:3 · 4:5 · 5:4 · 9:16 · 16:9 · 21:9 デフォルト:1:1 | はい |
resolution | string (enum) | 出力サイズ:1K ≈ 1メガピクセル、2K ≈ 4 MP、4K ≈ 16 MP。 値:1K · 2K · 4K デフォルト:1K | はい |
webhook_url | string (URL) | 任意。生成が完了すると、Webhookシークレットで署名してここにPOSTします。Webhook | いいえ |
リクエスト
const API = "https://cheapergen.com/api/v1";
const headers = {
Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
"Content-Type": "application/json",
};
// 1. Submit the job
let job = await fetch(`${API}/run/google/nano-banana-pro/edit`, {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "画像1の商品を画像2の大理石カウンターに置き、柔らかな朝の光に合わせてください。",
"image_urls": [
"https://cdn.cheapergen.com/samples/portrait.jpg"
],
"aspect_ratio": "1:1",
"resolution": "1K"
}),
}).then((r) => r.json());
// 2. Poll until it finishes (or pass webhook_url and skip polling)
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
}
console.log(job.status === "succeeded" ? job.output.images[0].url : job.error);レスポンス
{
"id": "gen_8c2QmX1nq0k4",
"object": "generation",
"model": "google/nano-banana-pro",
"endpoint": "google/nano-banana-pro/edit",
"mode": "edit",
"status": "queued",
"input": {
"prompt": "画像1の商品を画像2の大理石カウンターに置き、柔らかな朝の光に合わせてください。",
"image_urls": [
"https://cdn.cheapergen.com/samples/portrait.jpg"
],
"aspect_ratio": "1:1",
"resolution": "1K"
},
"output": null,
"error": null,
"cost": {
"amount_usd": 0.2255,
"currency": "usd",
"estimated": true,
"official_usd": null,
"list_price_source": "official",
"list_price_label": "Official",
"saved_usd": null
},
"source": "api",
"started_at": null,
"completed_at": null,
"urls": {
"get": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4",
"cancel": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4/cancel"
},
"created_at": "2026-10-15T09:21:04Z"
}結果を取得する
生成処理は非同期です。statusがsucceeded、failed、またはcanceledになるまでポーリングしてください。送信時にwebhook_urlを指定する方法もあります。失敗した生成は自動返金されます。
curl https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4 \
-H "Authorization: Bearer $CHEAPERGEN_API_KEY"その他:ジョブのライフサイクル · Webhook · エラー
Nano Banana Proの料金
従量課金: 画像1枚あたりを使った分だけ支払えます。サブスクリプションは不要です。生成に失敗した場合は自動で返金されます。
| プラン | 公式価格 | CheaperGen | 節約額 |
|---|---|---|---|
1K 約1 MP | $0.1197/img 月額プランの場合: Pro $0.1177Max $0.1156 | −13% | |
2K 約4 MP | $0.1197/img 月額プランの場合: Pro $0.1177Max $0.1156 | −13% | |
4K 約16 MP | $0.1995/img 月額プランの場合: Pro $0.1928Max $0.186 | −18% |
月額プラン多くのモデルが割引価格になります(各モデルの料金の下に表示)。従量課金も引き続き利用できます。Pro $499/月 · Max $4,999/月。
- 公式価格:Gemini APIのgemini-3-pro-image公開価格(画像出力100万トークンあたり$120:1K/2K画像1枚$0.134、4K画像1枚$0.24。入力画像1枚560トークン、100万トークンあたり$2。思考トークンは100万あたり$12、画像1枚あたり約$0.004)。価格確認日:2026年10月18日。
- 料金にはプロンプトとモデルの思考トークンが含まれます。入力画像1枚あたり約$0.002が加算されます。