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

# Rate limits

How many OrderEazi API calls a key can make a minute, and what to do when you get a 429.

A sync that sends thousands of calls at once can slow OrderEazi down for everyone in the organisation. So each API key can make up to 500 calls a minute. Calls over the limit are refused until earlier calls are more than a minute old.

### How the limit works

* **Per key:** The limit counts calls made with each key. Two integrations with different keys each get 500 calls a minute.
* **Rolling minute:** The limit looks back over the last 60 seconds, in two 30-second halves. Calls stop counting once they're more than a minute old.
* **Everything counts:** Every call with the key counts, including `/api/ping` and OData calls.

### When you go over the limit

A call over the limit gets a `429`, with this body:

```json
{
  "message": "Too many requests, please try again later.",
  "reason": "More than 500 requests per 60 seconds from this API Key"
}
```

This body uses camelCase, not the usual response envelope. There's no `Retry-After` header. Wait 30 seconds, then try again.

### How to stay under the limit

* **Pace your calls:** Pace a large sync over time rather than sending every call at once.
* **Use list and batch endpoints:** One list call returns many records. Batch endpoints, such as `POST /api/product/batch`, create or update many records in one call.
* **Only fetch what changed:** For stock levels, `POST /api/stocklevel/modifiedAfter` returns only what's changed since a date.
* **Use webhooks:** Instead of polling OrderEazi for changes, let it call you. See [Webhooks](/central/developers/webhooks.md).

**Example:** Your shop syncs stock for 20,000 products every hour. Instead of 20,000 single calls, it calls `/api/stocklevel/modifiedAfter` with the time of the last sync as `FromDate`, and `Take` set to 1,000. If 2,500 stock levels changed, the sync takes three calls: 1,000, 1,000, and 500.

### Related pages

* [Pagination](/central/developers/pagination.md): fetching large lists in pages
* [Responses, errors, and warnings](/central/developers/responses-errors-and-warnings.md): every status code
