API リファレンス上級者向け更新日
POST/v1beta/models/{model}:generateContent

API コンソール

POST/v1beta/models/gemini-3.8-flash:generateContent
キーを確認

入力したキーで実際にリクエストを送信し、API の通常料金が適用されます。

Gemini generateContent

Gemini ネイティブ API は JSON と SSE に対応します。モデル ID はパスに、入力テキストは contents[].parts[] に指定します。

事前準備

クイックスタートに沿って API Key を取得し、HTTP で直接呼び出せるエンドポイントを選びます。x-goog-api-key に ICODEEASY_API_KEY を指定し、YOUR_MODEL_ID をエンドポイントで利用できる Gemini モデル ID に置き換えます。

リクエスト例

generateContent は JSON レスポンス全体を返します。

bash
curl -sS https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:generateContent \
  -H "x-goog-api-key: $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Say hello."
        }
      ]
    }
  ]
}'

レスポンスの読み取り

candidates[].content.parts[] からテキストを読み取ります。usageMetadata がある場合は promptTokenCount、candidatesTokenCount、cachedContentTokenCount を確認できます。

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Hello!"
          }
        ]
      },
      "finishReason": "STOP"
    }
  ]
}

ストリーミングリクエスト例

bash
curl -NsS 'https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:streamGenerateContent?alt=sse' \
  -H "x-goog-api-key: $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Say hello."
        }
      ]
    }
  ]
}'

ストリーミングレスポンス例

Gemini SSE の data: は JSON レスポンスの断片です。候補ごとに candidates[].content.parts[] のテキストを連結し、finishReason を確認します。エラーが返るか完了前に接続が切れた場合、受信済みの出力は未完了として保持します。

text
data: {"candidates":[{"index":0,"content":{"role":"model","parts":[{"text":"Hello!"}]}}]}

data: {"candidates":[{"index":0,"finishReason":"STOP"}],"usageMetadata":{"promptTokenCount":10,"candidatesTokenCount":4,"totalTokenCount":14}}

使用量は usageMetadata を含むフレームから読み取ります。項目は JSON レスポンスと同じです。