ドキュメントAPI リファレンスGemini API

Gemini API

Google Gemini 互換エンドポイント:generateContent、streamGenerateContent、countTokens。

POST/v1beta/models/{model}:generateContent

Google Gemini API のリクエストボディと互換の対話エンドポイントです。モデル名とアクションはパスに含めます({model}:generateContent)。認証は x-goog-api-key ヘッダーを使います。

Google 公式の ?key= クエリパラメータはサポートしていません。キーは必ず x-goog-api-key ヘッダーで指定してください(Google GenAI SDK は既定でこのヘッダーを使います)。

リクエストボディ

フィールド必須説明
contentsarrayはい対話コンテンツ。各要素は roleuser/model)と parts(テキストまたはインラインメディア)を持ちます。
systemInstructionobjectいいえシステムプロンプト({ "parts": [{ "text": … }] })。
generationConfigobjectいいえ生成パラメータ:temperaturemaxOutputTokens など。
request.sh
curl "https://api.soleapi.com/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "x-goog-api-key: $SOLEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Write a haiku about the sea"}]}]
  }'

レスポンス

response.json
{
  "candidates": [
    {
      "content": {
        "parts": [{ "text": "Waves fold into foam..." }],
        "role": "model"
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 14,
    "candidatesTokenCount": 23,
    "totalTokenCount": 37
  }
}

ストリーミング生成

POST/v1beta/models/{model}:streamGenerateContent

?alt=sse を付けると SSE で増分返却され、各 data: 行がレスポンス断片になります。alt=sse なしの場合は完全な JSON 配列が返ります。詳細はストリーミングを参照。

トークンカウント

POST/v1beta/models/{model}:countTokens
count_tokens.sh
curl "https://api.soleapi.com/v1beta/models/gemini-2.5-pro:countTokens" \
  -H "x-goog-api-key: $SOLEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Write a haiku about the sea"}]}]
  }'

# => { "totalTokens": 14 }