Nano Banana Pro Standard
テキストと最大 14 枚の参照画像から、1K・2K・4K の画像を生成または編集し、PNG または JPEG で提供します。生成ごとに実際に使ったトークンで課金されます。
- トークン課金です。入力、テキストと思考の出力、画像出力のトークンを、それぞれ 100 万トークンあたりの単価で計算します。下の 1 枚あたりの価格は、各
resolutionに記載された画像トークン数での見積もりです。 - 非同期のみです。
POST /v1/images/tasksでタスクを作成し、GET /v1/tasks/{task_id}をポーリングします。生成は BeatAPI 側で行うため、時間のかかる生成でも接続を占有しません。このモデルでは同期のPOST /v1/images/generationsは使えません。 - 1 タスクにつき画像は 1 枚です。複数枚が必要な場合は、複数のタスクを作成してください。
- テキストから画像を生成するほか、公開 HTTPS リンクで指定した最大 14 枚の参照画像を編集・合成できます。
- 失敗したタスクには課金されません。仮確保された金額は全額戻されます。
これはトークン課金で提供する nano-banana-pro です。モデルとリクエストは同じで、フィールド、解像度、アスペクト比、参照画像もすべて共通です。nano-banana-pro は画像 1 枚ごとの固定価格、nano-banana-pro-std は生成ごとに実際に使ったトークンに対する課金です。料金を見る。
Nano Banana Pro は output_format で JPEG に jpg を使います。他の Nano Banana モデルは jpeg です。
このモデルをテスト画面で開きます。BeatAPI の API キーを入力するとタスクを作成できます。実際に呼び出され、ご自身の残高から課金されます。
モデル ID
固定価格のモデルとこのモデルは同じリクエストを受け付けます。違うのは価格の数え方だけです。下の値はゲートウェイの契約からそのまま取っています。
エンドポイントと認証
POST https://api.beatapi.io/v1/images/tasks
Authorization
string
必須
BeatAPI の API キーを Bearer <BEATAPI_API_KEY> の形式で送信します。キーはダッシュボードで作成できます。キーはサーバー側で保管し、ブラウザーやモバイルアプリに含めないでください。
ボディは JSON で送信し、Content-Type: application/json を指定します。Idempotency-Key は任意です。論理的に 1 件のリクエストごとに一意の値(255 文字以内)を送り、まったく同じボディを再試行するときだけ再利用してください。24 時間以内に同じキーと同じボディで再試行すると、最初のレスポンスが Idempotent-Replayed: true 付きで再度返されます。同じキーで異なるボディを送ると 409 idempotency_conflict が返ります。2xx 以外のレスポンスは保存されないため、400 や 402 の後の再試行は改めて実行されます。
リクエストの流れ
タスクを作成する
下記のパラメーターをエンドポイントに POST します。201 が返れば、タスクが受け付けられ、料金が残高から仮確保されたことを意味します。処理はバックグラウンドで実行されます。data.id を保存してください。
完了を待つ
GET /v1/tasks/{task_id} を呼び出し、status が succeeded または failed になるまで、呼び出しの間隔を data.poll_after_seconds(画像は 5 秒、動画は 8 秒)だけ空けてください。あるいは task.succeeded と task.failed のWebhookを登録することもできます。処理タイムアウトで停止したタスクはイベントを送信しないため、フォールバックとしてポーリングも続けてください。
入力モード
リクエストパラメーター
model
string
必須
実行するモデルです。
値:nano-banana-pro-std
値が正しくない場合
- 指定がない場合:
"model" is required - 不明なモデル ID の場合:
"model" nano-banana-9 is not catalogued - 動画モデルをこのエンドポイントに送った場合:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
prompt
string
必須
描きたい内容、または参照画像に加えたい変更です。被写体、スタイル、照明、構図、画像内に表示したい文字などを、普通の言葉で書くのが最適です。
長さ:1–5000 文字
- 長さは文字数で数えます(CJK 文字も 1 文字として数えます)。
imagesを送る場合は、どの画像が何の役割かを書いてください。たとえば「1 枚目の画像を商品に、2 枚目の画像を背景に使う」のように指定します。
値が正しくない場合
- 指定がない場合:
"prompt" is required - 空、または上限を超える長さの場合:
"prompt" has an unsupported length - 文字列でない場合:
"prompt" must be a string
images
string[]
任意
編集または合成する参照画像です。このフィールドを送ると、リクエストはテキストからの画像生成ではなく、画像編集として扱われます。
要素数:1–14
各要素は公開されている https:// の URL です。ローカルファイルは先に アップロード(POST /v1/files)し、返された data.url を渡してください。
- 各リンクは、公開 HTTPS で画像ファイルそのもの(PNG、JPEG、WebP)を返し、サイズが 50 MB 以下である必要があります。ゲートウェイは、タスクを作成する前に、すべてのリンクの先頭バイトをダウンロードして確認します。
- Web ページ、ログインが必要なページ、期限切れの署名付き URL、ホットリンク保護のあるホストへのリンクは、画像を返さないため拒否されます。
- エラーメッセージ中の位置は 0 始まりです。
images[0]は 1 番目のリンクを指します。
値が正しくない場合
- 最大数を超えた場合:
"images" accepts at most 14 items - 空の配列の場合:
"images" requires at least 1 item - https:// のリンクでない場合:
"images[0]" must be a public HTTPS URL - プライベートまたは安全でないアドレスの場合:
"images[0]" must be a publicly reachable HTTPS image URL - ホストが 4xx エラーを返した場合:
"images[0]" could not be downloaded: the URL returned HTTP 404 - リンクが PNG、JPEG、WebP 以外を返した場合:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 50 MB を超える場合:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
例
aspect_ratio
string
任意デフォルト: 1:1
画像の形を「幅:高さ」で指定します。
指定できる値:1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
デフォルト:1:1
autoを指定すると、形はモデルに任されます。imagesがある場合は通常、参照画像に沿いますが、すべての経路で保証されるわけではありません。形が重要な場合は、比率を指定してください。- Nano Banana Pro は、極端に縦長・横長のバナー向けの
1:4、4:1、1:8、8:1に対応していません。Nano Banana 2、2.1、2 Lite は対応しています。
画像を編集するときは、auto を指定すると通常は参照画像の形が維持されます。フィールドを省略すると、デフォルトの 1:1 が使われ、結果は正方形になります。
値が正しくない場合
- 一覧にない値の場合:
"aspect_ratio" must be one of: [1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 auto]
resolution
string
任意デフォルト: 1K
画像のサイズ区分です。区分が高いほど画像は大きくなります。4K の料金は 1K と 2K の 2 倍で、1K と 2K は同じ料金です。正確なピクセルサイズは aspect_ratio に依存し、モデルが決定します。
指定できる値:1K, 2K, 4K
デフォルト:1K
- 大文字の K を使ってください。
2kは拒否されます。
値が正しくない場合
- 一覧にない値の場合:
"resolution" must be one of: [1K 2K 4K]
output_format
string
任意デフォルト: png
結果のファイル形式です。
指定できる値:png, jpg
デフォルト:png
- モデルが 2 つの形式のうち、指定と異なる方で返した場合、BeatAPI は保存前に画像を変換するため、ファイルは通常、指定した形式になります。変換に失敗した場合は、受け取ったままの形式で保存されます。透明な部分は JPEG では白になります。変換できないほど大きい画像(64 メガピクセル超)は、受け取ったままの形式で保存されます。
output.media[].mime_typeには、常に実際に保存された形式が示されます(jpgを指定した場合はimage/jpeg)。 jpegではなくjpgと書いてください。jpgを使う Nano Banana モデルは Nano Banana Pro だけです。
値が正しくない場合
- 一覧にない値の場合(たとえば
jpegやwebp):"output_format" must be one of: [png jpg]
ゲートウェイはタスク作成前に、次の組み合わせも確認します。
- 生成ごとに実際に使ったトークン数(入力、テキストと思考の出力、画像出力)を表示価格の単価で課金します。記載の 1 枚あたりの価格は、各解像度に記載された画像トークン数での見積もりです。
- これは公式版で、トークン課金です。
nano-banana-proは同じモデルを 1 枚固定料金で提供します。
入力メディアの上限
ゲートウェイはタスク作成前にすべての入力を読み取り、次の上限を超えるものは、その入力を示す 400 bad_request で拒否します。課金はされません。
- 参照画像:PNG、JPEG、WebP。ファイル名や
Content-Typeではなく、ファイルの内容から判定されます。1 件あたり 50 MB 以下(10 進の MB。ホストがサイズを申告した場合に確認されます)で、リンクは 1~14 個です。GIF、HEIC、SVG は拒否されます。 - このモデルでは、ピクセル数やアスペクト比の上限は確認されません。
- ホストが時間内に応答しない場合、そのリンクは作成時には拒否されません。後で取得できないままのリンクがあると、タスクは
bad_requestで失敗し、返金されます。 - ローカルファイルは
POST /v1/filesでアップロードし、返されたdata.urlを指定してください。
送信してからポーリングする
このモデルはタスクとしてのみ動きます。POST /v1/images/tasks はすぐに応答し、タスク ID は data.id に入ります。その後 data.poll_after_seconds ごとに GET /v1/tasks/{task_id} を呼び、data.status が succeeded または failed になるまで待ちます。生成は BeatAPI 側で行うため、時間のかかる生成でも接続を占有せず、クライアントのタイムアウトにもかかりません。このモデルでは同期の POST /v1/images/generations は使えません。
Capabilities API から呼んでも同じタスクです。POST /v1/capabilities/run で開始し、返されたタスク ID でステータスの呼び出しを succeeded または failed になるまで送ります。
トークン課金と固定価格の比較
このモデルが受け付けないフィールド
画像エンドポイントは、他の画像モデルが使ういくつかのフィールドを認識します。ここでそれらを送ると、無視されずに拒否されます。そのため、効果のなかった設定に対して料金を支払うことはありません。
quality、seed、background、size、enhance_prompt→field "quality" is not supported by model nano-banana-pro-std(送信したフィールド名が入ります)。- それ以外の未知のフィールド(たとえば
n)→unknown field: n。nはありません。1 タスクで作られる画像は 1 枚です。
リクエスト例
テキストから画像
プロンプトから、2K の横長画像を生成します。
1 枚の画像を編集
商品はそのままに、背景を変更します。auto を指定すると、通常は参照画像の形が維持されます。
複数の画像を合成
プロンプトでは、各参照画像を位置で指定します。
4K JPEG ポスター
縦長のポスターを JPEG で受け取ります。このモデルでは JPEG に jpg を使います。
レスポンス
タスクの作成(201)
タスクオブジェクトです。タスクが成功するまで output は null です。「実行中」と記載されたフィールドは、タスクの完了後に表示されなくなります。
完了したタスク
GET /v1/tasks/{task_id} は HTTP 200 と status: "succeeded" を返し、結果は data.output に入ります。
出力フィールド
失敗したタスク
失敗したタスクも、GET /v1/tasks/{task_id} では HTTP 200 になります。失敗はボディに示されます。仮確保された金額は全額戻されるため、課金されません。
完全なコード例
タスクを作成し、サーバーが示すポーリング間隔で完了を待ち、結果の URL を出力します。環境変数に BEATAPI_API_KEY を設定し、requests をインストールしてください。
課金
- トークン課金です。単価は下の表(100 万トークンあたり)のとおりで、入力(プロンプトと
imagesの参照画像)、テキストと思考の出力、画像出力に分かれます。トークン数はモデルが数え、resolutionと参照画像が数を変えます。 - 1 枚あたりの価格は、各
resolutionで 1 回生成したときに記載されている画像出力トークン数を使い、参照画像なしで見積もったものです。参照画像と思考の分が加わります。 - タスクの作成時に、その区分の見積もりが残高(キーに上限がある場合はその枠)から予約されます。成功すると、生成で実際に使ったトークンで精算されるため、最終的な
data.usageは予約額と異なることがあります。タスクができる前に拒否されたリクエストには料金がかかりません。 - 失敗したタスクは全額返金されます。
- 固定価格の
nano-banana-proは同じモデルで、生成に何トークン使っても画像 1 枚ごとに一定の価格です。
現在の定価です。料金ページと同じ金額です。割引を個別に契約しているアカウントでは、より低い金額になります。実際に課金された金額は、タスクの data.usage で確認できます。
よくあるエラー
HTTP エラー早見表
タスクが作られる前のエラーは、2xx 以外のレスポンスで返されます。課金はされません。error.code または error.retryable で処理を分岐してください。message には問題の内容が示されます。全一覧と再試行のルールはエラーにあります。
認証
API キーを Authorization: Bearer <BEATAPI_API_KEY> として送信してください。
ヘッダー
ボディは JSON で送信し、Content-Type: application/json を指定します。Idempotency-Key は任意です。論理的に 1 件のリクエストごとに一意の値(255 文字以内)を送り、まったく同じボディを再試行するときだけ再利用してください。24 時間以内に同じキーと同じボディで再試行すると、最初のレスポンスが Idempotent-Replayed: true 付きで再度返されます。同じキーで異なるボディを送ると 409 idempotency_conflict が返ります。2xx 以外のレスポンスは保存されないため、400 や 402 の後の再試行は改めて実行されます。
リクエスト
実行するモデルです。
値:nano-banana-pro-std
値が正しくない場合
- 指定がない場合:
"model" is required - 不明なモデル ID の場合:
"model" nano-banana-9 is not catalogued - 動画モデルをこのエンドポイントに送った場合:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
描きたい内容、または参照画像に加えたい変更です。被写体、スタイル、照明、構図、画像内に表示したい文字などを、普通の言葉で書くのが最適です。
長さ:1–5000 文字
- 長さは文字数で数えます(CJK 文字も 1 文字として数えます)。
imagesを送る場合は、どの画像が何の役割かを書いてください。たとえば「1 枚目の画像を商品に、2 枚目の画像を背景に使う」のように指定します。
値が正しくない場合
- 指定がない場合:
"prompt" is required - 空、または上限を超える長さの場合:
"prompt" has an unsupported length - 文字列でない場合:
"prompt" must be a string
画像の形を「幅:高さ」で指定します。
指定できる値:1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
デフォルト:1:1
autoを指定すると、形はモデルに任されます。imagesがある場合は通常、参照画像に沿いますが、すべての経路で保証されるわけではありません。形が重要な場合は、比率を指定してください。- Nano Banana Pro は、極端に縦長・横長のバナー向けの
1:4、4:1、1:8、8:1に対応していません。Nano Banana 2、2.1、2 Lite は対応しています。
備考:画像を編集するときは、auto を指定すると通常は参照画像の形が維持されます。フィールドを省略すると、デフォルトの 1:1 が使われ、結果は正方形になります。
値が正しくない場合
- 一覧にない値の場合:
"aspect_ratio" must be one of: [1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 auto]
編集または合成する参照画像です。このフィールドを送ると、リクエストはテキストからの画像生成ではなく、画像編集として扱われます。
要素数:1–14
各要素は公開されている https:// の URL です。ローカルファイルは先に アップロード(POST /v1/files)し、返された data.url を渡してください。
- 各リンクは、公開 HTTPS で画像ファイルそのもの(PNG、JPEG、WebP)を返し、サイズが 50 MB 以下である必要があります。ゲートウェイは、タスクを作成する前に、すべてのリンクの先頭バイトをダウンロードして確認します。
- Web ページ、ログインが必要なページ、期限切れの署名付き URL、ホットリンク保護のあるホストへのリンクは、画像を返さないため拒否されます。
- エラーメッセージ中の位置は 0 始まりです。
images[0]は 1 番目のリンクを指します。
値が正しくない場合
- 最大数を超えた場合:
"images" accepts at most 14 items - 空の配列の場合:
"images" requires at least 1 item - https:// のリンクでない場合:
"images[0]" must be a public HTTPS URL - プライベートまたは安全でないアドレスの場合:
"images[0]" must be a publicly reachable HTTPS image URL - ホストが 4xx エラーを返した場合:
"images[0]" could not be downloaded: the URL returned HTTP 404 - リンクが PNG、JPEG、WebP 以外を返した場合:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 50 MB を超える場合:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
例
"images": [
"https://cdn.beatapi.io/samples/smart-bottle.png",
"https://cdn.beatapi.io/samples/neon-singer.png"
]
結果のファイル形式です。
指定できる値:png, jpg
デフォルト:png
- モデルが 2 つの形式のうち、指定と異なる方で返した場合、BeatAPI は保存前に画像を変換するため、ファイルは通常、指定した形式になります。変換に失敗した場合は、受け取ったままの形式で保存されます。透明な部分は JPEG では白になります。変換できないほど大きい画像(64 メガピクセル超)は、受け取ったままの形式で保存されます。
output.media[].mime_typeには、常に実際に保存された形式が示されます(jpgを指定した場合はimage/jpeg)。 jpegではなくjpgと書いてください。jpgを使う Nano Banana モデルは Nano Banana Pro だけです。
値が正しくない場合
- 一覧にない値の場合(たとえば
jpegやwebp):"output_format" must be one of: [png jpg]
画像のサイズ区分です。区分が高いほど画像は大きくなります。4K の料金は 1K と 2K の 2 倍で、1K と 2K は同じ料金です。正確なピクセルサイズは aspect_ratio に依存し、モデルが決定します。
指定できる値:1K, 2K, 4K
デフォルト:1K
- 大文字の K を使ってください。
2kは拒否されます。
値が正しくない場合
- 一覧にない値の場合:
"resolution" must be one of: [1K 2K 4K]
レスポンス
タスクオブジェクトです。タスクが成功するまで output は null です。「実行中」と記載されたフィールドは、タスクの完了後に表示されなくなります。

