GAPI

Ошибки и лимиты

Коды ответов

Четыре кода ошибок и что делать с каждым
КодЧто значитЧто делать
400Ссылка с другой платформы или составлена неверноПроверьте входные данные
401Ключ не передан, неизвестен или отозванСм. аутентификацию
404Пост не найден, закрыт или удалёнНе повторять
429Месячная квота исчерпана или слишком много запросов в секундуДождитесь сброса или смените тариф
502Резолвер временно недоступенПовторить один раз через секунду-две

Повторные попытки

Автоматически повторять стоит только 502. 404 означает, что поста больше нет в источнике — повтор просто потратит квоту на то, что никогда не разрешится.

res = call_api(url)

if res.status_code == 502:          # transient — one retry clears most of them
    time.sleep(1.5)
    res = call_api(url)

if res.status_code == 404:          # the post is gone; retrying only burns quota
    skip(url)

Формат ошибки

{ "detail": "Post not found, private, or removed" }

Месячные квоты

ТарифЗапросов в месяцЦена
Бесплатный500$0
Мини5 000$1.99
Старт10 000$2.99
Плюс15 000$3.99
Про20 000$4.99
Бизнес35 000$6.99
Масштаб50 000$8.49

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

Лимиты скорости

ТарифВ секундуВ час
Бесплатный1500
Мини21 500
Старт32 500
Плюс43 500
Про54 500
Бизнес87 000
Масштаб109 000

С кодом 429 отвечают два разных потолка. Слишком быстрый всплеск возвращает заголовок Retry-After и отпускает в пределах секунды; исчерпанная месячная квота такого заголовка не даёт и ждёт первого числа. Различать их можно по этому заголовку.

Вызов, отклонённый любым из потолков, ничего не стоит — до месячного счётчика он не доходит.

Текущий расход виден в кабинете.