Rate Limits
Understand API and enhancement limits, how they are enforced, and how to handle them in your integration.
We limit the number of API requests and enhancements you can make in a given period. This protects the platform from unexpected traffic spikes, prevents runaway scripts, and keeps performance fast for everyone. Rate limits are standard, automated measures tailored to your account type and volume — they don't indicate a system failure.
How limits work
We don't send out-of-band notifications when you reach a limit. Instead, the API tells your application directly — either by returning an HTTP 429 Too Many Requests response, or by putting an image into an error state with the reason in its status_reason field. Depending on which limit you hit, the restriction might last a few seconds, an hour, or until your capacity is upgraded.
There are three limits to be aware of:
Global API request rate
Up to 300 API requests per second per IP address.
The API returns HTTP 429 Too Many Requests.
Resolves instantly as traffic slows.
Duplicate file name protection
Up to 30 duplicate file names per hour for the exact same filename string.
The API returns HTTP 429 Too Many Requests.
Resets hourly.
Enhancement hard limit
By default, up to 500 enhancements per day unless your account has a custom limit.
Newly submitted images enter an error state.
Resets daily, or when your capacity is upgraded.
The global API request rate applies across all endpoints and protects the core stability of the API: you can make up to 300 requests per second per IP address, and exceeding it returns a 429 that clears as soon as your traffic slows.
The duplicate file name protection catches faulty scripts stuck in retry loops that keep registering the same image. When registering images or brackets, you can use the same filename string at most 30 times per hour; beyond that the API returns a 429, resetting hourly. The simplest way to avoid it is to generate unique filenames — for example by appending a hash before registration — and to stop retrying a filename that has been rejected.
The enhancement hard limit governs our compute-heavy processing. By default you can run up to 500 enhancements per day unless your account has a custom limit. Beyond it, newly submitted images enter an error state (with status_reason indicating they were rate-limited) and can be reprocessed once the window resets or your capacity is upgraded. These limits scale with your account tier:
Testing / Trial accounts — baseline limits for safe integration testing.
Essential / Standard plans — limits for steady production usage and moderate bursts.
Enterprise plans — custom, elevated limits for very high-volume workloads.
Handling limits in your integration
Robust integrations expect rate limits and recover without manual intervention. A few patterns make this reliable:
Catch
429s explicitly rather than treating them as generic500server failures.Back off exponentially — when a request returns
429, retry after a short delay and double it each time (for example, 1 second, then 2, then 4) to give the platform time to catch up.Check
status_reasonon image errors (whether you poll or use webhooks) to tell whether a hard limit was reached.Throttle at the source by spacing out large bursts of traffic, especially during bulk uploads.
Need more capacity?
If you frequently hit hard limits, your workload has likely outgrown your current tier. We're happy to review your usage patterns and help configure the right capacity — just reach out based on your account status:
Leads and testing accounts — contact Sales or Support.
Essential / Standard plans — contact Support through in-app chat or email.
Enterprise plans — contact your dedicated Account Manager.
Last updated
Was this helpful?