Dashboard
APISubscription Bot API Rate Limits | BotSubscription

Subscription Bot API Rate Limits

The Telegram subscription bot and Discord subscription bot API uses rate limits to keep integrations responsive. Check the response headers before retrying a throttled request.

Default limits

The default is 60 requests per fixed 60-second window, per HTTP method and route pattern. Buckets are normally scoped to the project. Both the client IP and supplied Bearer token are checked as separate subjects; authenticated requests must fit both limits.

Requests can arrive in a burst. This quota does not require evenly paced one-request-per-second traffic.

Routes can override the default with higher or lower limits. For example, project deletion allows five requests per five minutes. Use the limit documented for the operation you call.

Rate-limit response headers

HeaderMeaning
X-RateLimit-LimitRequests allowed in the current window
X-RateLimit-RemainingRemaining requests in the current window
X-RateLimit-ResetSeconds remaining until the window resets
Retry-AfterSeconds to wait before another attempt after throttling

Handling throttled requests

Exceeding a limit returns 429. A typical error body is:

{
  "ok": false,
  "code": 429,
  "error": {
    "error_code": "TOO_MANY_REQUESTS",
    "message": "Rate limit exceeded"
  }
}

Wait for the response's Retry-After delay. If it is unavailable, use bounded exponential backoff. Keep the original body and idempotency key when retrying writes; a new key represents a new action.

Repeated violations can trigger a temporary ban. By default, ten violations within the configured window cause a 600-second ban. Some routes disable this escalation.

The default limiter fails open if its backing service is unavailable. Selected credential and destructive operations fail closed with 429 instead.

Reduce unnecessary requests

Last updated: