Skip to main content

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)

Download render outputs within their one-hour retention window. Output files expire; the job record remains available as history. Signed download URLs have their own expiry and do not extend the lifetime of the output file.

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)
If you hit this limit, you’ll receive:

Best Practices

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 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.
Check your credit balance before submitting large bulk jobs. Use the billing endpoints to verify sufficient credits are available.
Instead of polling, provide a webhookUrl when creating bulk jobs to receive instant completion notifications.
For bulk renders, group up to 100 items per job to minimize API calls while staying within limits.

Summary Table