Nano Banana Pro API 開発者リファレンス

高度な機械学習技術を搭載した「Nano Banana Pro API ビジュアル制作プラットフォーム」の、開発者向け完全リファレンスガイドです。

料金を確認「Nano Banana Pro API」のサブスクリプションプランを確認しましょう。

Nano Banana Pro API 概要

Nano Banana Pro APIのビジュアル制作サービスは、開発者が高度な機械学習エンジンに接続し、テキストプロンプトと参考写真から高品質な画像を生成できます。Nano Banana Pro APIソリューションは、包括的なタスク管理とリアルタイム通知機能を備えた、シンプルなRESTインターフェースを提供します。

Nano Banana Pro APIの主な機能

  • 最先端の機械学習エンジンを使用した、Nano Banana Pro APIのテキストから画像への変換
  • Nano Banana Pro APIの参考画像サポート(最大4枚)
  • リアルタイム進捗追跡機能付きのNano Banana Pro API非同期タスク処理
  • ステータス変更を即時通知するNano Banana Pro API Webhook
  • 構造化されたJSONデータを返すNano Banana Pro API RESTfulインターフェース
  • Nano Banana Pro API Bearerトークン認証メカニズム

overview.base_url

https://api.defapi.org

overview.api_version

v1.0.0

Nano Banana Pro APIクイックスタート

  1. 1. Nano Banana Pro APIアカウントを作成し、公式ウェブサイトからアクセス認証情報を取得します
  2. 2. Nano Banana Pro API認証トークンをAuthorizationヘッダーに含めます
  3. 3. Nano Banana Pro APIの画像生成エンドポイントにPOSTリクエストを送信します
  4. 4. 返されたNano Banana Pro APIタスクIDを使用して、処理ステータスを確認します
  5. 5. 処理が完了したら、Nano Banana Pro APIで生成された画像を取得します

アクセス認証

すべてのAPIリクエストには、Bearerトークン認証が必要です。各リクエストのAuthorizationヘッダーにAPIキーを含めてください。

認証方法

AuthorizationヘッダーにAPI認証情報を含めて、HTTP Bearerトークン認証を使用します:

Authorization: Bearer <your-api-key>

APIキーの形式例

Authorization: Bearer dk-1234567890abcdef

リクエスト例

curl -X POST "https://api.defapi.org/api/image/gen" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key-here" \
  -d '{
    "model": "google/gempix2",
    "prompt": "A beautiful landscape"
  }'

有効な認証

  • API認証情報が有効期限内であること
  • アカウントが正常な状態であること
  • アカウントに十分な残高があること

よくある問題

  • リクエストにAPI認証情報がない
  • APIキーが無効または形式が正しくない
  • アカウントが無効化されている、またはアクセス権が取り消されている

Nano Banana Pro API による画像生成

Nano Banana Pro APIを使って、高度な機械学習技術と柔軟なテキストプロンプト、参照画像で画像を作成します。

APIエンドポイント

POST /api/image/gen

リクエストパラメータ

ParameterTypeRequiredDescription
modelstringYesModel identifier (e.g., "google/gempix2")
promptstringYesText prompt describing the image
imagesarrayNoReference image URLs (max 4)
callback_urlstringNoWebhook URL for completion notifications

使用例

基本的なNano Banana Pro API画像生成

{
  "model": "google/gempix2",
  "prompt": "A beautiful girl dancing in a garden"
}

サンプル画像を使ったNano Banana Pro API参照ベースの生成

{
  "model": "google/gempix2",
  "prompt": "Put them in a basket",
  "images": [
    "https://cdn.openai.com/API/docs/images/body-lotion.png",
    "https://cdn.openai.com/API/docs/images/soap.png"
  ],
  "callback_url": "https://example.com/webhook/image-callback"
}

レスポンス形式

{
  "code": 0,
  "message": "ok",
  "data": {
    "task_id": "ta12345678-1234-1234-1234-123456789abc"
  }
}

エラーハンドリング

400 - Bad Request

{"code": 1, "message": "failed", "detail": "prompt is required"}

401 - Unauthorized

{"code": 1, "message": "Invalid API key"}

Nano Banana Pro API タスク状況

