For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardAPI PricingGet an API key
  • Guides
    • Introduction
    • Getting started
    • Use with AI agents
    • Examples
    • Authentication
    • Handling async tasks
    • File uploads
    • File hydration
    • Embedding videos
    • Errors
    • Rate limits
    • Libraries & SDKs
  • REST API Reference
    • Overview
    • Workflows
        • POSTGenerate image
        • POSTGenerate video clip
        • POSTText to speech
        • POSTGenerate sound effect
        • POSTGenerate avatar clip
        • POSTVectorize image
        • POSTRemove background from an image
        • POSTRemove background from a video
        • POSTUpscale an image
        • POSTUpscale a video
        • POSTCancel tool execution
        • GETGet tool execution info
        • GETList files
        • POSTSearch files
        • GETGet file
        • POSTCreate file upload
        • POSTHydrate file
        • POSTArchive file
        • POSTEnable public preview
        • POSTDisable public preview
        • GETList avatar presenters
        • GETList TTS voices
        • GETList webhooks
        • POSTCreate webhook
        • DELDelete webhook
  • Webhook events
    • Overview
    • Changelog
LogoLogo
DashboardAPI PricingGet an API key
On this page
  • Default limits
  • Response headers
  • Handling 429 responses
Guides

Rate limits

Understand the request limits applied to your API key.
Was this page helpful?
Previous

Libraries & SDKs

Official client libraries for the VideoGen API.
Next
Built with

Every API key is rate-limited on a per-endpoint, per-hour basis. Limits are generous for typical usage but exist to protect the platform from abuse.

Default limits

Endpoint groupLimit
POST /v1/tools/* (all generation endpoints)500 requests/hour
GET /v1/tools/executions/{id}5,000 requests/hour
POST /v1/tools/executions/{id}/cancel250 requests/hour
GET /v1/files, GET /v1/files/{id}50,000 requests/hour
POST /v1/files/{id}/hydrate2,500 requests/hour
POST /v1/files/upload500 requests/hour
POST /v1/files/search500 requests/hour
GET /v1/resources/*2,500 requests/hour
GET /v1/webhooks/endpoints500 requests/hour
POST /v1/webhooks/endpoints10 requests/hour
DELETE /v1/webhooks/endpoints/{id}10 requests/hour

These limits apply per API key. If you need higher limits for your use case, contact us at [email protected].

Response headers

Every response includes rate limit headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp (seconds) when the window resets

Handling 429 responses

When you exceed the limit, the API returns 429 Too Many Requests.

Best practices:

  • Back off exponentially. Wait 1s, then 2s, then 4s, etc.
  • Use webhooks instead of polling. If you’re hitting limits on GET /v1/tools/executions/{id}, switch to webhooks so you don’t need to poll at all.
  • Cache resource lists. Avatar presenters and TTS voices change infrequently. Cache the response and refresh every few hours rather than on every request.