> ## Documentation Index
> Fetch the complete documentation index at: https://docs.branduo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limiting

> OpenAPI request limits, 429 responses, and how to retry.

We limit how many requests a client can send in a short window. Each limit applies per client IP and action.

## Limits

The default global limit is **200 requests per 60 seconds**. The Thank You promo read uses a higher limit so a store can serve a sale without sharing one tight bucket across every shopper:

| Action                              | Limit                |
| ----------------------------------- | -------------------- |
| Default (all other actions)         | 200 requests / 60s   |
| `GET /v1/campaigns/thank-you-promo` | 3,000 requests / 60s |

That Thank You limit is about 50 requests per second from one IP. It covers a large store's checkout burst, or a platform node calling the API for many brands, when those calls leave through the same address. Cache the response briefly on your side when you can. The offer changes rarely, and a short cache avoids one upstream call per shopper.

## When you exceed a limit

We respond with HTTP **429** and an [OpenAPI error](/developer/errors) body:

```json theme={"languages":{"custom":["languages/curl.json"]}}
{
  "error": "rate_limit",
  "message": "You reached the rate limit for this request. Please try again in a few minutes."
}
```

<Warning>
  Wait before retrying. Rapid retries against a 429 keep you in the limited
  window for that IP and action.
</Warning>

## Working within the limits

Retry later after you receive a `429`. Space requests across the 60-second window when you poll or backfill.

If these limits are too tight for a legitimate integration, [contact support](/support/contact).