Nano Banana Pro API 画像生成エンドポイントから返されたタスクIDを使用して、Nano Banana Pro API 画像生成タスクの状況と結果を照会します。

APIエンドポイント

GET /api/task/query?task_id=<task_id>

クエリパラメータ

ParameterTypeRequiredDescription
task_idstringYesUnique task identifier returned from generation endpoint

リクエスト例

curl -X GET "https://api.defapi.org/api/task/query?task_id=ta823dfb-eaac-44fd-aec2-3e2c7ba8e071" \
  -H "Authorization: Bearer your-api-key-here"

Nano Banana Pro API タスク状況タイプ

pending - Nano Banana Pro API タスクが作成され、処理開始を待っています。
submitted - Nano Banana Pro API タスクが生成キューに追加されました。
in_progress - Nano Banana Pro API タスクが現在処理中です。
success - Nano Banana Pro API タスクが正常に完了し、生成された画像の準備ができています。
failed - Nano Banana Pro API タスクでエラーが発生し、完了できませんでした。

エラーレスポンス

404 - Task Not Found

{"code": 1, "message": "task not found"}

401 - Unauthorized

{"code": 401, "message": "Invalid API key"}

Nano Banana Pro API データ構造

APIリクエストとレスポンスで使用される、すべてのNano Banana Pro API データ形式とスキーマの完全なリファレンス。

ImageGenResult

Represents a generated image result.

{
  "image": "https://google.datas.systems/fileSystem/response_images/287/2025/08/29/1756432513771985292_2989.png"
}
FieldTypeDescription
imagestringImage URL or base64 data URI

CallbackPayload

Payload sent to the callback_url when task status changes to final states.

{
  "result": [
    {
      "image": "https://google.datas.systems/fileSystem/response_images/287/2025/08/29/1756432513771985292_2989.png"
    }
  ],
  "status": "success",
  "task_id": "ta5c9705-b8ae-4cb9-aa6f-97c4fee88c8d",
  "consumed": "0.500000",
  "status_reason": {
    "message": null
  }
}
FieldTypeDescription
resultarrayArray of ImageGenResult objects (null if failed)
statusstringFinal task status (success/failed)
task_idstringUnique task identifier
consumedstringCredits consumed by the task
status_reasonobjectStatus details including error message if failed

Nano Banana Pro API サポートモデル

google/gempix2Nano Banana image generation model
google/gemini-2.5-flash-imageGemini 2.5 Flash image model

エラー管理

エラー処理とAPIレスポンスコード解釈の完全ガイドです。すべてのエラーメッセージは一貫した形式で提供され、効率的なトラブルシューティングを支援します。

HTTPステータスコード

200

OK

Request was successful

400

Bad Request

Invalid request parameters or malformed JSON

401

Unauthorized

Invalid, missing, or expired API key

404

Not Found

Task not found or endpoint doesn't exist

500

Internal Server Error

Server-side error occurred

エラーハンドリングのベストプラクティス

  1. レスポンスデータを処理する前に、常にHTTPステータスコードを確認してください。
  2. 500エラーが発生した場合は、再試行時に「指数バックオフ」戦略を実装してください。
  3. デバッグのため、エラーメッセージを完全なコンテキストと共にログに記録してください。
  4. 400エラーを避けるため、リクエストを送信する前に入力パラメータを検証してください。
  5. クライアントにAPI認証情報を更新してもらい、認証の問題を解決してください。
  6. 状態を過度にポーリングせず、適切な間隔でタスクの進捗を監視してください。
  7. 完了状態の定期的なポーリングを避けるため、可能であればWebhook通知を利用してください。

エラーハンドリングのサンプルコード (JavaScript)

async function generateImage(prompt, apiKey) {
  try {
    const response = await fetch('https://api.defapi.org/api/image/gen', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${apiKey}`
      },
      body: JSON.stringify({
        model: 'google/gempix2',
        prompt: prompt
      })
    });

    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(`API Error ${response.status}: ${errorData.message}`);
    }

    const data = await response.json();
    return data.data.task_id;

  } catch (error) {
    console.error('Image generation failed:', error.message);
    throw error;
  }
}