AI-инструменты

API-ключ не работает — чеклист из 3 причин, которые ловят всех

Иллюстрация: ключ почти подходит к замку, но застрял

Ты получил ключ к API, вставил, запустил — и в ответ 401 Unauthorized или invalid API key. Ключ вот он, прямо перед глазами, выглядит правильным. А сервис говорит «не знаю такого».

Хорошая новость: причин почти всегда три, и все банальные. Сейчас пройдём их сверху вниз — от самой частой. В 9 случаях из 10 дело решится на первом шаге.

Причина 1 (самая частая): ключ не подхватился или с опечаткой

Чаще всего проблема не в ключе, а в том, как он до кода доехал. Лишний пробел в начале, случайные кавычки, невидимый перенос строки при копировании — и сервис видит уже не тот ключ. Или ты исправил ключ в файле .env, но приложение всё ещё держит в памяти старое значение.

Как проверить. Не печатай ключ целиком (это секрет), но распечатай его длину и пару первых-последних символов: совпадают с тем, что в панели сервиса? Часто сразу видно лишний пробел или что подставился вообще пустой текст.

Как починить. Пересоздай переменную окружения заново — аккуратно, без пробелов и кавычек вокруг значения. Затем перезапусти приложение или сервер: переменные читаются при старте, на лету они не обновляются. Ещё частая ловушка — перепутать тестовый и боевой ключ (test vs live): проверь, что взял нужный.

Причина 2: ключ передаётся не туда

Ключ правильный, но ты кладёшь его не в то место или не в том виде. Один сервис ждёт его в заголовке Authorization: Bearer ТВОЙ_КЛЮЧ, другой — в x-api-key: ТВОЙ_КЛЮЧ, третий — параметром в адресе. Перепутал формат — и сервис тебя не узнаёт, хотя ключ верный.

Особенно часто забывают слово Bearer перед ключом или ставят ключ в адрес запроса вместо заголовка.

Как проверить. Открой документацию сервиса, раздел Authentication: там дословно показано, в каком заголовке и в каком формате передавать ключ. Сравни со своим запросом по буквам.

Как починить. Самый надёжный путь — использовать официальный SDK сервиса: он сам ставит ключ в правильный заголовок, и эта причина отпадает целиком. Если SDK нет — приведи заголовок ровно к тому, что в доке.

Причина 3: с ключом проблема на стороне сервиса

Бывает, что ключ верный и передан правильно, но сам он «нерабочий»: не активирован, отозван, на счёте кончились деньги, не подключён нужный продукт или ты упёрся в лимит запросов (тогда код будет 429, а не 401).

Как проверить. Зайди в панель сервиса, найди свой ключ. Там виден его статус: активен ли, к какому проекту привязан, есть ли баланс, не истёк ли срок. Заодно глянь, включён ли нужный сервис для этого ключа.

Как починить. Активируй ключ, пополни баланс, включи нужный продукт — что именно, подскажет статус. Если ключ отозван или «протух» — просто выпусти новый и подставь его (не забудь перезапустить приложение, см. причину 1).

Я случайно закоммитил ключ в GitHub — что делать?

Считай его скомпрометированным, даже если репозиторий приватный. Немедленно отзови (revoke) этот ключ в панели сервиса и выпусти новый. Удалить коммит мало — ключ уже мог попасть в чужие руки. На будущее держи ключи только в .env и храни их безопасно.

Ключ в .env, но не читается — почему?

Пройди короткий чеклист: файл .env лежит в корне проекта? Имя переменной в файле точно совпадает с тем, что ждёт код (регистр важен)? Сервер перезапущен после правки? И не подменил ли значение случайный пробел или кавычки? Эти четыре вопроса закрывают почти все «не читается».

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →