generateContent と streamGenerateContent の 2 つのエンドポイントをサポートしています。
Chat Completions API との違い
Gemini Generate Content API は、OpenAI 互換形式(messages フィールド)ではなく、Google 公式のネイティブリクエスト形式(contents フィールド)を使用します。すでに Google Gemini SDK を使用している場合、または公式 API 形式に精通している場合は、リクエスト形式を変更せずにこの API を直接使用できます。
現在のサポート範囲
インターフェースはテキスト、画像、動画、音声入力(inlineData または fileData)、思考設定、およびカスタム関数宣言を受け付けます。音声出力、組み込みツール、明示的なコンテキストキャッシュなどのネイティブフィールドについては、統一された可用性はまだ保証されていません。具体的なモデルの実際のレスポンスを基準にしてください。
fileData.fileUri を使用して音声などのファイルを送信する場合は、ファイルが HTTPS 経由で直接アクセス可能であり、ログイン状態に依存せず、署名付きリンクの有効期間がリクエスト処理時間全体をカバーするようにしてください。非ストリーミング音声分析は、モデルが処理を完了した後に結果を返す必要があり、90 秒を超える可能性があります。クライアントは、ファイルサイズとビジネスシナリオに応じて十分に長い合計タイムアウトを設定し、サーバーがまだ処理中に接続が切断されることを避ける必要があります。
申請手順
Gemini Generate Content API を使用する前に、まず Gemini Generate Content API ページにアクセスし、「取得」ボタンをクリックしてリクエストに必要な認証情報を取得してください。 まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされます。初回申請には無料枠があります。基本的な使用方法
Non-Streaming(非ストリーミング)
/v1beta/models/{model}:generateContent に POST リクエストを送信します:
ヒント:gemini-3.xシリーズの flash は思考モデルであり、最初に reasoning tokens を消費します。generationConfig.maxOutputTokensを 512 以上に設定してください。そうしないと、空のコンテンツしか返されない可能性があります。
usageMetadata 内の token フィールドは、ネイティブ Gemini のセマンティクスに従って課金されます:
promptTokenCountにはcachedContentTokenCountが含まれ、キャッシュヒットした部分はキャッシュ読み取り価格で計算され、通常の入力として重複計上されません。promptTokensDetailsとcacheTokensDetailsは、usage.prompt_tokens_details配下のtext_tokens、image_tokens、video_tokens、audio_tokensおよび対応するcached_*の内訳に正規化されます。これらの値はそれぞれprompt_tokensとcached_tokensに含まれます。異なるモダリティはそれぞれの価格でのみ再計算され、重複課金されません。candidatesTokenCountとthoughtsTokenCountはどちらも出力 token 価格で計算されます。toolUsePromptTokenCountは独立したツール入力 token であり、入力 token 価格で計算されます。
usage オブジェクトを返し、モデルプロトコルをまたいで今回の呼び出し費用を usage.cost から統一的に読み取れます。cost はオプションの料金プレビューです。料金プレビューが一時的に利用できない場合でも、モデルレスポンスは正常に返されますが、このフィールドが含まれない可能性があります。最終的な請求は使用量記録に基づきます。
Streaming(ストリーミング)
/v1beta/models/{model}:streamGenerateContent?alt=sse に POST リクエストを送信します:
usageMetadata と正規化された usage が含まれ、料金は引き続き usage.cost にあります:
data: [DONE] を送信しません。終端の料金プレビューが一時的に利用できない場合でも、usage は token 使用量を返しますが、cost は省略されます。
サポートされているモデル
高度な機能
システム指示
生成設定
JSON モード
思考モード(Thinking)
思考機能をサポートするモデル(gemini-2.5-flash、gemini-2.5-pro など)は、思考モードを有効にできます:関数呼び出し
マルチターン会話
画像理解
安全設定
safetySettings によりコンテンツフィルタリングを制御できます:

