> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developers.brevo.com/docs/api-limits/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. > **Note** > > **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 \ | Endpoint | Rate limit | Requests per second | | ----------------------------------------------------------------------- | ------------- | ------------------- | | `POST /v3/smtp/email` `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/programs` All endpoints under `/v3/loyalty/{…}` | 600 RPH | - | | All other endpoints | 100 RPH | - | > **Tip** > > \*Excludes `POST /v3/smtp/email` and `GET /v3/smtp/blockedContacts`, which have dedicated limits. ## Advanced rate limits \ | Endpoint | Rate limit | Requests per second | | ----------------------------------------------------------------------- | ------------- | ------------------- | | `POST /v3/smtp/email` `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/programs` All endpoints under `/v3/loyalty/{…}` | 1,200 RPH | - | | All other endpoints | 200 RPH | - | > **Tip** > > \*Excludes `POST /v3/smtp/email` and `GET /v3/smtp/blockedContacts`, which have dedicated limits. ## Extended rate limits | Route | Policy | | ----------------------------------------------------------------------- | ----------- | | `POST /v3/smtp/email` `GET /v3/smtp/blockedContacts` | 6,000 RPS | | `GET /v3/smtp/emails` | 18,000 RPH | | `POST /v3/transactionalSMS/send` | 250 RPS | | `POST /v3/events` | 60 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/programs` All endpoints under `/v3/loyalty/{…}` | 100,000 RPH | | All other endpoints | 600 RPH | > **Tip** > > \*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. > Understand API rate limits and how to handle rate limit responses ## Docs - [Rate limit headers](https://developers.brevo.com/docs/limit-headers.md): Understand and use rate limit response headers to manage API request throttling - [Platform quotas](https://developers.brevo.com/docs/platform-quotas.md): Quota limits for account objects and resources