Gemini API リファレンス
この API リファレンスは、標準、ストリーミング、およびライブ API を使用して Gemini モデルと対話する方法を説明します。サポートされている HTTP 要求環境で REST API を使用できます。最初の API 呼び出しを行う方法はクイックスタートガイドをご覧ください。言語別のライブラリおよび SDK に関するリファレンスは、左側ナビゲーションの「SDK リファレンス」セクションの該当言語リンクから参照できます。
主要エンドポイント
Gemini API の主要なエンドポイントは以下の通りです:
- 標準コンテンツ生成 (
generateContent): 標準的な REST エンドポイントで、リクエストを処理し、単一パケットでモデルの完全な応答を返します。非対話的なワークロードに最適で、結果全体を待機できます。 - ストリーミング生成コンテンツ (
streamGenerateContent): サーバー送信イベント (SSE) を使用し、生成中の応答断片を送信します。この種のアプリケーション(例:チャットボット)に対して、より迅速でリッチな対話体験を提供します。 - ライブ API (
BidiGenerateContent):状態保持型の WebSocket ベース API で、双方向ストリームをサポートし、リアルタイム会話シナリオに特化しています。 - バッチモード (
batchGenerateContent):バッチのgenerateContentリクエストを送信する標準 REST エンドポイントです。 - 埋め込み (
embedContent):標準 REST エンドポイントで、入力されたContentからテキスト埋め込みベクトルを生成します。 - 生成メディア API:専用モデルを使用してメディアを生成可能なエンドポイントです。例としてImagen による画像生成、Veo による動画生成があります。Gemini にはこれらの機能が組み込まれており、
generateContentAPI からアクセスできます。 - プラットフォーム API:ファイルアップロード (files) やトークンカウント (tokens) など、コア機能をサポートするユーティリティエンドポイントです。
認証
すべての Gemini API リクエストは、x-goog-api-key ヘッダーに API キーを含める必要があります。API キーはGoogle AI Studio で数クリックで作成できます。
以下は API キーを含むリクエスト例です:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in a few words"
}
]
}
]
}'
Gemini SDK を使用して API キーを API に渡す方法については、「Gemini API キーの使用」ガイドを参照してください。
コンテンツ生成
これはプロンプトをモデルに送信するための主要なエンドポイントです。コンテンツ生成には 2 つのエンドポイントがあり、主な違いは応答の受け取り方法です:
generateContent(REST): リクエストを受け取り、モデルが生成手順をすべて完了した後に単一の応答を返します。streamGenerateContent(SSE):同一のリクエストを受けますが、モデルは生成中に応答の断片をストリームで返します。この機能により、一部の結果をすぐに表示できるため、対話型アプリケーションのユーザー体験を向上させます。
リクエストボディ構造
リクエストボディ は JSON オブジェクトで、標準モードとストリームモードの両方で完全に同一です。いくつかのコアオブジェクトで構成されます:
Contentオブジェクト:対話の単一ターンを表します。Partオブジェクト:Contentターン内の一つのエントリ(例:テキストや画像)。inline_data(Blob):生のメディアバイトおよびその MIME タイプのコンテナ。
最上位では、リクエストボディには contents オブジェクトが含まれ、これは Content オブジェクトのリストで各オブジェクトが対話のひとターンを表します。基本的なテキスト生成では通常単一の Content オブジェクトを使用しますが、会話履歴を維持する際は複数の Content オブジェクトを使うことが可能です。
以下は典型的な generateContent リクエストボディの例です:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in a few words"
}
]
}
]
}'
...




