Skip to content

Rate limits

How many requests per minute the Slicer API accepts per token, the X-RateLimit headers, the 429 response and other v1 limits.

On this page

Rate limits protect the service from runaway loops and overload. They are counted per token (for apps connected via OAuth — per connection), not per IP address: two of your services with different tokens don't affect each other.

Requests per minute

Bucket Limit Which requests
Regular120 per minuteeverything except the ones below
Paid operations and rendering30 per minutecreating a project, rebuild, retry, AI assistant, caption translation, export
Upload parts1200 per minutePUT /v1/uploads/{id}/parts/{n}

The reference shows which bucket each endpoint belongs to. The window is one minute. Values may change; the current ones always come in the response headers.

Headers

Every API response carries the current state of the limit:

Header Value
X-RateLimit-Limithow many requests are allowed in the window for this bucket
X-RateLimit-Remaininghow many are left in the current window
X-RateLimit-Resetwhen the window resets — Unix time in seconds
Retry-Afteronly in a 429 response: how many seconds to wait before retrying
429 response
HTTP/1.1 429 Too Many Requests
Retry-After: 17
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792152060

{
  "ok": false,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Too many requests: no more than 120 per minute per token",
    "retryAfterSec": 17
  }
}

Staying within the limit

  • Poll status every 5 seconds, not more often: a montage takes minutes, and frequent polling won't speed it up. Better yet, use webhooks: they arrive on their own and don't use up the limit.
  • Upload parts in parallel, but in moderation — 4–6 streams are enough to upload a large file quickly.
  • Cache the catalog GET /v1/styles — it rarely changes.
  • On 429, wait Retry-After seconds and repeat the same request with the same Idempotency-Key — see Errors.

Other limits

What Limit
Active API tokens per account20
Webhooks per account5
Materials in one project (uploadIds)up to 20; exact limits per kind — GET /v1/styles → materialLimits
Concurrent imports from URLs3 per account; more — 429 too_many_imports
Operations in one edit requestup to 80
Publications in one exportup to 8 accounts
Upload link uploadUrlone file, up to 1 hour
Webhook response timeout10 seconds

File size, duration and format limits are the same as in the app: File formats and limits.

Besides per-token limits, the service has general overload protection by network address — normal use doesn't run into it.

What's next