Skip to main content
Rate limits are applied per workspace and affect generation endpoints. Plan for them early if you’re sending generations at scale.

Types of rate limits

There are three independent rate limits, all enforced on generation requests only: Image and video RPM are tracked separately. The concurrent requests limit is shared across both.
Your current rate limits are shown in the developer dashboard. Limits vary by account setup.

How this affects image and video generation

  • Image generations count when you submit the generation.
  • Video generations count when you submit the generation.
  • Polling GET /v2/videos/generations/{id} is a read operation. It does not create a new generation.
  • Pending video generations can still count against your concurrent limit until they finish.

Rate limit headers

Every generation response includes headers so you can track your usage: When you exceed the RPM limit, the API returns HTTP 429 with an additional header:

Concurrent request limit

The concurrent limit caps in-flight generation requests across both endpoints. Pending video generations count against this limit. When exceeded, the API returns 429:

Handling rate limits

Use the Retry-After header with exponential backoff.
If you run your own queue, back off new generation submissions when remaining capacity is low. Keep polling separate from submission throughput control so retries do not crowd out new work.