OAuth 2.0
Token-based authentication for Brevo integrations that act on behalf of a user
Brevo OAuth 2.0 lets your application request access to a user’s Brevo account with their consent. The user authenticates directly with Brevo — your app never handles their password.
API key vs OAuth 2.0
How it works
Key concepts
Scopes
Scopes are the permissions your app requests on a user’s Brevo account. Each scope follows the pattern {resource}:{action} — for example, contacts:read to list contacts or transactional.email:write to send transactional emails.
- New apps created with
brevo app createare seeded withcontacts:read,contacts:write,crm:read,crm:write. Change them withbrevo app update --scope <scope>. :writedoes not imply:read. Request both if your app needs both.- Request the minimum your app needs — users see every requested scope on the consent screen.
See the Scopes reference for the full catalog and how to inspect a token’s scopes.
OAuth apps are currently private only. A private app can only be authorized by users within your own Brevo organisation — it cannot be distributed to external users or listed in any marketplace. This makes it suitable for internal tools, automations, and integrations you build for your own team.
Support for public apps — where any Brevo user can authorize your integration — is planned for a future release.