Overview
The Nouvel API enforces rate limits to ensure fair usage and system stability. All API keys are subject to a 60 requests per minute limit, regardless of your plan tier.Rate limits are enforced at the infrastructure level, ensuring consistent and reliable limiting across all API endpoints.
Rate Limit Details
number
default:"60"
Maximum number of requests allowed per minute per API key
string
default:"1 minute"
Time window for rate limit calculations (sliding window)
string
default:"per-key"
Rate limits are applied per API key, not per user or organization
Rate Limit Headers
Every API response includes standard rate limit headers to help you track your usage:When You Exceed the Limit
When you exceed the rate limit, the API returns a 429 Too Many Requests status code:error: Error message indicating rate limit exceededreason: Human-readable explanationretryAfter: Seconds until you can retry (optional)
Retry-After header indicates how many seconds to wait before retrying.
Endpoint Resource Costs
While all endpoints share the same 60 requests/minute limit, they consume different amounts of system resources:Video Generation (POST /api/v1/generate)
High resource cost - Triggers AI models, video rendering, and long-running background jobs. Each generation uses significant compute resources.
Status Polling (GET /api/v1/jobs/:id)
Low resource cost - Simple database lookup. You can poll frequently within your rate limit.
Project Listing (GET /api/v1/projects)
Low resource cost - Database query with pagination. Efficient for monitoring multiple jobs.
Best Practices
1. Implement Exponential Backoff
When you receive a 429 error, implement exponential backoff to avoid repeatedly hitting the rate limit:2. Cache Responses
Avoid unnecessary API calls by caching responses that don’t change frequently:- Cache completed project data (projects in
completedorfailedstatus won’t change) - Store project metadata locally after the initial fetch
- Use ETags or Last-Modified headers when available (future enhancement)
3. Batch Operations
When checking status for multiple jobs, use the list endpoint instead of individual status checks:4. Smart Polling Intervals
Adjust your polling frequency based on the project status:- Generating status: Poll every 15-30 seconds
- Post-processing status: Poll every 10-15 seconds
- Completed/failed status: Stop polling (cache the result)
5. Monitor Rate Limit Headers
Track your rate limit usage to avoid hitting the limit:Webhook Delivery
Webhook deliveries do not count toward your rate limit. Webhooks are initiated by Nouvel’s servers, not your API key, and are not subject to the 60/minute restriction.
webhookUrl with your generation request, Nouvel will POST to your URL when the job reaches a terminal state. These outbound deliveries are separate from your rate-limited API calls. See the Webhooks guide for full details.
Concurrent Video Generation
In addition to the 60 requests/minute API rate limit, video generation has its own concurrency limits based on your plan:Concurrent jobs are counted per organization. If you submit more jobs than your concurrency limit allows, excess requests will be queued and processed as slots become available.

