xAI Grok API: подключение Grok 4.7, цена и контекст 256K

Как вызвать grok-4.7 через OpenAI-совместимый API, что делать с лимитом контекста 256K и сколько стоят типичные запросы. Плюс сравнение с Grok 4.6.

4 мин · · модели · API-ключи

Если вам нужен xAI Grok API, но напрямую подключаться неудобно, модель grok-4.7 можно вызвать через шлюз в обычном OpenAI-совместимом формате. Ниже: как подключиться, чем отличается контекст 256K от миллиона токенов у других моделей, как отправлять картинки и сколько стоят типичные запросы. Пополнить баланс из России можно по СБП, картой MasterCard или криптой.

Что за модель

Цены на 18 октября 2026, $ за 1M токенов. «Сила» — Intelligence Index (Artificial Analysis).

МодельZukko вход / выходКэш: чтение / записьОфициальный вход / выходКонтекстКартинкиСила
grok-4.70.175 / 0.5130.025 / 0.1753 / 15256Kда47
grok-4.60.138 / 0.40.013 / 0.1383 / 15256Kда44
grok-4.50.113 / 0.3380.013 / 0.1133 / 15256Kда40

Главное отличие от большинства моделей каталога: контекст 256K, а не 1M. Для переписки, кода и документов средней длины этого хватает с запасом, но для огромных репозиториев и книг придётся резать входные данные или выбирать модель с контекстом 1M. Индекс силы Grok 4.7 выше, чем у 4.6 (47 против 44), цена в Zukko тоже выше. Контекст, приём картинок и официальные цены у них совпадают.

Подключение

Нужен ключ fetch_..., его создают в кабинете Zukko. Адрес OpenAI-формата — с /v1 на конце.

bash
pip install openai
export ZUKKO_API_KEY="fetch_ваш_ключ"
bash
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",
    api_key=os.environ["ZUKKO_API_KEY"],
)

resp = client.chat.completions.create(
    model="grok-4.7",
    messages=[
        {"role": "system", "content": "Отвечай по-русски, коротко."},
        {"role": "user", "content": "Объясни, что такое идемпотентность запроса."},
    ],
    max_tokens=400,
)

print(resp.choices[0].message.content)
print(resp.usage)

Через curl то же самое:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer $ZUKKO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-4.7","messages":[{"role":"user","content":"Привет"}],"max_tokens":100}'

Если получите 404 model_not_found, сверьте id: правильно grok-4.7, с точкой.

Картинки на входе

grok-4.7 принимает изображения. В OpenAI-формате картинка передаётся блоком image_url; локальный файл кодируется в data URL:

bash
import base64

with open("screenshot.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="grok-4.7",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Что на этом скриншоте не так?"},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
        ],
    }],
    max_tokens=500,
)
print(resp.choices[0].message.content)

Картинка входит в счёт входных токенов, сколько именно — смотрите в поле usage.prompt_tokens после запроса, заранее число придумывать не стоит. Частые ошибки с размером и форматом разобраны в статье про ошибки при отправке изображений.

Что делать с лимитом контекста 256K

Если вход превышает окно модели, запрос завершится ошибкой. Типичные ответы: 413, если запрос слишком большой, либо сообщение провайдера о переполнении контекста; формулировка может меняться, поэтому ориентируйтесь на код ответа. Разбор таких ошибок есть в статье про context_length_exceeded. Практические приёмы:

  • Режьте историю диалога: оставляйте системный промпт и последние N сообщений, а старое сворачивайте в короткую сводку.
  • Для длинных документов делите их на части и обрабатывайте по очереди, а затем объединяйте результаты.
  • Для действительно больших входов выбирайте модель с контекстом 1M, например claude-sonnet-5-5 или gpt-6.1-sol.
  • Следите за usage.prompt_tokens и сигнализируйте себе, когда вход приближается к 80% окна.

Простая защита от переполнения по числу символов (оценка грубая, сверяйте с usage):

bash
MAX_CHARS = 300_000  # эвристика с запасом для русского текста

def trim_history(messages: list[dict]) -> list[dict]:
    system, rest = messages[0], messages[1:]
    while rest and sum(len(m["content"]) for m in rest if isinstance(m["content"], str)) > MAX_CHARS:
        rest.pop(0)
    return [system] + rest

Сколько стоят типичные запросы

Формула: вход / 1M × цена входа + выход / 1M × цена выхода (+ кэш, если есть).

Чат: 3000 входных и 500 выходных токенов

  • Grok 4.7: 3000 × 0.175 / 1M + 500 × 0.513 / 1M = 0.000525 + 0.0002565 = около $0.00078.
  • Grok 4.6: 3000 × 0.138 / 1M + 500 × 0.4 / 1M = 0.000414 + 0.0002 = около $0.00061.

Почти заполненное окно: 200 000 входных и 2000 выходных токенов

  • Grok 4.7: 200 000 × 0.175 / 1M + 2000 × 0.513 / 1M = 0.035 + 0.001026 = около $0.036.
  • Grok 4.6: 200 000 × 0.138 / 1M + 2000 × 0.4 / 1M = 0.0276 + 0.0008 = около $0.028.

Тот же запрос, если 150 000 токенов читаются из кэша. Кэш учитывается, когда провайдер сообщает чтение в ответе. Для Grok 4.7: свежий вход 50 000 × 0.175 / 1M = 0.00875; чтение 150 000 × 0.025 / 1M = 0.00375; выход 0.001026; итого около $0.0135. Отдельно за запись кэша для таких моделей шлюз не списывает.

Видно, что цена растёт не от «магии модели», а от размера входа: длинный контекст стоит дорого сам по себе. Разберём эту тему отдельно в статье про стоимость длинного контекста. Актуальные цены всегда смотрите через GET https://api.zukko.pro/v1/models или на странице «Модели» в кабинете.

Grok 4.7 или 4.6

Разница по таблице: индекс 47 против 44, вход 0.175 против 0.138, выход 0.513 против 0.4. Если для вашей задачи Grok 4.6 даёт ответы нужного уровня, он обходится дешевле. Если нет, обновление оправдано, но подтвердить это можно только тестом на ваших данных, а не индексом. Обзор предыдущей версии — в статье Grok 4.6 через API.

Частые вопросы

Нужен ли отдельный аккаунт xAI?

Нет. Достаточно ключа fetch_...: он работает со всеми моделями каталога, в том числе с Claude, GPT и DeepSeek.

Подходит ли Anthropic-формат для Grok?

Любую модель можно вызывать и в OpenAI-формате, и в Anthropic-формате. Для кода на OpenAI SDK проще использовать /v1/chat/completions.

Почему контекст только 256K?

Таков лимит модели в каталоге. Если нужен миллион токенов, выбирайте из моделей с контекстом 1M в списке GET /v1/models.

Как ограничить расход?

Создайте отдельный ключ с дневным лимитом в долларах и списком разрешённых моделей, а в запросах задавайте max_tokens.

Чтобы попробовать модель, создайте ключ в кабинете Zukko: пополнение от $1.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.