Перейти к статье
API429 / Практика

Gemini API в n8n: подключение API429 и первый запрос

Пошаговая настройка HTTP Request: ключ в credentials, проверка модели, JSON-запрос и передача ответа следующему узлу n8n.

Ноутбук и блокнот со схемой подключения приложения к Gemini API; иллюстрация создана с помощью ИИ
Подключение приложения к API · Иллюстрация создана с помощью ИИ

Gemini можно подключить к n8n через узел HTTP Request: он отправляет запрос в API429, а следующий узел получает текст ответа. Для начала нужны аккаунт API429, ключ и доступная текстовая модель. Ниже — настройка одного ручного запуска, которую затем можно встроить в свой workflow.

Подготовьте ключ и выберите модель

Создайте API-ключ в личном кабинете и проверьте баланс. Если только выбираете способ подключения, начните со страницы Gemini API из России. Ключ API429 работает с адресом шлюза; ключ от Google AI Studio сюда не подставляется.

В n8n создайте workflow с узлом Manual Trigger и добавьте HTTP Request. Для проверки доступа укажите:

  • Method: GET.
  • URL: https://gateway.api429.com/v1/models.
  • Authentication: Generic Credential Type → Header Auth.
  • В новых credentials задайте Name: Authorization, Value: Bearer ВАШ_КЛЮЧ_API429.

Сохраните ключ в credentials, а не в тексте узла или заметках. Запустите проверку вручную. Из ответа data выберите точный id текстовой модели Gemini. Публичный каталог моделей помогает сравнить возможности и цены, но доступ конкретного ключа проверяется этим запросом.

Настройте запрос к Gemini

После проверки каталога добавьте второй HTTP Request и подключите его к Manual Trigger для отдельного пробного запуска. Используйте те же Header Auth credentials. В настройках выберите POST, адрес https://gateway.api429.com/v1/chat/completions, включите Send Body, укажите JSON и вставьте тело:

{
  "model": "gemini-3.1-pro-preview",
  "messages": [
    {
      "role": "user",
      "content": "Сократи текст до одного предложения: Команда обновила базу знаний и добавила поиск по инструкциям. Теперь сотрудникам проще находить ответы."
    }
  ],
  "max_tokens": 128,
  "stream": false
}

Замените model на точный ID из ответа вашего /v1/models, если указанная модель отсутствует. Имя в примере — ID публичного каталога API429, а не обещание доступности для любого аккаунта. Для первого запроса оставьте короткий текст и небольшой предел ответа. Вызов генерации оплачивается по тарифу модели.

В опциях ответа выберите JSON. Для этого примера оставьте Include Response Headers and Status выключенным, чтобы тело ответа находилось непосредственно в выходном объекте. Установите Timeout, например 60000 миллисекунд. Не включайте автоматические повторы до проверки одиночного запуска.

Как передать ответ следующему узлу

Добавьте Edit Fields после запроса. Создайте поле answer и задайте выражение:

{{ $json.choices[0].message.content }}

После успешного вызова здесь должен быть текст модели. Если вы включили возврат заголовков и статуса, тело вложено в body, и путь будет другим:

{{ $json.body.choices[0].message.content }}

Перед последующими действиями проверяйте, что choices существует и ответ непустой. Не отправляйте пустое сообщение пользователю и не помечайте задачу выполненной только по HTTP 200. Для JSON-ответов добавьте проверку структуры, прежде чем сохранять данные в CRM или таблицу.

Как подставлять текст из предыдущего узла

Когда короткий пример работает, замените постоянный текст входными данными. В режиме выражения для всего JSON-тела можно использовать объект:

{{ {
  model: 'gemini-3.1-pro-preview',
  messages: [{ role: 'user', content: String($json.text ?? '') }],
  max_tokens: 128,
  stream: false
} }}

Здесь text — поле, которое должен создать предыдущий узел вашего workflow. До отправки отфильтруйте пустые значения. Объектное выражение позволяет корректно передать кавычки и переводы строк; не собирайте JSON ручной склейкой строк. ID модели тоже должен соответствовать вашему каталогу.

Ошибки подключения и повторные попытки

Ситуация Что проверить Следующее действие
401 или 403 Ключ, пробел после Bearer, права аккаунта Исправить credentials; не повторять тот же запрос циклически
404 или model not found Адрес и точный ID модели Снова получить /v1/models
400 JSON, обязательные поля и параметры модели Сверить тело с документацией API429
429 Лимиты, параллельные запуски, баланс и сообщение ошибки Уменьшить нагрузку; при временном ограничении выдержать паузу
Таймаут Время ожидания и результат операции в кабинете Проверить списание перед новой попыткой
Пустой текст Структуру ответа и причину завершения Направить задачу на обработку ошибки

Для временных ошибок ограничьте число повторов и увеличивайте задержку между попытками. Если сервер вернул Retry-After, учитывайте его. Проверка баланса и сообщения ошибки важна: не каждый 429 исправляется ожиданием. После неоднозначного таймаута повтор может создать ещё один платный запрос.

Перед включением расписания

Прогоните несколько типичных входов вручную, включая пустой текст и длинное сообщение. Проверьте формат результата, время обработки и фактическое списание. Оценить бюджет поможет расчёт стоимости Gemini API.

Ограничьте одновременные исполнения и добавьте ветку ошибки. Не подключайте отправку клиентам или запись в рабочую CRM, пока не проверен результат. При экспорте workflow убедитесь, что в нём нет ключа, личных данных и сохранённых тестовых ответов.

Можно ли повторить настройку в Make?

Да, тот же HTTP-контракт можно использовать в модуле HTTP: GET для списка моделей и POST для Chat Completions. Адрес, Bearer-авторизация и JSON-тело остаются теми же; названия настроек, хранение секрета и путь к ответу зависят от инструмента. Для конкретной конфигурации сверяйтесь с документацией вашей версии.

Для генерации изображений нужен другой метод — смотрите Nano Banana API. Все поддерживаемые методы и поля описаны в документации API429.

Источники и документация

  1. API429: публичный контракт API
  2. API429: каталог моделей и тарифов
  3. n8n: HTTP Request
  4. n8n: HTTP credentials

Следующий шаг — на практике.

Перед интеграцией проверьте ID модели, актуальную цену и формат запроса. Доступность зависит от модели и маршрута провайдера.

Telegram