Ключ создаётся в Google AI Studio для связанного Google Cloud-проекта, а запросы отправляются в Gemini API. Native-маршрут Zenith использует отдельный ключ и базу https://api.zenithmarket.dev без /v1; это разные учётные записи и маршруты.
Ниже приведены документальные примеры Google и native-маршрута Zenith, пять SKU и расчёт для 4 000 входных и 800 выходных токенов. Генерация не запускалась. Значения Zenith — снимок полей GET /v1/models, полученный одним ключом 28.10.2026 в 20:23 UTC: это не текущий прайс и не проверка backend. Архив выбранных полей. Полный исходный ответ сохранён редакцией отдельно.
Как получить ключ Gemini API и настроить оплату
Для прямого доступа создайте ключ в AI Studio и настройте биллинг по инструкции Google. Переход с Free Tier требует связать платёжный аккаунт и внести минимум $5; ручное пополнение — от $5 до $5 000. При нулевом Prepay-балансе прекращают работать ключи всех связанных проектов, а запросы получают HTTP 402 до пополнения. Доступность модели и условия тарифа проверяйте для своего проекта.
В таблице Google для Gemini 3.1 Flash-Lite обычные входные и выходные токены в Free Tier указаны как бесплатные. Это не отменяет квот проекта, ограничений модели и возможной тарификации дополнительных функций; context caching в Free Tier недоступен. Лимиты включают RPM, входной TPM и RPD, причём RPD сбрасывается в полночь по Pacific. Лимит расходов может вернуть 429 RESOURCE_EXHAUSTED; новый ключ того же проекта квоту не увеличит. С 26.10.2026 новые платные проекты по умолчанию сохраняют запросы Generate Content API (store=true); для отдельных запросов можно указать store=false или отключить logging в Logs and Datasets. Настройки существующих проектов не меняются. Источники: тарифы, лимиты, изменения.
Откройте инструкцию Google по API keys и раздел API Keys в AI Studio. Выберите проект или импортируйте его через Dashboard → Projects → Import projects → Import. Затем откройте Dashboard → API Keys, создайте ключ для проекта и сохраните его в переменной окружения GEMINI_API_KEY либо защищённом хранилище.
Quickstart Google, сверенный 27.10.2026, показывает Python SDK и вызов Interactions API. Пример ниже документальный и не запускался; установка и доступность модели для конкретного ключа не проверялись. Установите SDK командой python -m pip install -U google-genai, сохраните пример как gemini_google.py и запустите python gemini_google.py. При выполнении ожидается текстовый ответ, но не обязательно ровно ok.
import getpass
import os
from google import genai
key = os.environ.get("GEMINI_API_KEY") or getpass.getpass("Google Gemini API key: ")
if not key:
raise SystemExit("Ключ не введён")
client = genai.Client(api_key=key)
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="Ответь ровно одним словом: ok",
)
print(interaction.output_text)
print("usage:", getattr(interaction, "usage", None))
Пять моделей Gemini: возможности и статус
Карточки прямых моделей Google для всех пяти перечисленных SKU указывают входы Text, Image, Video, Audio и PDF, текстовый выход, пределы 1 048 576 входных и 65 536 выходных токенов, а также function calling и structured outputs. Это спецификации Google, не подтверждение одноимённых SKU Zenith. Gemini 3.8 Flash (gemini-3.8-flash) стабильна; thinking — low, medium и high, но не minimal. Gemini 3.7 Flash (gemini-3.7-flash) deprecated: в AI Studio её нельзя выбрать, а запросы с этим ID автоматически направляются на 3.8 Flash. Gemini 3.6 Flash — предыдущая модель, доступная для production. Gemini 3.5 Flash-Lite и Gemini 3.1 Flash-Lite стабильны; computer use поддерживается у 3.5, но не у 3.1. Во всех пяти карточках image generation и Live API отмечены как неподдерживаемые. Источники: 3.8, 3.7, 3.6, 3.5 Flash-Lite и 3.1 Flash-Lite.
Каталог Zenith: отдельные ID и тарифы
| SKU в GET /v1/models, снимок одного ключа 28.10.2026 20:23 UTC | Endpoint types, metadata | reasoningEffortModes, metadata | Вход/выход, USD за миллион по полям microUSD |
|---|---|---|---|
gemini-3.8-flash |
chat_completions, responses, gemini | не перечислены | 0,07 / 0,34 |
gemini-3.7-flash |
chat_completions, responses, gemini | low, medium, high | 0,07 / 0,34 |
gemini-3.6-flash |
chat_completions, responses, gemini | minimal, low, medium, high | 0,07 / 0,34 |
gemini-3.5-flash-lite |
chat_completions, responses, gemini | не перечислены | 0,027 / 0,23 |
gemini-3.1-flash-lite |
chat_completions, responses, gemini | не перечислены | 0,023 / 0,135 |
В read-only наблюдении native-каталога Zenith от 28.10.2026 получен HTTP 200: у всех пяти записей supportedGenerationMethods содержит generateContent и streamGenerateContent. Это метаданные одного ключа, а не результат генерации и не гарантия для других пользователей. Архив выбранных полей native-каталога.
| SKU из native-каталога | Изображение на входе | JSON Schema | Tools | Методы, заявленные каталогом |
|---|---|---|---|---|
| gemini-3.8-flash | не подтверждено | не подтверждено | не подтверждено | generateContent, streamGenerateContent |
| gemini-3.7-flash | не подтверждено | не подтверждено | не подтверждено | generateContent, streamGenerateContent |
| gemini-3.6-flash | не подтверждено | не подтверждено | не подтверждено | generateContent, streamGenerateContent |
| gemini-3.5-flash-lite | не подтверждено | не подтверждено | не подтверждено | generateContent, streamGenerateContent |
| gemini-3.1-flash-lite | не подтверждено | не подтверждено | не подтверждено | generateContent, streamGenerateContent |
Документация Zenith направляет за ключом в Telegram-бот сервиса и указывает внутренний баланс Zenith. Условия получения ключа и доступные способы оплаты уточняйте у сервиса.
Первый native-запрос через Zenith
Сохраните код как gemini_zenith.py и при необходимости запустите python gemini_zenith.py. Он документирует чтение объекта каталога с массивом models через x-goog-api-key, проверку выбранного ID и POST на generateContent. Запуск не выполнялся. При действующем ключе и доступном SKU ожидается JSON-объект с массивом candidates, текстом в content.parts[].text и, если поле присутствует, usageMetadata; это ожидаемый формат, а не подтверждённый результат.
import getpass
import json
import urllib.error
import urllib.parse
import urllib.request
key = getpass.getpass("Zenith API key: ").strip()
if not key:
raise SystemExit("Ключ не введён")
base = "https://api.zenithmarket.dev"
headers = {
"User-Agent": "Comrad404SourceReview/1.0",
"x-goog-api-key": key,
"Content-Type": "application/json",
}
try:
request = urllib.request.Request(base + "/v1beta/models", headers=headers)
with urllib.request.urlopen(request, timeout=30) as response:
catalog = json.load(response)
if not isinstance(catalog, dict) or not isinstance(catalog.get("models"), list):
raise ValueError("Ожидался объект с массивом models")
names = []
for row in catalog["models"]:
if not isinstance(row, dict):
continue
name = row.get("baseModelId")
if not isinstance(name, str):
name = row.get("name")
if isinstance(name, str):
names.append(name.removeprefix("models/"))
print("ID в каталоге:", names)
model = (input("ID [gemini-3.8-flash]: ").strip() or "gemini-3.8-flash").removeprefix("models/")
if model not in names:
raise SystemExit("ID отсутствует в полученном каталоге")
url = base + "/v1beta/models/" + urllib.parse.quote(model, safe="") + ":generateContent"
payload = {"contents": [{"role": "user", "parts": [{"text": "Ответь ровно одним словом: ok"}]}]}
request = urllib.request.Request(url, data=json.dumps(payload).encode("utf-8"), headers=headers, method="POST")
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
detail = error.read().decode("utf-8", errors="replace").replace(key, "[REDACTED]")[:1200]
print("HTTP", error.code, detail)
raise SystemExit(1)
except (urllib.error.URLError, TimeoutError, json.JSONDecodeError, ValueError) as error:
print("Ошибка запроса или формата:", str(error).replace(key, "[REDACTED]")[:1200])
raise SystemExit(1)
if not isinstance(result, dict):
raise SystemExit("Ответ генерации не является JSON-объектом")
candidates = result.get("candidates")
if not isinstance(candidates, list):
raise SystemExit("В ответе нет массива candidates")
texts = []
for candidate in candidates:
if not isinstance(candidate, dict):
continue
content = candidate.get("content")
if not isinstance(content, dict) or not isinstance(content.get("parts"), list):
continue
for part in content["parts"]:
if isinstance(part, dict) and isinstance(part.get("text"), str):
texts.append(part["text"])
if not texts:
raise SystemExit("В candidates не найден текст content.parts[].text")
print("\n".join(texts))
print("usageMetadata:", result.get("usageMetadata"))
Ошибки ключа, квоты и формат запроса
| Ситуация | Действие |
|---|---|
| Клиент использует OpenAI Chat Completions | Документация Zenith указывает базу https://api.zenithmarket.dev/v1 и схему messages; native contents не переносится механически |
Каталог вернул models/ID |
Удалите префикс models/ перед вставкой в путь |
| Отказ ключа | Проверьте домен и владельца ключа; не выводите секрет в лог |
| Google HTTP 402 | Проверьте Prepay: при нулевом балансе останавливаются ключи связанных проектов |
| Google 429 RESOURCE_EXHAUSTED | Проверьте RPM/TPM/RPD проекта и тело ответа; новый ключ того же проекта квоту не увеличит |
| Тайм-аут | Проверьте историю соответствующего провайдера до повтора |
| Официальный Google ID Gemini 3.7 Flash | Google направляет его на 3.8 Flash; одноимённый SKU Zenith не подтверждает такой маршрут |
Стоимость 4 000 входных и 800 выходных токенов
По Standard Paid ставкам Google для Gemini 3.8 Flash до 31.12.2026: $0,75 за миллион входных и $3,75 за миллион выходных токенов. Для 4 000/800: 4000 × 0,75 / 1000000 + 800 × 3,75 / 1000000 = $0,006 за запрос, или $60 за 10 000. Расчёт не включает кэширование, Batch, инструменты и другие функции.
| SKU, отдельный GET /v1/models; metadata одного ключа, 28.10.2026 20:23 UTC | Расчётная сумма за запрос, USD | За 10 000 запросов, USD |
|---|---|---|
| gemini-3.8-flash | 0,000552 | 5,52 |
| gemini-3.7-flash, backend неизвестен | 0,000552 | 5,52 |
| gemini-3.6-flash | 0,000552 | 5,52 |
| gemini-3.5-flash-lite | 0,000292 | 2,92 |
| gemini-3.1-flash-lite | 0,000200 | 2,00 |
По Standard Paid ставкам Google с 01.01.2027 для тех же объёмов: 0,004 млн × $1,50 + 0,0008 млн × $7,50 = $0,012 за запрос, или $120 за 10 000. Это будущий расчёт без дополнительных тарифицируемых функций.




