> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

# Rate limits

## Overview

The Brevo API enforces rate limits to ensure platform stability and fair resource allocation. Rate limits cap the number of API requests you can make within a given time period.

The API provides three rate limit tiers:

* [**General rate limits**](#general-rate-limits): Standard limits for most use cases. Available to all account types (Free, Starter, Standard, Professional, and Enterprise).
* [**Advanced rate limits**](#advanced-rate-limits): Higher limits for advanced use cases. Available to Professional and Enterprise accounts.
* [**Extended rate limits**](#extended-rate-limits): Maximum limits for high-throughput integrations. Available to Enterprise accounts.

When you exceed a rate limit, the API returns a `429 Too Many Requests` status code. Monitor rate limit headers in responses to track your usage and prevent errors.

**Rate limits are expressed in two units**

* **RPS (Requests per second)**: Maximum requests allowed per second
* **RPH (Requests per hour)**: Maximum requests allowed per hour

Some endpoints have both RPS and RPH limits. When both apply, you must respect both simultaneously.

## General rate limits

<br />

| Endpoint                                                            | Rate limit    | Requests per second |
| ------------------------------------------------------------------- | ------------- | ------------------- |
| `POST /v3/smtp/email`<br />`GET /v3/smtp/blockedContacts`           | 3,600,000 RPH | 1,000 RPS           |
| `GET /v3/smtp/emails`                                               | 7,200 RPH     | 2 RPS               |
| `POST /v3/transactionalSMS/send`                                    | 540,000 RPH   | 150 RPS             |
| `POST /v3/events`                                                   | 36,000 RPH    | 10 RPS              |
| `POST /v3/orders/status`                                            | 18,000 RPH    | 5 RPS               |
| `POST /v3/products`                                                 | 7,200 RPH     | 2 RPS               |
| All endpoints under `/v3/smtp/{…}`\*                                | 300 RPH       | -                   |
| All endpoints under `/v3/contacts/{…}`                              | 36,000 RPH    | 10 RPS              |
| `GET /v3/loyalty/config`<br />All endpoints under `/v3/loyalty/{…}` | 600 RPH       | -                   |
| All other endpoints                                                 | 100 RPH       | -                   |

\*Excludes `POST /v3/smtp/email` and `GET /v3/smtp/blockedContacts`, which have dedicated limits.

## Advanced rate limits

<br />

| Endpoint                                                            | Rate limit    | Requests per second |
| ------------------------------------------------------------------- | ------------- | ------------------- |
| `POST /v3/smtp/email`<br />`GET /v3/smtp/blockedContacts`           | 7,200,000 RPH | 2,000 RPS           |
| `GET /v3/smtp/emails`                                               | 10,800 RPH    | 3 RPS               |
| `POST /v3/transactionalSMS/send`                                    | 720,000 RPH   | 200 RPS             |
| `POST /v3/events`                                                   | 72,000 RPH    | 20 RPS              |
| `POST /v3/orders/status`                                            | 36,000 RPH    | 10 RPS              |
| `POST /v3/products`                                                 | 14,400 RPH    | 4 RPS               |
| All endpoints under `/v3/smtp/{…}`\*                                | 600 RPH       | -                   |
| All endpoints under `/v3/contacts/{…}`                              | 72,000 RPH    | 20 RPS              |
| `GET /v3/loyalty/config`<br />All endpoints under `/v3/loyalty/{…}` | 1,200 RPH     | -                   |
| All other endpoints                                                 | 200 RPH       | -                   |

\*Excludes `POST /v3/smtp/email` and `GET /v3/smtp/blockedContacts`, which have dedicated limits.

## Extended rate limits

| Route                                                               | Policy      |
| ------------------------------------------------------------------- | ----------- |
| `POST /v3/smtp/email`<br />`GET /v3/smtp/blockedContacts`           | 6,000 RPS   |
| `GET /v3/smtp/emails`                                               | 18,000 RPH  |
| `POST /v3/transactionalSMS/send`                                    | 250 RPS     |
| `POST /v3/orders/status`                                            | 15 RPS      |
| `POST /v3/products`                                                 | 21,600 RPH  |
| All endpoints under `/v3/smtp/{…}`\*                                | 1,800 RPH   |
| All endpoints under `/v3/contacts/{…}`                              | 60 RPS      |
| `GET /v3/loyalty/config`<br />All endpoints under `/v3/loyalty/{…}` | 100,000 RPH |
| `POST /v3/events`                                                   | 60 RPS      |
| All other endpoints                                                 | 600 RPH     |

\*Excludes `POST /v3/smtp/email` and `GET /v3/smtp/blockedContacts`, which have dedicated limits.

## Handling rate limit errors

When you exceed a rate limit, the API returns a `429 Too Many Requests` status code. Follow these practices to avoid rate limit errors:

### Distribute requests evenly

Calculate your rate limit allowance and distribute requests evenly across the time window. For example, with a limit of 1,000 RPS, you can send up to 60,000 requests per minute when distributed evenly.

### Upgrade to Enterprise

If your application requires higher throughput, upgrade to an Enterprise plan for increased rate limits.

### Use webhooks for statistics

Instead of polling endpoints for statistics, implement [webhooks](/docs/how-to-use-webhooks) to receive event-driven updates. This reduces API calls and improves efficiency.

## Related resources

### Rate limit headers

The API includes rate limit headers in all responses to help you monitor usage and implement retry logic. See the [rate limit headers guide](/docs/limit-headers) for details.

### Platform quotas

Rate limits control request frequency, while platform quotas cap the number of objects you can create (campaigns, contacts, lists, etc.). See the [platform quotas guide](/docs/platform-quotas) for object creation limits in Brevo.