Содержание
- Что нужно до первого запроса
- Где взять ключ в консоли
- Переменная окружения
- Первый запрос через curl
- Формат ответа и SDK
- Модели и что выбрать
- Частые ошибки
- Сохранение ответа curl: практический порядок действий
- Редакционный порядок чтения ответа
- Шаблон для фиксации одного запуска
- Простой запрос для проверки чтения
- Частые вопросы
- Что дальше
Grok API: как получить ключ и сделать первый запрос
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Счёт по выдаче снят собственным прогоном 8 октября 2026 года; цитаты источников приведены дословно. Обновлено: октябрь 2026.
Grok API — это HTTP-интерфейс к моделям xAI. Ключ создаётся в консоли на console.x.ai, хранится в переменной окружения XAI_API_KEY, а первый запрос уходит на https://api.x.ai/v1/responses с моделью grok-4.7. Ниже — путь от аккаунта до ответа модели и разбор типичных ошибок. Мы скачали топ-10 выдачи DuckDuckGo (ru-RU) по запросу «grok api»: текст отдали 5 из 10.
Что нужно до первого запроса
Три вещи: аккаунт xAI, баланс и ключ. В официальном quickstart сказано: зарегистрируйтесь на console.x.ai, затем пополните баланс, чтобы начать пользоваться API. Ключ создаётся на странице API Keys в той же консоли — его можно экспортировать в окружение или положить в .env-файл проекта.
Отдельно от пользовательской подписки X/Grok: доступ к API оформляется в консоли xAI и оплачивается по токенам. Подписка в приложении X и ключ для API — разные сущности, ключ из подписки не выдаётся.
Где взять ключ в консоли
Путь такой: console.x.ai → аккаунт → credits → API Keys → создать ключ. Документация называет этот же маршрут: аккаунт на console.x.ai, пополнение баланса, страница API Keys.
Ключ показывается один раз при создании. Сохраните его сразу — повторно значение не отображается. В REST-справочнике xAI указано, что ключи API создаются на странице API Keys консоли, а для управления (ключи, команды, биллинг, аудит) существует отдельный management-ключ на странице Management Keys.
Переменная окружения
Ключ не хранят в коде. Официальный quickstart показывает Bash export и файл .env. Ниже приведены Bash-пример и редакционный эквивалент установки переменной для Windows PowerShell.
Linux и macOS, bash:
export XAI_API_KEY="your_api_key"
Windows PowerShell:
$env:XAI_API_KEY="your_api_key"
Вместо your_api_key подставьте своё значение. В примерах документации стоит плейсхолдер — реальный ключ туда не вписывают и не публикуют.
Первый запрос через curl
Минимальный вызов Responses API выглядит так:
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.7",
"input": "Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}"
}'
Это дословный пример из quickstart xAI. Ответ приходит в формате JSON: массив output, внутри — объекты с content, а в них поле text с готовым ответом модели. Именно output[].content[].text и есть текст ответа.
Формат ответа и SDK
REST-справочник xAI описывает Responses API как основной интерфейс для генерации текста, рассуждений и вызова инструментов. Эндпоинт POST /v1/responses принимает input строкой или массивом, а в ответе возвращает output — массив сгенерированных элементов.
Если работаете через SDK, поле называется иначе. В примере на Python с библиотекой OpenAI ответ читается как response.output_text. Это не то же самое, что output[].content[].text в сыром JSON: SDK собирает текст в удобное свойство. При отладке сверяйтесь с тем, что реально вернул сервер.
| Способ | Что в ответе | Где смотреть текст |
|---|---|---|
| curl, сырой REST | JSON-объект | output[].content[].text |
| Python SDK (OpenAI) | объект ответа | response.output_text |
| JavaScript SDK | объект ответа | response.output_text |
Модели и что выбрать
Флагманская модель — grok-4.7. В документации xAI она описана как основная для кода и остальных задач: агентный вызов инструментов, настраиваемые рассуждения, контекст 500k токенов. Для изображений есть Grok Imagine Image 2.0, для видео — Grok Imagine Video 1.5, для голоса — Grok Voice API.
Для текста и кода документация советует grok-4.7. Отдельные модели под аудио, изображения и видео вызываются своими эндпоинтами.
Частые ошибки
Переменная, заданная через export, относится к текущему процессу оболочки и его дочерним процессам. Проверьте её наличие именно в окружении запуска запроса, не выводя значение ключа.
Запрос уходит без заголовка Authorization. REST-справочник требует Authorization: Bearer <xAI API key> для inference-эндпоинтов. Без него сервер вернёт ошибку авторизации.
Путаница между output_text и output[].content[].text. Первое — свойство SDK, второе — структура сырого JSON. Если парсите ответ curl вручную, идите по массиву output.
Не тот ключ. Management-ключ создаётся отдельно и предназначен для управления аккаунтом. Для запросов к модели нужен обычный ключ API.
Сохранение ответа curl: практический порядок действий
Ответ curl удобно сохранять сразу в файл, чтобы потом читать его спокойно, без спешки и без повторных сетевых вызовов. Базовый приём — перенаправление вывода в отдельный файл с понятным именем. Добавьте к команде флаг, который фиксирует и тело ответа, и код завершения, тогда у вас останется полная картина одного запуска.
curl -sS -o response.json -w "%{http_code}\n" \
https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-4.7","input":"Reply with READY"}' \
> http_code.txt 2> curl_error.txt
echo "exit=$?" >> http_code.txt
Здесь response.json хранит тело, http_code.txt — код и статус завершения, curl_error.txt — сообщения локального уровня. Такой набор файлов даёт всё нужное для разбора: видно, дошёл ли запрос до сервера, что сервер ответил и не сломалось ли что-то на вашей стороне.
Редакционный порядок чтения ответа
Читайте результат по шагам, от локального уровня к содержательному. Так вы не спутаете причину с следствием.
Ветка первая: curl не найден или команда не запускается. Это локальный этап, сеть ещё не участвовала. Проверьте curl_error.txt и код завершения. Если утилита отсутствует или оболочка не распознаёт команду, дальше читать нечего: сначала устраните локальную причину.
Ветка вторая: ответ есть, но это ошибка. Тело пришло, HTTP-код вне успешного диапазона. Смотрите код, затем тело: там обычно лежит описание проблемы. Локальный этап пройден, вопрос теперь к запросу или правам.
Ветка третья: HTTP-успех, но status равен incomplete. Запрос дошёл, сервер принял его, однако результат неполный. Читайте тело целиком, ищите поля, объясняющие незавершённость, и решайте, нужен ли повтор.
Ветка четвёртая: сообщение пустое. Если поле с текстом пустое, не делайте вывод сразу. Прочитайте в теле JSON поля error, status и output — они подскажут, где искать причину. Пустой текст при непустом ответе часто означает, что содержимое лежит в другом поле.
Отдельное правило: не путайте вывод CLI и свойство SDK. То, что печатает команда в терминал, и то, что возвращает библиотека в коде, — разные представления. Сверяйте структуру именно того источника, из которого читаете.
Шаблон для фиксации одного запуска
Заполняйте его после каждого прогона, чтобы не держать детали в голове.
команда: <текст команды без секретов>
локальная ошибка: <да / нет, кратко>
HTTP-код: <число>
status: <значение>
есть текст: <да / нет>
следующий шаг: <одно действие>
Ключи и токены в шаблон не вписывайте. Храните их отдельно, а в записи оставляйте только пометку, что значение подставлено из окружения.
Простой запрос для проверки чтения
Когда нужно быстро понять, какое поле читать, помогает короткая формулировка.
Ответь одной короткой фразой: какой результат нужно прочитать первым?
Ответ модели подтверждает только содержание одной попытки. Поля ответа определяйте по реальному сохранённому JSON и официальной схеме; текст модели не заменяет описание формата API.
Сохраните ответ целиком перед изменением локального примера. Добавьте к локальной записи время попытки и выбранную модель, чтобы позже сопоставить её с конкретным результатом.
Частые вопросы
Как получить ключ Grok API?
Зарегистрируйтесь на console.x.ai, пополните баланс и создайте ключ на странице API Keys. Значение показывается один раз — сохраните его сразу. Дальше положите ключ в переменную окружения XAI_API_KEY.
Сколько стоит Grok API?
Тарификация идёт по токенам, актуальные ставки смотрите на странице Pricing в документации xAI. Бесплатный ключ официально не обещан — доступ оформляется через консоль с балансом.
Работает ли Grok API из России?
В проверенных quickstart и REST-справочнике нет подтверждения успешного доступа из России. Редакция такой доступ не тестировала; эти материалы не дают основания обещать работу конкретного аккаунта.
Чем Responses API отличается от Chat Completions?
Responses API — основной интерфейс для текста, рассуждений и инструментов. Chat Completions в документации xAI помечен как legacy. Новые проекты логичнее строить на Responses API.
Почему в ответе нет текста, который я жду?
Проверьте, откуда читаете. В сыром JSON текст лежит в output[].content[].text, в SDK — в output_text. Также убедитесь, что запрос ушёл с корректным заголовком Authorization.
Что дальше
После первого успешного запроса стоит разобраться с потоковой выдачей, структурированным выводом и вызовом инструментов — всё это описано в разделе Text Generation документации xAI. Для смежных задач пригодятся материалы блога: NotebookLM в России и Gemini без ВПН — про доступ к сервисам, Дипсик без регистрации — про вход в чат, NotebookLM не работает — про диагностику сбоев.
