Назад в блог

Решение проблемИнструкция

Частые ошибки подключения и их исправление

Что означают 401, 402, 400, 404, 413, 429 и 503 при подключении к API CheapTokens, как выглядят ответы и как исправить каждую ошибку.

Автор: CheapTokens TeamОпубликовано 3 мин чтения

Список кодов ответа 401, 402, 400, 404 и 429 с короткими пояснениями в терминале
Содержание
  1. Быстрая проверка
  2. 401 — неверный API-ключ
  3. 402 — пустой баланс или в запросе нет ключа
  4. 404 — неверный адрес
  5. 400 — модель не найдена
  6. 413 — слишком большой запрос
  7. 429 — слишком много запросов
  8. 503 — модель временно недоступна
  9. Долгое ожидание и тайм-ауты

Почти любая проблема с подключением сводится к четырём вещам: адрес, ключ, ID модели и баланс. Начните с быстрой проверки ниже, затем найдите свой код ответа. Тела ответов в статье — настоящие ответы API (октябрь 2026 года).

Быстрая проверка#

bash
# 1. Адрес доступен — этому запросу ключ не нужен
curl https://api.cheaptokens.dev/v1/models

# 2. Ключ и баланс работают — крошечный запрос (стоит доли цента)
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "max_tokens": 5,
       "messages": [{"role": "user", "content": "ping"}]}'

Если не работает первая команда — причина может быть в сети на вашей стороне, в опечатке в адресе или во временной недоступности самого сервиса. Если не работает только вторая — найдите её код ответа ниже. Если обе работают, а инструмент нет, сравните его настройки с этими двумя командами.

401 — неверный API-ключ#

json
{"error": {"message": "Invalid API key", "type": "authentication_error"}}

Клиенты в стиле Anthropic получают ту же ошибку в своём формате:

json
{"type": "error", "error": {"type": "authentication_error", "message": "Invalid API key"}}

Причины:

  • ключ скопирован не полностью, с пробелом или кавычками;
  • ключ обновили в кабинете — старый больше не работает;
  • вместо ключа CheapTokens указан ключ другого сервиса, например OpenAI;
  • переменная окружения пуста в этом терминале: echo ${#CHEAPTOKENS_API_KEY} выведет её длину.

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

402 — пустой баланс или в запросе нет ключа#

API возвращает 402 в двух разных ситуациях:

  1. Закончился баланс. Запросы оплачиваются с баланса; когда он заканчивается, ключ приостанавливается. Пополните баланс в кабинете — и запросы снова пойдут.
  2. В запросе вообще нет ключа. Если нет заголовка Authorization (или x-api-key у клиентов в стиле Anthropic), API отвечает 402 с типом insufficient_funds. Проверьте, что инструмент действительно отправляет ключ: в стиле OpenAI это Authorization: Bearer <ключ>.

404 — неверный адрес#

json
{"error": {"message": "Invalid URL (GET /v1/chat/completion)", "type": "invalid_request_error", "param": null, "code": null}}

Опечатка в пути — здесь completion вместо completions. Другие частые причины:

  • В адресе API нет /v1. Клиентам в стиле OpenAI нужен https://api.cheaptokens.dev/v1. Без /v1 запрос не попадает в API, и вместо JSON приходит обычная HTML-страница 404.
  • /v1 дважды. Некоторые клиенты добавляют /v1 сами — тогда адрес должен быть корневым, https://api.cheaptokens.dev. Клиенты в стиле Anthropic всегда используют корневой адрес.

400 — модель не найдена#

json
{"error": {"message": "Model \"deepseek-v4-flash\" not found. Available: …", "type": "invalid_request_error", "param": "model"}}

ID модели должен быть полным, с префиксом до косой черты: deepseek-ai/DeepSeek-V4-Flash-0731, а не deepseek-v4-flash. Регистр букв не важен. В тексте ошибки перечислены доступные ID, а полный список всегда есть в GET /v1/models.

400 приходит и на некорректное тело запроса — например, пустой массив messages (messages field is required and must be a non-empty array) или сообщение без role.

413 — слишком большой запрос#

Размер тела запроса ограничен 16 МБ. Агенты могут упереться в лимит, если кладут в контекст огромные файлы или логи. Отправляйте только нужные модели фрагменты и сокращайте длинный вывод инструментов.

429 — слишком много запросов#

Если пришёл 429, снизьте частоту запросов. В ответе есть заголовок Retry-After — сколько секунд подождать. Официальные SDK OpenAI повторяют запрос сами (max_retries); в своём коде дождитесь Retry-After перед следующей попыткой.

503 — модель временно недоступна#

Модель может быть временно недоступна — тогда API отвечает 503 с типом model_unavailable, а в карточке модели на сайте написано «временно недоступна». Повторите запрос позже или поменяйте поле model на другую модель — ключ и адрес остаются прежними.

Долгое ожидание и тайм-ауты#

Рассуждающие модели, например zai-org/GLM-5.3-Flash, думают перед ответом, поэтому первый токен может прийти не сразу. Используйте потоковые ответы или увеличьте тайм-аут клиента — например, timeout=120 в SDK OpenAI.