Ошибка 401 с ключом sk-heli-: что проверить

401 Unauthorized означает, что сервер не принял ключ из заголовка Authorization. У Heli причин немного: ключ скопирован неточно, отозван, передан не в том заголовке — или запрос вообще ушёл не на getheli.ru, а в API OpenAI. Ниже — как быстро понять, какой из вариантов ваш.

Как выглядит ответ Heli

Heli отвечает в формате OpenAI, поэтому SDK превращает ответ в AuthenticationError. Если в тексте ошибки упоминается platform.openai.com, ключ проверял не Heli: клиент не получил base URL и отправил запрос в OpenAI.

code
HTTP/1.1 401 Unauthorized
{
  "error": {
    "message": "Incorrect API key provided. Проверьте ключ во вкладке «Ключи» кабинета Heli.",
    "type": "authentication_error",
    "param": null,
    "code": "invalid_api_key"
  }
}

# Проверка ключа без SDK
curl -i https://getheli.ru/v1/models \
  -H "Authorization: Bearer sk-heli-ВАШ_КЛЮЧ"

Что проверить по порядку

  • Заголовок: Authorization: Bearer sk-heli-…, с пробелом после Bearer. Ключ в query-параметре или в заголовке x-api-key Heli не принимает.
  • Ключ целиком: без кавычек и переносов строки внутри значения. При копировании из мессенджера часто теряется последний символ.
  • Статус ключа во вкладке «Ключи» кабинета: отозванный ключ больше не принимается. При ротации старый ключ действует ещё какое-то время, затем отзывается — обновите его во всех сервисах заранее.
  • Base URL: https://getheli.ru/v1. Если в коде задан только ключ, OpenAI SDK возьмёт OPENAI_BASE_URL из окружения или отправит запрос в OpenAI.
  • Ключ того сервиса: ключи других платформ в Heli не подходят, как и sk-heli-… в чужих API.
  • Переменная окружения видна процессу: после правки .env перезапустите сервер, контейнер или IDE.

Когда 401 превращается в 429

После серии неудачных попыток авторизации с одного IP или с одним и тем же ключом Heli временно отвечает 429 Too many authentication failures с заголовком Retry-After. Это защита от перебора ключей. Исправьте ключ, дождитесь окончания паузы и не запускайте ретраи на ответ 401 — он не исправится повтором.

Какой моделью проверять

Для проверочного запроса подойдёт любая недорогая модель: так тест ключа почти не тратит баланс.

Gemini 3.5 Flash Lite — быстрый тестовый запрос.

GPT-5.4 nano — проверка совместимости OpenAI SDK.

Похожие ошибки

  • 402 insufficient_balance — ключ верный, но закончился баланс; нужно пополнение.
  • 429 rate_limit — ключ верный, но запросов слишком много.
  • Модель не найдена — ключ верный, но слаг модели указан без префикса вендора.
  • Таймаут вместо 401 — запрос не доходит до сервера: проверьте сеть, прокси и DNS.

Документация API

Оплата — пополнение баланса.

Безопасность ключа sk-heli-

Попробуйте Heli

Ключ sk-heli- появляется после подтверждения почты. Через Google и Яндекс — сразу в кабинете.

Документация API · Модели и цены

Читайте также