Лимиты

В castbase действуют три вида лимитов: лимиты тарифа проекта, лимит запросов на ключ и лимиты самого Instagram.

Лимиты тарифа

Тариф задаёт, сколько в проекте может быть постов в месяц и каналов. Бесплатный тариф — со своими ключами Instagram; платные дополнительно открывают подключение через приложение castbase («Войти через Instagram»). Актуальные значения тарифов — на странице «Тарифы» в кабинете проекта (значения, которые ещё не определены, показываются как «уточняется»).

Расход и остаток — GET /v1/usage:

{
  "plan": {"code": "free", "title": "Бесплатный", "period_end": null},
  "period": {"start": "2026-11-01T00:00:00+00:00", "resets_at": "2026-12-01T00:00:00+00:00"},
  "posts": {"limit": 100, "used": 12, "remaining": 88},
  "channels": {"limit": 3, "used": 1},
  "managed_connect": false,
  "placeholder": false
}

limit: null — ограничения нет. period.resets_at — когда счётчик постов обнулится. channels.used — каналы, занимающие место в лимите: подключённые и ещё проверяемые. Не считаются отключённые, неудавшиеся подключения и канал в статусе reauth_required — его можно переподключить новым токеном на том же тарифе.

Превышение

Лимит Ответ Что делать
Постов в месяц 429 posts_limit_exceeded + Retry-After (секунды до сброса), поля limit, plan, resets_at дождаться сброса или сменить тариф
Каналов 402 channels_limit_exceeded, поля limit, plan отключить канал или сменить тариф: ждать бесполезно

Различие 429 и 402 осмысленное: 429 проходит со временем, 402 — только со сменой тарифа. Пост засчитывается в лимит при постановке в расписание.

{
  "type": "https://castbase.ru/docs/errors#posts_limit_exceeded",
  "title": "Лимит тарифа исчерпан",
  "status": 429,
  "detail": "Лимит постов в месяц по тарифу исчерпан: 100. Счётчик обнулится 2026-12-01T00:00:00+00:00.",
  "code": "posts_limit_exceeded",
  "limit": 100,
  "plan": "free",
  "resets_at": "2026-12-01T00:00:00+00:00"
}

Лимит запросов

На каждый API-ключ — не больше 600 запросов в минуту (скользящее окно; одно значение на /v1 и /mcp). Сверх этого — 429 rate_limited и заголовок Retry-After с числом секунд до следующей попытки:

HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/problem+json

Обрабатывайте 429 так: подождать Retry-After секунд и повторить тот же запрос с тем же Idempotency-Key. Не опрашивайте ленту событий чаще раза в несколько секунд: минуты достаточно.

Лимиты Instagram

Instagram ограничивает число публикаций аккаунта за скользящие 24 часа и частоту вызовов API. castbase следит за этим сам: перед публикацией спрашивает у Instagram текущую квоту, а если она исчерпана, откладывает цель (deferred, событие post.deferred, retry_at — когда попробуем снова) вместо того, чтобы получить блокировку аккаунта. Подробнее — в разделе Особенности Instagram.