ДокументацияСправочник APIGemini 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ДаСодержимое диалога: каждый элемент содержит role (user/model) и parts (текст или встроенные медиа).
systemInstructionobjectНетСистемный промпт ({ "parts": [{ "text": … }] }).
generationConfigobjectНетПараметры генерации: temperature, maxOutputTokens и т. д.
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 }