Compatibility
Coverage
All 74 operations of the Account, Contacts, Transactional emails, Senders, Domains, Webhooks and Process sections of the Brevo v3 specification are implemented. Paths are taken verbatim from the official specification; the full list is in the explorer and in the OpenAPI specification.
Not available yet (the route returns 404 document_not_found): email campaigns, SMS
(campaigns, transactional, templates), WhatsApp, CRM (companies, deals, tasks, notes, files),
e-commerce, conversations, events, loyalty, master account, users, consent groups, custom
objects, external feeds, inbound parsing, payments.
Deliberate differences
| Topic | Behaviour |
|---|---|
| Senders | active on creation (no OTP validation); the site already controls its relay |
| Segments | GET /contacts/segments always returns an empty list |
| Account activity | GET /organization/activities returns an empty list |
/account |
fixed sendLimit plan; relay = the site's SMTP relay |
| Statistics | no loadedByProxy event; scheduled or cancelled sends are not listed in /smtp/emails |
| Domains | authenticate really checks the DNS records (brevo-code TXT, DKIM, DMARC) |
Errors
Same format as Brevo:
{ "code": "invalid_parameter", "message": "email is not valid in to" }
| Status | code |
Example |
|---|---|---|
| 400 | invalid_parameter, missing_parameter, duplicate_parameter, out_of_range, bad_request |
invalid email, missing field, duplicate, limit too large, unreadable JSON |
| 401 | unauthorized |
missing, unknown or revoked key |
| 404 | document_not_found |
unknown resource or route |
| 405 | method_not_allowed |
method not supported on this path (the Allow header lists the accepted methods) |
| 500 | internal_error |
unexpected platform error |
The key is checked before the route: without a valid key, an unknown route returns 401, not 404.
Limits
| Item | Limit |
|---|---|
to recipients |
99 per email |
messageVersions |
1,000 per request |
| Scheduling | 72 h |
POST /contacts/batch |
100 contacts |
| List add / remove | 150 contacts per request |
GET /contacts |
limit ≤ 1000 |
| Idempotency | 24 h |
As with Brevo, idempotency on POST /smtp/email uses the idempotencyKey entry of the headers
object in the body. A second send with the same key within 24 h sends nothing and returns the
messageId values of the first one.