Совместимые с OpenAI chat completions на базе Google Gemini 3.1 Pro. Поддерживает потоковый вывод и длинный контекст. Укажите в поле model значение gemini-3.1-pro; по умолчанию используется уровень low, а reasoning_effort=high выбирает высокий уровень. Эта модель также возвращает сводку рассуждений: choices[].message.reasoning_content — если ответ не потоковый, и choices[].delta.reasoning_content — если потоковый. Сам ответ всегда находится в content и никогда не смешивается с рассуждением, поэтому клиентам, которые читают только content, ничего менять не нужно. Тарификация: токены рассуждения оплачиваются по ставке вывода и включаются в usage.completion_tokens; usage.completion_tokens_details.reasoning_tokens показывает, сколько из них ушло на рассуждение. Блокировка контента: Google проверяет промпт ещё до запуска модели; заблокированный промпт не даёт результата и не оплачивается. Шлюз автоматически переформулирует промпт и повторяет попытку один раз, возвращая ошибку только если запрос всё равно отклонён. Если ваш промпт блокируется постоянно, попробуйте объединить системное сообщение с первым сообщением пользователя.
📥 Контекстное окно (максимум ввода):~1,000,000 токенов (длинный контекст на миллион токенов).
Попробовать в песочнице →Аутентификация
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
Чтобы начать, создайте API-ключ в консоли.
Тело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| model | string | Да | Model ID, here gemini-3.1-pro. |
| messages | array | Да | Массив сообщений; у каждого есть role (system/user/assistant) и content. content может быть строкой или массивом частей {type:text} и {type:image_url} для распознавания изображений (мультимодальность/зрение). |
| stream | boolean | Нет | Возвращать ответ потоково через SSE. По умолчанию false. При потоковой передаче рассуждение приходит по частям в choices[].delta.reasoning_content, ответ остаётся в delta.content, а поток завершается сообщением data: [DONE]. Обратите внимание: для потоковых вызовов провайдер не сообщает отдельный счётчик размышлений, поэтому reasoning_tokens возвращает 0 — при этом сами токены рассуждения по-прежнему включены в completion_tokens, так что стоимость совпадает с непотоковым вариантом. |
| temperature | number | Нет | Температура сэмплирования, 0–2. |
| max_tokens | integer | Нет | Максимальное количество генерируемых токенов. |
| web_search | boolean | Нет | Установите true, чтобы включить веб-поиск: шлюз дополняет промпт актуальными результатами (со ссылками на источники) перед тем, как модель формирует ответ. Также можно включить через элемент tools вида {"type":"web_search"}. |
| reasoning_effort | string | Нет | Уровень усилий: low (по умолчанию — быстрее и дешевле) или high (более глубокое рассуждение, тарифицируется по уровню Preview). Также работают суффиксные названия моделей gemini-3.1-pro-low / gemini-3.1-pro-high; устаревший идентификатор gemini-3.1-pro-preview равнозначен уровню high по прежней цене. |
Пример запроса
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'Ответ
{
"id": "chatcmpl_xxx",
"object": "chat.completion",
"model": "gemini-3.1-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
"content": "70"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 2187,
"total_tokens": 2235,
"completion_tokens_details": {"reasoning_tokens": 1371}
}
}Ввод изображений (Vision)
Поместите изображение в массив content сообщения, и модель проанализирует его (визуальные вопрос-ответ, распознавание текста / OCR, …). Поле image_url принимает публичную ссылку на изображение или встроенный base64 data URL (data:image/png;base64,...). Доступно для мультимодальных моделей (gpt-5.5, серия gemini, …).
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "Что изображено на этой картинке?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'Коды ошибок
Каждое тело ошибки содержит error.message / error.type / error.code / error.param — ветвите логику по code; полный список — в руководстве по интеграции.
| HTTP | code | Описание |
|---|---|---|
| 401 | invalid_api_key | API-ключ отсутствует или недействителен |
| 402 | insufficient_quota | Недостаточно средств на балансе или превышена квота ключа |
| 400 | invalid_request | Неподдерживаемая модель или параметр |
| 429 | rate_limit_exceeded | Лимит запросов у провайдера |
| 502 | upstream_error | Все маршруты к провайдерам не сработали |