> For the complete documentation index, see [llms.txt](https://docs.autoenhance.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autoenhance.ai/rate-limits.md).

# Rate Limits

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.

{% hint style="info" %}
Rate limits currently apply to new customers first. Existing customers keep their current behaviour until we announce a change.
{% endhint %}

## 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:

| Limit type                     | Limit                                                                                  | Behavior                                      | Reset                                            |
| ------------------------------ | -------------------------------------------------------------------------------------- | --------------------------------------------- | ------------------------------------------------ |
| 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 `429`s explicitly** rather than treating them as generic `500` server 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_reason`** on 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.autoenhance.ai/rate-limits.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
