Avito Pixel

Блог

Ошибки API amoCRM: 401, 403, 429 и проблемы OAuth

Разбор ошибок API amoCRM — 401 Unauthorized, 403 Forbidden, 429 Too Many Requests и сбои OAuth. Что проверить самому и когда нужна диагностика от 5 000 ₽.

Если интеграция «вчера работала», а сегодня сыпет 401, 403 или 429, проблема почти никогда не в «сломанном amoCRM целиком». Это ответ API на конкретный запрос: нет авторизации, нет прав или превышен лимит.

Статья для тех, кто чинит связку сам или хочет понимать смету подрядчика. Платный разбор: исправление ошибок amoCRM.

Содержание

  1. 401 Unauthorized
  2. 403 Forbidden
  3. 429 Too Many Requests
  4. OAuth: типичные поломки
  5. Мини-чеклист
  6. Пример осторожного retry

401 Unauthorized

Смысл: запрос без валидного доступа.

Частые причины:

  • истёк access token, refresh не отработал;
  • интеграцию отключили в кабинете;
  • подставили ключ от другого аккаунта / субдомена;
  • часы сервера сильно «уехали» (реже, но бывает).

Что сделать: обновить токен по refresh; если refresh тоже 401 — пройти OAuth заново; проверить base domain аккаунта.

403 Forbidden

Смысл: вы «кто-то», но на это действие прав нет.

Частые причины:

  • узкие scopes приложения;
  • роль пользователя интеграции без нужных сущностей;
  • попытка писать в воронку/поле вне доступа;
  • IP / ограничения на стороне вашего шлюза (реже путают с 403 CRM).

Что сделать: сравнить scopes с документацией нужных методов; выдать отдельную учётку с явными правами; не использовать личный админ-пароль в cron.

429 Too Many Requests

Смысл: слишком частые запросы. Ориентир вендора для многих интеграций — порядка 7 запросов в секунду на интеграцию (уточняйте актуальный лимит в документации amoCRM на момент работ).

Типичные антипаттерны:

  • опрос API в тупом цикле без backoff;
  • N+1: отдельный запрос на каждую сделку в цикле;
  • несколько копий воркера с одним client_id;
  • ретраи без jitter («все ретраят в одну секунду»).

Что сделать:

  1. Снизить частоту, включить очередь.
  2. Батчить чтения/записи, где API позволяет.
  3. Кэшировать справочники (пользователи, воронки).
  4. При устойчивом 429 на легитимной нагрузке — обсуждать лимиты с вендором после оптимизации своего кода.

OAuth: типичные поломки

Симптом Куда смотреть
Redirect mismatch Точный redirect_uri в кабинете интеграции
Refresh перестал работать Хранение refresh, ротация, повторный authorize
Виджет жив, API мёртв Backend не обновил токен
«Работает у разработчика» Staging client_id ≠ prod

Не храните токены в фронтенде виджета. Не коммитьте секреты в git.

Мини-чеклист перед эскалацией

  1. Полный URL метода и HTTP-код (не скрин «ошибка»).
  2. Тело ответа (без секретов в тикете публично).
  3. Время первой ошибки и последний успешный запрос.
  4. Менялись ли пароли, виджеты, домен, подрядчик.
  5. Частота запросов (RPS) за последние 5–15 минут.

Смежные разборы: не работает интеграция, не приходят заявки.

Пример осторожного retry

Псевдокод — идея, не копипаста «в прод без очереди»:

attempt = 0
while attempt < 5:
  response = call_api()
  if response.status != 429:
    return response
  sleep(min(60, 2 ** attempt) + random_jitter())
  attempt += 1
escalate_or_queue()

При 401 — не крутить retry бесконечно: сначала refresh/OAuth.

Когда звать нас

  • Нет своего backend-разработчика.
  • 429 после «оптимизации», которую делал прошлый подрядчик.
  • Нужен абонемент с мониторингом токенов и лимитов.

Диагностика одного симптома — от 5 000 ₽ (до 60 минут). Исправление — от 10 000 ₽.

Получить помощь с API amoCRM

Контакты

Бесплатно: ответ за 4 рабочих часа, созвон 30 мин, ориентир бюджета. Платный аудит и архитектура — отдельно, от 150 000 ₽.

Опишите задачу и оставьте телефон, email или Telegram.

Укажите в тексте телефон, email или @telegram — иначе не сможем ответить.

Форма зависла? Напишите напрямую: contact@bober-systems.ru · Telegram

Telegram Позвонить