Rate Limits
The Developer API enforces rate limits to ensure fair usage and system stability.
When rate limits are exceeded, you’ll receive a
429 Too Many Requests response:
Credit Costs
Rendering and processing operations consume credits from your organization’s balance. Uploads, downloads, reads, status checks, and validation without rendering are free. See Pricing for the full operation list.TTLs (Time-To-Live)
Cleanup Schedule
The API runs automatic cleanup to remove expired resources:- Expired temporary images are deleted from storage (every 60 minutes)
- Expired render output files are deleted every 10 minutes; the job record is kept and its output reference is cleared
- Expired tool files are checked every 10 minutes. The same cleanup pass can remove completed/failed tool job records older than 24 hours; this is separate from the 60-minute file lifetime.
- Cleanup runs periodically; physical deletion is not guaranteed at the exact expiry second. An expired resource should no longer be relied on for download.
Concurrent Job Limits
The maximum number of concurrent render jobs depends on your subscription plan:
Buying a permanent top-up unlocks Developer API access on Engine and Editor, but does not raise their five-job concurrency tier.
This limit includes:
- Single render jobs (each counts as 1)
- Bulk render jobs (each counts as 1, regardless of item count)
Best Practices
Implement exponential backoff
Implement exponential backoff
When you receive a
429 response, wait before retrying. Start with 1 second
and double the wait time for each subsequent retry, up to a maximum of 60
seconds.Download files promptly
Download files promptly
Download completed renders promptly and store a copy if you need longer retention.
An expired signed link can only be refreshed while its output file still exists.
After file cleanup, a new render is required.
Monitor your credit balance
Monitor your credit balance
Check your credit balance before submitting large bulk jobs. Use the billing
endpoints to verify sufficient credits are available.
Use webhooks for bulk jobs
Use webhooks for bulk jobs
Instead of polling, provide a
webhookUrl when creating bulk jobs to
receive instant completion notifications.Batch efficiently
Batch efficiently
For bulk renders, group up to 100 items per job to minimize API calls while
staying within limits.
