Brevo · Authentication Profile

Brevo Authentication

Authentication

Brevo offers two authentication schemes. API key is the default and the only one the published OpenAPI specs declare: a secret token sent in a lowercase `api-key` request header, scoped to the whole account with no per-key permissions. OAuth 2.0 was added for apps acting on behalf of a Brevo user and is where the granular permission model lives — 37 scopes on a partner realm, created and managed entirely through the Brevo CLI with no application form or manual approval. The two are documented together but only one is described in the machine-readable contract, so an agent reading the specs alone will not discover OAuth at all.

Brevo secures its APIs with apiKey and oauth2 across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).

MarketingMarketing AutomationEmail MarketingTransactional EmailSMS MarketingWhatsAppCampaignsCRMSalesE-CommerceLoyaltyEventLive ChatEmailSMSAutomationMessagingContacts
Methods: apiKey, oauth2 Schemes: 3 OAuth flows: authorizationCode, clientCredentials API key in: header

Security Schemes

api-key apiKey
· in: header (api-key)
OAuth2 oauth2
· flows: authorizationCode, clientCredentials
MCP bearer token http
scheme: bearer

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: https://developers.brevo.com/docs/authentication-schemes
docs:
- https://developers.brevo.com/docs/authentication-schemes
- https://developers.brevo.com/docs/api-key-authentication
- https://developers.brevo.com/docs/oauth
- https://developers.brevo.com/docs/oauth-scopes
- https://developers.brevo.com/docs/ip-security
description: >-
  Brevo offers two authentication schemes. API key is the default and the only one the
  published OpenAPI specs declare: a secret token sent in a lowercase `api-key` request
  header, scoped to the whole account with no per-key permissions. OAuth 2.0 was added for
  apps acting on behalf of a Brevo user and is where the granular permission model lives —
  37 scopes on a partner realm, created and managed entirely through the Brevo CLI with no
  application form or manual approval. The two are documented together but only one is
  described in the machine-readable contract, so an agent reading the specs alone will not
  discover OAuth at all.
summary:
  types: [apiKey, oauth2]
  api_key_in: [header]
  oauth2_flows: [authorizationCode, clientCredentials]
  default_scheme: apiKey
  spec_declared: [apiKey]
  docs_only: [oauth2]
schemes:
- name: api-key
  type: apiKey
  in: header
  parameter: api-key
  description: >-
    The API key is passed in the request headers as `api-key`. Generated in the Brevo
    dashboard at Account > SMTP & API > API keys; shown once at creation and not
    retrievable afterwards. There is no scope or permission model on an API key — it
    authorizes the full account surface.
  declared_in_spec: true
  sources:
  - openapi/brevo-email-api-openapi.yml
  - openapi/brevo-transactional-sms-openapi.yml
  - openapi/brevo-transactional-whatsapp-openapi.yml
  - openapi/brevo-marketing-campaigns-openapi.yml
  - openapi/brevo-contact-management-openapi.yml
  - openapi/brevo-events-openapi.yml
  - openapi/brevo-object-management-openapi.yml
  - openapi/brevo-accounts-and-settings-openapi.yml
  - openapi/brevo-sales-crm-openapi.yml
  - openapi/brevo-conversations-openapi.yml
  - openapi/brevo-ecommerce-openapi.yml
  - openapi/brevo-loyalty-openapi.yml
  - openapi/brevo-wallet-openapi.yml
  management_url: https://app.brevo.com/settings/keys/api
  verify_call: GET https://api.brevo.com/v3/account
- name: OAuth2
  type: oauth2
  description: >-
    Authorization-code (with PKCE) and client-credentials grants against the Brevo partner
    realm, for private integrations acting on behalf of a user. Apps are created, scoped
    and rotated with the Brevo CLI (`brevo app create` / `brevo app update --scope`).
    Distribution is `private` — there is no public app marketplace.
  declared_in_spec: false
  issuer: https://oauth.brevo.com/realms/partner
  discovery:
  - https://oauth.brevo.com/realms/partner/.well-known/oauth-authorization-server
  - https://oauth.brevo.com/realms/partner/.well-known/openid-configuration
  flows:
  - flow: authorizationCode
    authorizationUrl: https://oauth.brevo.com/realms/partner/oauth/authorize
    tokenUrl: https://oauth.brevo.com/realms/partner/oauth/token
    pkce: [plain, S256]
  - flow: clientCredentials
    tokenUrl: https://oauth.brevo.com/realms/partner/oauth/token
  refresh_token: true
  token_format: signed JWT with a space-separated `scope` claim
  introspection_endpoint: https://oauth.brevo.com/realms/partner/oauth/introspect
  revocation_endpoint: https://oauth.brevo.com/realms/partner/oauth/revoke
  userinfo_endpoint: https://oauth.brevo.com/realms/partner/oauth/userinfo
  jwks_uri: https://oauth.brevo.com/realms/partner/public-keys
  token_endpoint_auth_methods: [client_secret_basic, client_secret_post]
  scope_count: 37
  scopes: scopes/brevo-scopes.yml
- name: MCP bearer token
  type: http
  scheme: bearer
  description: >-
    A distinct credential class for the hosted MCP server at mcp.brevo.com. Minted in the
    same API-keys screen with the "Create MCP server API key" toggle, sent as
    `Authorization: Bearer <token>`. Brevo's docs state it grants full read/write access to
    the account. The MCP endpoint additionally advertises its own OAuth authorization
    server with dynamic client registration and PKCE S256, scope `all`.
  declared_in_spec: false
  applies_to: https://mcp.brevo.com/v1/brevo/mcp
  discovery: https://mcp.brevo.com/.well-known/oauth-authorization-server
network_controls:
- name: IP allowlisting
  docs: https://developers.brevo.com/docs/ip-security
  description: >-
    Optional account-level control. When enabled, Brevo validates the source IP of every
    API request and blocks unauthorized IPs even when the API key is valid. Two modes:
    automatic authorization after security checks, or email notification requiring manual
    approval per new IP.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/brevo-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.