Лимиты и окна
Дневной и общий лимиты, скользящее окно 300 минут, rate limit ~30 запросов в минуту и что делать при ошибке 429.
Обновлено 21 июл. 2026 г.⏱ 5 мин
#лимиты#limits#окно#rate limit#429#rpm
Лимиты защищают баланс от неожиданного расхода и держат стабильный поток запросов. Базовые значения подходят для одного разработчика; для команд и продакшена они настраиваются индивидуально.
#Виды лимитов
| Лимит | Что ограничивает | По умолчанию |
|---|---|---|
| Дневной | Расход за сутки | Зависит от тарифа (напр. PRO — $45/день) |
| Общий (баланс) | Всего доступно средств | Остаток на балансе |
| Окно | Расход за скользящие 300 минут | Настраивается на ключ |
| Rate limit | Запросов в минуту | ~30 rpm (базово) |
#Скользящее окно 300 минут
В отличие от жёсткого 5-часового окна у вендоров, здесь используется мягкое скользящее окно (по умолчанию 300 минут) на уровне ключа. Оно сглаживает всплески расхода, но не блокирует вас на несколько часов, как официальные тарифы.
✓
Без 5-часового окна вендора
Пакеты tkbk.io работают без жёсткого 5-часового окна Anthropic и без недельных капов. Ключ активен сразу после оплаты и не «замораживается».#Rate limit ~30 rpm
Базовый предел — примерно 30 запросов в минуту. Для корпоративных клиентов и высоконагруженных пайплайнов лимит поднимается индивидуально — напишите @nukind.
#Что делать при 429
- 1Не долбите endpoint в цикле — это только продлевает throttle.
- 2Добавьте экспоненциальный backoff между повторами.
- 3Снизьте параллелизм или разнесите запросы во времени.
- 4Если 429 приходит из-за дневного лимита или окна — проверьте расход в кабинете.
ретрай с backoff
async function withRetry(fn, tries = 4) {
for (let i = 0; i < tries; i++) {
try {
return await fn();
} catch (e) {
const status = e && e.status ? e.status : 0;
if (status !== 429 && status < 500) throw e;
await new Promise((r) => setTimeout(r, 500 * 2 ** i));
}
}
throw new Error("Retries exhausted");
}