Brevo integrationBrevo logo

Brevo integration for AI agents.

Brevo integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Brevo tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.

What your agents can do

Real Brevo actions, managed and audited.

Your user connects Brevo once; your agent can then manage Brevo contacts, marketing campaigns, transactional emails, SMS, WhatsApp messages, webhooks, CRM objects, and account data — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.

  1. 1

    Your user grants Brevo access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

Supported Brevo tools.

285 tools are generated from the published Brevo catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.

Showing 285 tools. All published catalog entries are included in this page's server-rendered HTML.

Activate the eCommerce app
Getting access to Brevo eCommerce.
ecommerce
Add existing contacts to a list
Add existing contacts to a list
contacts
Assign a tier
Manually assigns a tier to a specific membership.
tier
Associate an IP to sub-accounts
This endpoint allows to associate an IP to sub-accounts
masterAccount
Authenticate a sender domain
Authenticates a specific domain. Use this to: - Authenticate a domain - Verify DNS record configuration - Complete domain setup for sending - Enable domain for email authentication Key information returned: - Authentication success confirmation - Domain readiness status for email sending
domains
Delete multiple object records (up to 1000) asynchronously
Use this endpoint to delete multiple object records of the same object-type in one request. The request is accepted and processed asynchronously. You can track the status of the deletion process using the returned **processId**. **Limitations:** - Each request can contain up to **1000** object record identifiers - Either `ids` or `ext_ids` must be provided, but **not both** in the same request - Deletion of Brevo standard object records is not supported via this endpoint - If more records must be deleted, send multiple batch requests
customObjects
Create new transaction
Creates new transaction and returns information
balance
Add a new domain to the list of blocked domains
Blocks a new domain in order to avoid messages being sent to the same
transactionalEmails
Cancel transaction
Cancels transaction
balance
Change admin user permissions
This endpoint will allow you to change the permissions of Admin users of your Admin account
masterAccount
Complete redeem voucher request
Completes voucher redeem request.
reward
Complete transaction
Completes transaction
balance
Create a company
Create a new CRM company with the specified name, attributes, and optional associations to contacts and deals. The company name is required, and you can optionally provide a country code when a phone number attribute is included.
companies
Create a company/deal attribute
Create a new custom attribute for companies or deals. The attribute label must be unique within the object type, cannot exceed 50 characters, and cannot use reserved names. For `single-select` or `multi-choice` attribute types, you must also provide the `optionsLabels` array.
companies
Create a deal
Create a new deal in the CRM with the specified name, attributes, and optional associations to contacts and companies. You can assign the deal to a specific pipeline and stage by providing `pipeline` and `deal_stage` attribute IDs, which can be retrieved from the pipeline details endpoint.
deals
Create an API key for a sub-account
This endpoint will generate an API v3 key for a sub-account
masterAccount
Create a new group of sub-accounts
This endpoint allows to create a group of sub-accounts
masterAccount
Create a new sub-account under a master account.
This endpoint will create a new sub-account under a master account
masterAccount
Create a note
Create a new CRM note and optionally associate it with contacts, companies, or deals. The note text content is required, and you can link the note to multiple entities simultaneously during creation.
notes
Create a task
Create a new CRM task with the specified name, type, due date, and optional associations to contacts, companies, or deals. A task requires a name, task type ID, and due date at minimum. You can also set a duration, notes, a reminder, and assign the task to a specific user.
tasks
Create contact attribute
Create a new contact attribute under the specified category and name. The required body properties depend on the category: use "type" for normal, transactional, or category attributes; use "value" for calculated or global attributes; use "enumeration" for category attributes; and use "multiCategoryOptions" for normal multiple-choice attributes. None of the category or multicategory option values can exceed 200 characters.
contacts
Create balance definition
Creates balance definition and returns information
balance
Create balance limits
Creates balance limit and sends the created UUID along with the data
balance
Create balance order
Returns created order
balance
Create events in batch
Create multiple events to track contacts' interactions in a single request.
event
Create orders in batch
Create multiple orders at one time instead of one order at a time
ecommerce
Create a consent group
Creates a new consent group for the account. <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
consentGroups
Create a contact
<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note> Creates new contacts on Brevo. Contacts can be created by passing either - <br><br> 1. email address of the contact (email_id), <br> 2. phone number of the contact (to be passed as "SMS" field in "attributes" along with proper country code), For example- {"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"} <br> 3. ext_id <br>
contacts
Create а coupon collection
Create a new coupon collection with a name and a default coupon value. You can optionally set an expiration date in RFC3339 format and configure alert thresholds to receive email notifications when remaining coupons or remaining days before expiration fall below a specified number. The collection ID is auto-generated as a UUID and returned in the response.
coupons
Create coupons for a coupon collection
Add coupons to an existing coupon collection. The `coupons` array must contain between 1 and 10,000 unique coupon code strings, all associated with the specified `collectionId`. Coupon creation is processed asynchronously and a `204` status is returned immediately upon acceptance. Returns a `404` error if the specified coupon collection does not exist.
coupons
Create Contact via DOI (Double-Opt-In) Flow
<Note title="How to use attributes param?">attributes param in this endpoint is an object containing key-value pairs where values can be either a string, integer, array, or boolean. You can create key-value pairs with these four datatypes. When a value is an array, it should be an array of strings.</Note>
contacts
Create a new sender domain
Creates a new domain in Brevo. Use this to: - Add new domains for sending emails - Set up domain authentication for better deliverability - Configure DNS records for email authentication - Establish domain-based sender identities Key information returned: - Created domain ID and configuration - Required DNS records for authentication - Domain provider detection results - Setup instructions and next steps
domains
Create an email campaign
Create a new email campaign. The campaign requires at minimum a name and sender details, and is created in draft status by default. You must provide email content via one of three mutually exclusive options: htmlContent (inline HTML), htmlUrl (remote URL), or templateId (existing template); additionally, A/B testing can be enabled by setting abTesting to true with subjectA and subjectB, but this is incompatible with sendAtBestTime.
emailCampaigns
Create an event
Create an event to track a contact's interaction.
event
Create external feed
Creates a new external feed for dynamic content in email campaigns. **Use this to:** - Set up external data sources for dynamic content - Configure authentication for protected feeds - Enable real-time content updates in campaigns - Establish connections to product catalogs, blogs, or APIs **Key information returned:** - Created feed UUID for reference in campaigns - Success confirmation **Important considerations:** - Feed URL must be accessible from Brevo infrastructure - Authentication credentials are securely encrypted - Test feed accessibility before campaign use - Consider feed response time for campaign performance - Monitor feed reliability and uptime - Use caching for frequently accessed feeds - Maximum 5 retry attempts allowed for failed requests - Custom headers support for API integration requirements
externalFeeds
Create a folder
Create a new folder to organize your contact lists. Folders serve as containers for grouping related lists together. The folder name is required and must be provided in the request body.
contacts
Create a list
Create a new contact list inside a specified folder. Both the list name and the parent folder ID are required. The newly created list will be empty and ready to receive contacts via the add contacts endpoint.
contacts
Create loyalty program
Creates loyalty program
program
Managing the status of the order
Manages the transactional status of the order
ecommerce
Create a payment request
Create a new payment request for a Brevo contact. The request requires a reference (displayed on the payment page), a contact ID, and a cart with currency and amount in cents. You can optionally configure a custom success redirect URL and enable email notifications with reminders. Returns the payment request ID and its public payment URL. A `403` error is returned if Brevo Payments is not activated or the account is not validated.
payments
Create a product alert for a contact
Register a contact to receive an alert for a specific product event, such as `back_in_stock`. At least one contact identifier (`ext_id`, `email`, or `sms`) must be provided; when multiple are given, priority is `ext_id` > `email` > `sms`. Returns a `404` error if the product ID does not exist, and a `403` error if product alerts are not enabled for the account.
ecommerce
Create a reward
Creates a new reward in the loyalty program.
reward
Create email sender
Creates a new email sender in your Brevo account. **Use this to:** - Add new senders for email campaigns - Configure sender identity (name and email) - Associate dedicated IPs with the sender (for dedicated IP accounts) - Set up domain-based sender configurations **Key information returned:** - Created sender ID - DKIM and SPF configuration status - Success confirmation **Important considerations:** - Verification email sent to specified sender address - DKIM and SPF configuration affects deliverability - Dedicated IP accounts require IP association during creation - IP weights must sum to 100 when specified - Sender must be verified before use in campaigns
senders
Creates an SMS campaign
Create a new SMS campaign with the required name, sender, and content fields. The sender name is limited to 11 alphanumeric characters or 15 numeric characters, and the content should stay within 160 characters per SMS segment. If a scheduledAt date is provided, listIds in recipients become mandatory; accounts under validation are limited to 4 total campaigns and campaigns with more than 10 recipients will be saved as draft.
smsCampaigns
Create an email template
Create a new transactional email template with the specified sender, subject, and content. The `sender`, `subject`, and `templateName` fields are required. Template content can be provided via `htmlContent` (minimum 10 characters) or `htmlUrl`; at least one must be supplied. Templates are created as inactive by default unless `isActive` is explicitly set to `true`.
transactionalEmails
Create subscription balances
Creates a balance for a contact
balance
Create a tier
Creates a new tier in a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
tier
Create a tier group
Creates a new tier group in a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
tier
Create categories in batch
Create or update multiple ecommerce categories in a single request. The `categories` array accepts up to 100 category objects, each requiring a unique `id`. When `updateEnabled` is `false` (the default), all categories are inserted as new; if any ID already exists, a `400` error is returned. When `updateEnabled` is `true`, existing categories are updated and new ones are created via upsert. Duplicate IDs within the same request payload are rejected. The response returns the count of created and updated categories.
ecommerce
Create products in batch
Create or update multiple ecommerce products in a single request. The `products` array accepts up to 100 product objects for creation (or up to 1000 when `updateEnabled` is `true` and the account has an increased limit). Each product requires a unique `id` and `name` (name is mandatory for creation only). When `updateEnabled` is `false`, all products are inserted as new; if any ID already exists, a `400` error is returned. When `updateEnabled` is `true`, existing products are updated and new ones are created via upsert. Duplicate IDs within the same request payload are rejected. The response returns the count of created and updated products.
ecommerce
Create/Update a category
Create a new ecommerce category or update an existing one, identified by the mandatory `id` field. When `updateEnabled` is set to `false` (the default), the endpoint performs an insert and returns `201`; if the category ID already exists, a `400` error is returned. When `updateEnabled` is `true`, the endpoint performs an upsert, returning `201` for a new category or `204` when an existing category is updated. The `name` field is mandatory for creation but optional for updates.
ecommerce
Create/Update a product
Create a new ecommerce product or update an existing one, identified by the mandatory `id` field. When `updateEnabled` is `false` (the default), the endpoint inserts a new product and returns `201`; if the product ID already exists, a `400` error is returned. When `updateEnabled` is `true`, the endpoint performs an upsert, returning `201` for a new product or `204` for an update. The `name` field is mandatory for creation but optional for updates. Product images are downloaded, validated (max 5 MB, formats: jpeg, jpg, png, bmp, gif, webp), and re-hosted on S3. The `metaInfo` object supports up to 20 keys with a cumulative size limit of approximately 1000 KB.
ecommerce
Create a voucher
Create a voucher and attribute it to a specific membership.
reward
Create a webhook
Creates a new webhook to receive real-time notifications for specified events. Use this to: - Set up event notifications for transactional or marketing emails - Configure webhook endpoints for campaign tracking - Enable real-time monitoring of email delivery status - Subscribe to contact list changes and updates - Implement custom event handling and automation Key information returned: - Created webhook ID and configuration - Success confirmation and setup details
webhooks
Create and Send a WhatsApp campaign
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note> <Note>This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information. [Get all the Lists](https://developers.brevo.com/reference/getlists-1) [Get all the Segments](https://developers.brevo.com/reference/getsegments)</Note>
whatsAppCampaigns
Create a WhatsApp template
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note>
whatsAppCampaigns
Delete a company
Permanently delete a company by its identifier. The requesting user must be the company owner or have manage permission on companies; otherwise, a 403 Forbidden error is returned.
companies
Delete a deal
Permanently delete a deal by its identifier. The requesting user must be the deal owner or have manage permission on deals; otherwise, a 403 Forbidden error is returned.
deals
Delete a file
Permanently delete a CRM file by its identifier. This removes the file from storage and unlinks it from any associated contacts, companies, or deals.
files
Delete a group
This endpoint allows you to delete a group of sub-organizations. When a group is deleted, the sub-organizations are no longer part of this group. The users associated with the group are no longer associated with the group once deleted.
masterAccount
Delete a message sent by an agent
Delete a message sent by an agent. Only messages of type `agent` can be deleted.
conversations
Delete an automated message
Delete an automated (pushed) message by its ID.
conversations
Delete an SMTP transactional log
Delete SMTP transactional log entries identified by a message ID (enclosed in angle brackets with an @ sign) or a valid email address. Optionally narrow the deletion to a specific date range using `from_date` and `to_date` query parameters (YYYY-MM-DD format). The operation also removes any associated stored email preview content.
transactionalEmails
Delete a note
Permanently delete a CRM note by its identifier. This removes the note and unlinks it from any associated contacts, companies, or deals.
notes
Delete a sub-account
Permanently deletes a sub-account from the corporate master account. Once deleted, all data associated with the sub-account organization is removed and cannot be recovered, so ensure the sub-account is no longer needed before proceeding.
masterAccount
Delete a task
Permanently delete a CRM task by its identifier. This removes the task and cancels any associated reminders. The requesting user must be the task assignee or have manage permission on tasks.
tasks
Delete an attribute
Permanently delete an existing contact attribute by its category and name. The attribute must exist in the specified category (normal, transactional, category, calculated, or global), otherwise a 404 error is returned.
contacts
Delete balance definition
Delete Balance definition
balance
Delete balance limit
Delete balance limit
balance
Unblock an existing domain from the list of blocked domains
Unblocks an existing domain from the list of blocked domains
transactionalEmails
Delete a consent group
Deletes a consent group by ID and removes it from all associated contacts. <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
consentGroups
Delete a contact
There are 2 ways to delete a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute.
contacts
Delete subscription member
Deletes member from a subscription
program
Delete subscription
Delete subscription for a contact
program
Delete a sender domain
Deletes a domain from Brevo. Use this to: - Remove existing domains - Clean up unused domain configurations - Remove test domains Key information returned: - Success confirmation message
domains
Delete an email campaign
Delete an email campaign by its campaign ID. Only campaigns that have not been scheduled can be deleted; attempting to delete a campaign that has already been scheduled will return a 403 permission denied error. Related data in templates, newsletter builder, and schedule collections is also cleaned up.
emailCampaigns
Delete external feed
Deletes an external feed from your Brevo account. **Use this to:** - Remove external feeds that are no longer needed - Clean up unused data sources - Remove test or outdated feeds - Maintain organized feed library **Key information returned:** - Success confirmation message **Important considerations:** - This action is PERMANENT and cannot be undone - Feed configuration and history will be lost - Check if feed is used in active campaigns before deletion - Remove feed references from email templates - Consider deactivating instead of deleting if unsure
externalFeeds
Delete a folder (and all its lists)
Permanently delete a folder identified by its ID. Deleting a folder will also delete all the contact lists contained within it. This action cannot be undone.
contacts
Delete hardbounces
Delete hardbounces. To use carefully (e.g. in case of temporary ISP failures)
transactionalEmails
Delete a list
Permanently delete a contact list identified by its ID. The contacts in the list are not deleted; they are only removed from this list. Returns a 404 error if the list ID does not exist.
contacts
Delete Loyalty Program
Deletes Loyalty Program
program
Delete a multiple-choice attribute option
Delete a specific option from an existing multiple-choice contact attribute. The attribute type must be "multiple-choice", and both the attribute name and the option to delete must already exist in your account.
contacts
Delete a payment request.
Delete a payment request by its UUID. Once deleted, the payment request can no longer be accessed or paid. Returns a `404` error if no payment request matches the provided ID, and a `403` error if Brevo Payments is not activated or the account is not validated.
payments
Delete scheduled emails by batchId or messageId
Delete scheduled batch of emails by batchId or single scheduled email by messageId
transactionalEmails
Delete a sender
Deletes an email sender from your Brevo account. Use this to: - Remove senders that are no longer needed - Clean up sender configurations - Remove duplicate or test senders Key information returned: - Success confirmation message
senders
Delete an SMS campaign
Delete an SMS campaign by its campaign ID. Only campaigns that have not been scheduled or sent can be deleted; attempting to delete a campaign that is queued, in process, or has been sent with recipients will return a 403 permission denied error.
smsCampaigns
Delete an inactive email template
Permanently delete a transactional email template by its numeric ID. Only inactive templates can be deleted; attempting to delete an active template returns a 405 error. To deactivate a template before deletion, use `PUT /smtp/templates/{templateId}` with `isActive` set to `false`. Deletion also removes associated newsletter template data and triggers asynchronous cleanup of shared assets.
transactionalEmails
Delete sub-account from group
This endpoint allows you to remove a sub-organization from a group.
masterAccount
Delete tier
Deletes a tier from a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
tier
Delete tier group
Deletes a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
tier
Delete a webhook
Permanently deletes a webhook and stops all event notifications. Use this to: - Remove unused or obsolete webhook configurations - Clean up webhook endpoints and subscriptions - Stop event notifications to specific URLs - Maintain organized webhook management Key information returned: - Success confirmation of webhook deletion
webhooks
Delete a WhatsApp campaign
Delete a WhatsApp campaign by its campaign ID. The campaign must exist; if the campaign ID is not found, a 404 error is returned. This action is permanent and cannot be undone.
whatsAppCampaigns
Dissociate an IP to sub-accounts
This endpoint allows to dissociate an IP from sub-accounts
masterAccount
Download a file
Get a temporary download URL for a CRM file by its identifier. The returned URL is valid for 5 minutes only and provides direct access to the file content.
files
Update permission for a user
`Feature` - A Feature represents a specific functionality like Email campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user, determine which feature you want to manage access to. You must specify the feature accurately to avoid errors. `Permission` - A Permission defines the level of access or control a user has over a specific feature. While inviting user, decide on the permission level required for the selected feature. Make sure the chosen permission is related to the selected feature. Features and their respective permissions are as below: - `email_campaigns`: - "create_edit_delete" - "send_schedule_suspend" - `sms_campaigns`: - "create_edit_delete" - "send_schedule_suspend" - `contacts`: - "view" - "create_edit_delete" - "import" - "export" - "list_and_attributes" - "forms" - `templates`: - "create_edit_delete" - "activate_deactivate" - `workflows`: - "create_edit_delete" - "activate_deactivate_pause" - "settings" - `landing_pages`: - "all" - `transactional_emails`: - "settings" - "logs" - `smtp_api`: - "smtp" - "api_keys" - "authorized_ips" - `user_management`: - "all" - `sales_platform`: - "create_edit_deals" - "delete_deals" - "manage_others_deals_tasks" - "reports" - "settings" - `phone`: - "all" - `conversations`: - "access" - "assign" - "configure" - `senders_domains_dedicated_ips`: - "senders_management" - "domains_management" - "dedicated_ips_management" - `push_notifications`: - "view" - "create_edit_delete" - "send" - "settings" - `companies`: - "manage_owned_companies" - "manage_other_companies" - "settings" **Note**: - The privileges array remains the same as in the send invitation; the user simply needs to provide the permissions that need to be updated. - The availability of feature and its permission depends on your current plan. Please select the features and permissions accordingly.
user
Export the recipients of an email campaign
Export the recipients of a sent email campaign as an asynchronous process, filtered by recipient type (e.g. openers, clickers, hardBounces). The recipientsType field is required and determines which subset of recipients to export. An optional notifyURL webhook will be called once the export is complete, and the response returns a processId to track the export status.
emailCampaigns
Enable/disable sub-account application(s)
API endpoint for the Corporate owner to enable/disable applications on the sub-account
masterAccount
Export webhook history
<Note> This is an enterprise feature. Contact us to activate it for your account. </Note> Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body. Use this endpoint to: - Export webhook event history filtered by date range, event type, or email address - Generate reports for compliance, auditing, or performance analysis - Track delivery patterns and webhook reliability over time
webhooks
Generate SSO token to access admin account
This endpoint generates an SSO token to authenticate and access the admin account using the endpoint https://account-app.brevo.com/account/login/corporate/sso/[token], where [token] will be replaced by the actual token.
masterAccount
Generate SSO token to access sub-account
This endpoint generates an sso token to authenticate and access a sub-account of the master using the account endpoint https://account-app.brevo.com/account/login/sub-account/sso/[token], where [token] will be replaced by the actual token.
masterAccount
Get an A/B test email campaign results
Obtain winning version of an A/B test email campaign
emailCampaigns
Get account details
Retrieves details of your Brevo account. **Use this to:** - Get account information (email, name, company, address) - Check plan details (type, credits, expiration) - Get relay information (for transactional emails) - Check Marketing Automation status - Access organization and user identifiers **Key information returned:** - Complete account details (organization ID, user ID, company information) - Address and contact information - Plan configurations and credit allocations across different verticals - Marketing Automation settings and tracker key (when enabled) - SMTP relay configuration for transactional emails - Enterprise features availability status **Important considerations:** - Provides comprehensive account overview for billing and configuration management - Essential for understanding current plan limitations and feature availability - Marketing Automation key is only returned when Marketing Automation is enabled on the account - Plan verticals show detailed breakdown across Marketing, Chat, and CRM categories (only returned when plan verticals are available) - Relay configuration crucial for transactional email setup and deliverability - Enterprise status determines access to advanced features and sub-account management
account
Get user activity logs
Retrieves user activity logs from your organization for security monitoring and audit compliance. Use this to: - Monitor user login activities and access patterns - Track account modifications and configuration changes - Generate security audit reports and compliance documentation - Investigate suspicious activities and unauthorized access - Monitor team member actions and account usage Key information returned: - Complete user activity details and timestamps - User identification (email, IP address, browser) - Action types and activity descriptions - Security-relevant events and access logs - Historical activity data for audit trails Note: Requires Enterprise plan for access to organization activity logs.
account
Get a company
Retrieve the full details of a single company by its identifier, including its attributes, linked contacts, and linked deals. Returns a 404 error if the company does not exist, or a 403 error if the user lacks permission to view the company.
companies
Get Active Balances API
Returns Active Balances
balance
Get a deal
Retrieve the full details of a single deal by its identifier, including its attributes, pipeline stage, linked contacts, and linked companies. Returns a 404 error if the deal does not exist.
deals
Get your transactional email activity aggregated over a period of time
This endpoint will show the aggregated stats for past 90 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
transactionalEmails
GET a group details
This endpoint allows you to retrieve a specific group’s information such as the list of sub-organizations and the user associated with the group.
masterAccount
Get all Companies
Retrieve a paginated list of companies with optional filtering, sorting, and search capabilities. Results are sorted by creation date in descending order by default, and can be filtered by attributes, linked contacts, linked deals, or modification/creation timestamps.
companies
Get all deals
Retrieve a paginated list of deals with optional filtering, sorting, and search capabilities. Results can be filtered by attributes such as deal name or owner, linked companies, linked contacts, or modification/creation timestamps. Default sort order is descending by creation date.
deals
Get all external feeds
Retrieves all external feeds from your Brevo account with filtering and pagination. **Use this to:** - Get an overview of all external data feeds - Find feeds by name using search functionality - Filter feeds by creation date range - Browse feeds by authentication type - Monitor feed library organization and usage **Key information returned:** - Feed details (UUID, name, URL, authentication type) - Feed configuration and settings - Creation and modification timestamps - Feed status and error information - Authentication and header configurations **Important considerations:** - External feeds enable dynamic content in email campaigns - Feeds must be accessible from Brevo servers - Authentication credentials are securely stored - Feed performance affects campaign delivery - Use pagination for accounts with many feeds - Date range filtering limited to 30 days maximum - Search functionality works on feed name matching - Internal feeds are system-managed and cannot be modified
externalFeeds
Get all files
Retrieve a paginated list of CRM files with optional filtering by entity type, entity IDs, and date range. Results are sorted by creation date in descending order by default, with a default limit of 50 files per page.
files
Get all notes
Retrieve a paginated list of CRM notes with optional filtering by entity type, entity IDs, and date range. Results are sorted by creation date in descending order by default, with a default limit of 50 notes per page.
notes
Get all pipelines
Retrieve the list of all deal pipelines configured for your account, including each pipeline''s stages and settings. If no pipelines have been configured yet, a default pipeline is automatically created and returned.
deals
Get all task types
Retrieve the list of all available task types, such as Email, Call, Meeting, Todo, Lunch, Deadline, and LinkedIn. If no task types exist yet, the default set is automatically created and returned. Use the task type ID when creating or updating tasks.
tasks
Get all tasks
Retrieve a paginated list of CRM tasks with optional filtering by task type, status, date range, assignee, and linked entities (contacts, deals, companies). Results are sorted by creation date in descending order by default, with a default limit of 50 tasks per page.
tasks
Get a message
Retrieve a single message by its ID.
conversations
Get an automated message
Retrieve a single automated (pushed) message by its ID.
conversations
Get a note
Retrieve the full details of a single CRM note by its identifier. The response includes the note''s text content, creation date, author, and any associated contacts, companies, or deals.
notes
Get a pipeline
Retrieve the details of a specific deal pipeline by its identifier, including its stages, stage ordering, and configuration. Use this endpoint to obtain the pipeline and stage IDs needed when creating or updating deals.
deals
Get a task
Retrieve the full details of a single CRM task by its identifier. The response includes the task''s name, type, status, due date, duration, notes, assignee, reminder settings, and linked contacts, companies, or deals.
tasks
Get attributed product sales for a single Brevo campaign or workflow
Retrieve the list of products whose sales have been attributed to a specific Brevo campaign or automation workflow. Each product entry includes its ID, name, SKU, image URL, product URL, price, revenue, and orders count. The conversion source type must be one of `email_campaign`, `sms_campaign`, `automation_workflow_email`, or `automation_workflow_sms`.
ecommerce
List all attributes
Retrieve all contact attributes defined in your Brevo account, grouped by category (normal, transactional, category, calculated, global). Each attribute includes its name, type, and category, along with enumeration values for category-type attributes and options for multiple-choice-type attributes.
contacts
Get attribution metrics for one or more Brevo campaigns or workflows
Retrieve aggregated ecommerce attribution metrics for one or more Brevo email campaigns, SMS campaigns, or automation workflows. You can optionally filter by a date range using `periodFrom` and `periodTo` in RFC3339 format. The response includes per-source metrics (orders count, revenue, and average basket) as well as aggregated totals across all requested sources.
ecommerce
Get balance definition
Returns balance definition
balance
Get balance definition list
Returns balance definition page
balance
Get balance limits
Fetches balance limits and send the created UUID along with the data
balance
Get the list of blocked domains
Get the list of blocked domains
transactionalEmails
Return all your categories
Retrieve a paginated list of all ecommerce categories stored in your Brevo account. Results are sorted by creation date in descending order by default, and can be filtered by category IDs, name, modification date, creation date, or deletion status. The response includes a `count` field with the total number of matching categories, and pagination defaults to 50 categories per page (maximum 100).
ecommerce
Get a category details
Retrieve the full details of a single ecommerce category by its unique ID. The response includes the category name, URL, creation and modification timestamps, and deletion status. Returns a `404` error if no category matches the provided ID.
ecommerce
Get code count
Get code count
reward
Get company attributes
Retrieve the list of all attributes defined for companies, including both system-default and custom attributes. Each attribute includes its label, internal name, type, required status, and available options for select-type attributes.
companies
Get a consent group
Returns a single consent group by ID for the account. <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
consentGroups
List all consent groups
Returns a paginated list of consent groups for the account. <Note>This endpoint is only available when the Consent Groups feature is enabled for your account. Returns `403` if the feature is not activated.</Note>
consentGroups
Get balance list
Returns contact balances for a given balance definition across all subscriptions.
balance
Get a contact's details
<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note> There are 2 ways to get a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL), phone_id (for SMS) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL, SMS and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute <br><br>Along with the contact details, this endpoint will show the statistics of contact for the recent 90 days by default. To fetch the earlier statistics, please use Get contact campaign stats ``https://developers.brevo.com/reference/contacts-7#getcontactstats`` endpoint with the appropriate date ranges.
contacts
Get email campaigns' statistics for a contact
Retrieve email campaign statistics for a specific contact identified by email address or numeric ID. Statistics include messages sent, opens, clicks, hard/soft bounces, deliveries, unsubscriptions, complaints, and transactional attributes. By default, data covers the last 90 days; use startDate and endDate parameters (YYYY-MM-DD) to specify a custom range with a maximum span of 90 days.
contacts
Get all the contacts
Retrieve all contacts from your Brevo account with support for pagination, filtering, and sorting. Results default to 50 contacts per page (maximum 1000) sorted in descending order of creation, and can be filtered by modification date, creation date, contact IDs (up to 20), list IDs, segment ID, or contact attributes using the equals operator. Note that either listIds or segmentId can be passed but not both simultaneously.
contacts
Get contacts in a list
Retrieve all contacts belonging to a specific list, identified by its list ID. Results are paginated with a default of 50 contacts per page (maximum 500) and sorted in descending order of creation. You can optionally filter contacts by their modification date using the modifiedSince parameter.
contacts
Get the list of all admin users
This endpoint allows you to list all Admin users of your Admin account. You can filter users by type (active or pending) and paginate results using offset and limit.
masterAccount
Check admin user permissions
This endpoint will provide the list of admin user permissions
masterAccount
Get a coupon collection by id
Retrieve the details of a single coupon collection by its UUID. The response includes the collection name, default coupon value, total and remaining coupon counts, and creation timestamp. Returns a `404` error if no collection matches the provided ID.
coupons
Get all your coupon collections
Retrieve a paginated list of all coupon collections in your Brevo account. Results can be sorted by creation date, remaining coupons count, or expiration date, in ascending or descending order. Pagination defaults to 50 collections per page (maximum 100).
coupons
Get deal attributes
Retrieve the list of all attributes defined for deals, including both system-default and custom attributes. Each attribute includes its label, internal name, type, required status, and available options for select-type attributes.
deals
Get detailed attribution metrics for a single Brevo campaign or workflow
Retrieve detailed attribution metrics for a single Brevo campaign or automation workflow, identified by its conversion source type and ID. The response includes orders count, revenue, average basket value, and the number of new customers attributed to that specific campaign or workflow.
ecommerce
Get a sender domain configuration
Retrieves configuration of a specific domain, to know if the domain is valid or not. Use this to: - Check domain configuration - Validate a domain configuration - Monitor DNS record status - Troubleshoot authentication issues Key information returned: - Domain verification and authentication status - DNS records configuration and validation status - Detailed authentication requirements
domains
Get the list of all sender domains
Retrieves all domains associated with the account. Use this to: - List all domains - Verify domain existence - Check domain authentication and verification status - Monitor domain configuration and provider information - Review domain creation history and ownership Key information returned: - Domain details (ID, name, authentication status) - Verification and authentication states - Associated IP addresses and DNS providers - Creator information and creation timestamps - Pagination information for large domain lists
domains
Get an email campaign report
Retrieve detailed information about a specific email campaign by its ID, including recipients, statistics, and HTML content. Use the statistics query parameter to select which statistics to include (globalStats, linksStats, statsByDomain, statsByDevice, or statsByBrowser); statsByDevice and statsByBrowser are only available on this single-campaign endpoint. You can exclude HTML content from the response by setting excludeHtmlContent to true.
emailCampaigns
Return all your created email campaigns
<Note>The response payload for this endpoint has changed You now need to specify which type of statistics you would like to retrieve. For more information visit [this page](https://developers.brevo.com/changelog/2023/2/7).</Note>
emailCampaigns
Get all your transactional email activity (unaggregated events)
This endpoint will show the aggregated stats for past 30 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
transactionalEmails
Get events
<Note> This endpoint currently only supports custom events. </Note> Retrieve a list of events filtered by various criteria.
event
Get external feed details
Retrieves details of a specific external feed by its UUID. **Use this to:** - Get complete configuration of an external feed - Check feed authentication settings - Review feed personalization options - Verify feed URL and parameters - Monitor feed modification history **Key information returned:** - Complete feed configuration and settings - Authentication credentials and headers - Personalization and fallback settings - Creation and modification timestamps - Cache and retry configurations **Important considerations:** - UUID must exist in your account - Provides complete feed information for troubleshooting - Essential before making modifications - Shows current feed health status - Useful for debugging feed issues
externalFeeds
Get file details
Retrieve the metadata and details of a specific CRM file by its identifier. This returns information such as the file name, size, type, creation date, and associated entities, but does not include the file content itself.
files
Returns a folder's details
<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>
contacts
Get lists in a folder
<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>
contacts
Get all folders
<Note>Ongoing changes for this endpoint We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0. The uniqueSubscribers field is deprecated</Note>
contacts
Retrieve inbound attachment with download token.
This endpoint will retrieve inbound attachment with download token.
inboundParsing
Get the list of all the events for the received emails.
This endpoint will show the list of all the events for the received emails. When no date range is provided, the last 30 days of events are returned by default.
inboundParsing
Fetch all events history for one particular received email.
This endpoint will show the list of all events history for one particular received email.
inboundParsing
Get the list of all your users
Retrieves the list of all users associated with your organization, including both active and pending invited users. Each user entry includes their email address, owner status, current invitation status, and feature access levels for marketing, CRM, and conversations.
user
Get all the dedicated IPs for your account
Retrieves all dedicated IPs associated with your Brevo account. Use this to: - List all your dedicated IPs - Check the status of your dedicated IPs (active/inactive) - Find IP addresses and associated domains for configuration purposes - Monitor your IP reputation and deliverability - Verify available IPs for sender configuration Key information returned: - IP ID and address - Associated domain - Active status - IP configuration details
senders
Get all the dedicated IPs for a specific sender
Retrieves the dedicated IPs associated with a specific sender. Use this to: - Check IP configuration for a sender - Verify dedicated IP associations - Get IP details for troubleshooting - Monitor sender IP configuration Key information returned: - List of associated dedicated IPs - IP addresses and domain configurations - IP status and settings
senders
Get a list's details
Retrieve the details of a specific contact list by its ID, including its name, folder ID, creation date, subscriber counts, and campaign statistics. You can optionally filter campaign statistics by providing startDate and endDate parameters (both must be used together in YYYY-MM-DD format).
contacts
List tier groups
Returns the list of tier groups defined within the loyalty program.
tier
Get all the lists
<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>
contacts
Get loyalty program Info
Returns loyalty program
program
List tiers
Returns the list of tiers defined within the loyalty program.
tier
Get loyalty program list
Returns list of loyalty programs
program
Get order details
Get all the orders
ecommerce
Get Subscription Data
Get Information of balances, tiers, rewards and subscription members for a subscription
program
Get payment request details
Retrieve the details of a specific payment request by its ID. The response includes the reference, status (created, sent, reminderSent, or paid), cart details, notification configuration, contact ID, and the number of reminders sent. Returns a `404` error if no payment request matches the provided ID.
payments
Get pipeline stages
This endpoint is deprecated. Prefer /crm/pipeline/details/{pipelineID} instead.
deals
Get process details
Retrieves detailed information about a specific background process. **Use this to:** - Get detailed status of a specific process - Monitor process progress and completion - Download results from completed export processes - Check error details for failed processes - Track process execution times **Key information returned:** - Complete process details (ID, name, status) - Download URLs for completed export processes - Import details with CSV report URLs for completed import processes **Important considerations:** - Process ID must exist in your account and not be deleted - Completed export processes include download URLs - Completed import processes include CSV report URLs with details about problematic records - Different process types return different result structures
process
Get background processes
Retrieves a list of background processes from your Brevo account with filtering and pagination. **Use this to:** - Monitor background process activity and status - Track long-running operations and tasks - Find process IDs for detailed status checking - Review process history and performance - Identify failed or stuck processes for troubleshooting **Key information returned:** - Process details (ID, name, status) - Export download URLs for completed export processes - Import details with CSV report URLs for completed import processes - Total count of processes for pagination **Important considerations:** - Background processes handle long-running operations like imports and exports - Process status indicates current state (queued, processing, completed) - Export processes provide download URLs when completed - Import processes provide CSV report URLs with details about problematic records - Use pagination for accounts with many historical processes - Sort options available for creation order (ascending or descending) - Default limit is 10 results per page, maximum is 50
process
Get a product's details
Retrieve the full details of a single ecommerce product by its unique ID. The response includes the product name, price, SKU, URL, image URLs (original and thumbnails), categories, stock level, meta information, creation and modification timestamps, and deletion status. Returns a `404` error if no product matches the provided ID.
ecommerce
Return all your products
Retrieve a paginated list of all ecommerce products stored in your Brevo account. Results are sorted by creation date in descending order by default, and can be filtered by product IDs, name (minimum 3 characters), price range, category IDs, modification date, creation date, or deletion status. Use the `search` parameter to query across SKU, name, and ID simultaneously — results are prioritized as exact SKU match > SKU prefix match > name match > ID match. Pagination defaults to 50 products per page (maximum 1000), and the response includes a `count` field with the total number of matching products.
ecommerce
Get reward information
Returns reward information.
reward
Get Reward Page API
Returns a reward page
reward
Fetch scheduled emails by batchId or messageId
Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)
transactionalEmails
Get all the segments
Retrieve all contact segments defined in your Brevo account with support for pagination and sorting. Results default to 10 segments per page (maximum 50) sorted in descending order of creation. Each segment includes its ID, name, category name, and last update timestamp.
contacts
Get email senders
Retrieves a list of all email senders from your Brevo account with optional filtering. **Use this to:** - Get all available senders for email campaign setup - Find sender details including ID, name, and email address - Filter senders by IP address for dedicated IP users - Filter senders by domain for domain-specific configurations - Monitor sender configuration and status **Key information returned:** - Sender details (ID, name, email address) - Sender status and verification information - Associated IP addresses and domains (for dedicated IP accounts) - Sender configuration settings **Important considerations:** - Standard accounts show empty IP arrays, dedicated IP accounts show IP assignments - Filtering by IP only available for accounts with dedicated IPs - Domain filtering helps organize senders by business units or brands - Sender status indicates if sender is active and ready for campaign use - Email verification required before sender can be used in campaigns
senders
Get a shared template url
Get a unique URL to share & import an email template from one Brevo account to another.
emailCampaigns
Get an SMS campaign
Retrieve detailed information about a specific SMS campaign by its ID, including campaign content, sender, recipients with list names, statistics (delivered, sent, bounces, unsubscriptions, answered), and tags. Unlike the list endpoint, recipients are returned as objects with id and name fields rather than plain IDs.
smsCampaigns
Returns the information for all your created SMS campaigns
Retrieve a paginated list of all your SMS campaigns with their statistics and recipient information. Results can be filtered by status and date range, with a default limit of 500 and maximum of 1000 per page. The sort order defaults to descending by creation date; date filters are only available when status is not passed or is set to sent.
smsCampaigns
Get all your SMS activity (unaggregated events)
Retrieve a paginated list of individual SMS event records (unaggregated), including event type, phone number, message ID, timestamp, tag, and reason or reply content where applicable. Results default to 50 per page (max 100) and are sorted in descending order unless overridden. Filter by date range (`startDate`/`endDate`), past `days` (not compatible with date range), specific `event` type (e.g. delivered, bounces, replies), `phoneNumber`, or `tags`. Bounce events include the failure reason, and reply events include the reply content.
transactionalSms
Get your transactional email activity aggregated per day
This endpoint will show the aggregated stats per day for the past 10 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 30 days.
transactionalEmails
Returns the template information
Retrieve the full details of a specific transactional email template by its numeric ID or custom template identifier string. The response includes the template name, subject, sender information, HTML content, active status, creation and modification timestamps, reply-to address, tag, and a `doiTemplate` flag indicating whether the template is a double opt-in template (detected by the presence of optin-related tags or variables in the content).
transactionalEmails
Get the list of email templates
Retrieve a paginated list of all transactional email templates (including automation templates) with their details such as name, subject, sender, status, HTML content, and timestamps. Results default to 50 per page (max 1000) and are sorted in descending creation order unless overridden. You can filter by active/inactive status using `templateStatus` and by editor type using `editorType` (currently only `richTextEditor` is supported).
transactionalEmails
Get sub-account details
This endpoint will provide the details for the specified sub-account company
masterAccount
Get the list of groups
This endpoint allows you to list all groups created on your Admin account.
masterAccount
Get subscription balances
Returns subscription balances
balance
Get the details of requested master account
This endpoint will provide the details of the master account.
masterAccount
Get the ISO 4217 compliant display currency code for your Brevo account
Retrieve the ISO 4217 display currency code currently configured for your Brevo ecommerce account. This currency is used to display monetary values across the ecommerce dashboard and reports. Returns a `403` error if ecommerce is not activated on the account.
ecommerce
Get the list of all the sub-accounts of the master account.
This endpoint will provide the list all the sub-accounts of the master account.
masterAccount
Get tier group
Returns tier group information.
tier
Get your SMS activity aggregated over a period of time
Retrieve an aggregated report of your transactional SMS activity over a specified time period, including counts for requests, delivered, hard bounces, soft bounces, blocked, unsubscribed, replied, accepted, rejected, and skipped messages. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format) or by a number of past `days` (not compatible with date range). You can further narrow results by `tag`. If no date filter is provided, the report covers all available data and returns the auto-detected date range.
transactionalSms
Get the list of blocked or unsubscribed transactional contacts
Retrieve a paginated list of transactional contacts that have been blocked or unsubscribed, along with the reason for blocking (e.g. hard bounce, admin blocked, spam complaint, or unsubscription via email/API/Marketing Automation). Both `startDate` and `endDate` must be provided together when filtering by date range, and neither date can be in the future. Results default to 50 per page (max 100) and are sorted in descending order of record creation unless overridden with the `sort` parameter.
transactionalEmails
Get the personalized content of a sent transactional email
<Note title="How to get uuid">You can get the uuid using either of the following methods: Send a GET request to https://api.brevo.com/v3/smtp/emails and pass the message_id in the url. Use your api-key to authenticate the request and you will get your uuid as a response. The uuid can also be fetched from the transactional logs page in your Brevo account, from the address URL.</Note>
transactionalEmails
Get the list of transactional emails on the basis of allowed filters
This endpoint will show the list of emails for past 30 days by default. To retrieve emails before that time, please pass startDate and endDate in query filters.
transactionalEmails
Get your SMS activity aggregated per day
Retrieve a day-by-day breakdown of your transactional SMS activity, with each entry containing the date and counts for requests, delivered, hard bounces, soft bounces, blocked, unsubscribed, replied, accepted, rejected, and skipped messages. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format), by a number of past `days` (not compatible with date range), or by `tag`. Results are sorted in descending order by default unless overridden with the `sort` parameter.
transactionalSms
Get Transaction History API
Returns transaction history
balance
Check user permission
Retrieves the granular feature-level permissions assigned to a specific user in the organization, identified by their email address. The response includes the user''s current status (active or pending) and a detailed list of privileges specifying which features and permission levels are granted.
user
Get voucher for a contact
Get voucher for a contact
reward
Get a pass installation URL for a contact
Generate a wallet installation URL for a specific contact. The returned URL points to the pass installation page and encodes the pass, contact and organization identifiers as an encrypted token, so it can be shared with the contact (email, SMS, QR code, ...) to add the pass to their Apple Wallet or Google Wallet.
wallet
Get a webhook details
Retrieves detailed information about a specific webhook configuration. Use this to: - Get complete webhook configuration and settings - Check webhook event subscriptions and triggers - Review authentication and security settings - Verify webhook URL and custom headers - Access webhook creation and modification history Key information returned: - Complete webhook details and configuration - Event types and channel subscriptions - Authentication credentials and methods - Custom headers and request settings - Webhook status and activity information
webhooks
Get all webhooks
Retrieves all webhooks from your Brevo account with filtering and sorting options. Use this to: - Monitor webhook configurations and event handling - List webhooks by type (transactional, marketing, inbound) - Review webhook endpoints and authentication - Track webhook creation and modification history - Audit webhook event subscriptions Key information returned: - Complete webhook details and configuration - Event types and channel subscriptions - Authentication and security settings - Webhook URLs and custom headers - Creation and modification timestamps
webhooks
Get a WhatsApp campaign
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note> <Note>This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information. [Get all the Lists](https://developers.brevo.com/reference/getlists-1) [Get all the Segments](https://developers.brevo.com/reference/getsegments)</Note>
whatsAppCampaigns
Return all your created WhatsApp campaigns
Retrieve a paginated list of all your WhatsApp campaigns with their statistics and metadata. Results can be filtered by creation date range using startDate and endDate, with a default limit of 50 and maximum of 100 per page. The sort order defaults to descending by modification date.
whatsAppCampaigns
Get your WhatsApp API account information
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note>
whatsAppCampaigns
Return all your created WhatsApp templates
Retrieve a paginated list of all your WhatsApp templates with their status, category, language, and metadata. Results can be filtered by creation date range and optionally by source (Automation or Conversations), with a default limit of 50 and maximum of 100 per page. The sort order defaults to descending by modification date.
whatsAppCampaigns
Get all your WhatsApp activity (unaggregated events)
This endpoint will show the unaggregated statistics for WhatsApp activity (30 days by default if `startDate` and `endDate` or `days` is not passed. The date range can not exceed 90 days)
transactionalWhatsApp
Get the list of object records and total records count for an object.
<Note title="Enterprise access only">Custom objects are only available to Enterprise plans. This feature is in beta. These are subject to change.</Note> This API retrieves a list of object records along with their associated records and provides the total count of records for the specified object. **Note**: Contact as object type is not supported in this endpoint.
customObjects
Import companies(creation and updation)
Import companies from a CSV file with mapping options.
companies
Import contacts
It returns the background process ID which on completion calls the notify URL that you have set in the input. **Note**: - Any contact attribute that doesn't exist in your account will be ignored at import end.
contacts
Import deals(creation and updation)
Import deals from a CSV file with mapping options.
deals
Send invitation to an admin user
`This endpoint allows you to invite a member to manage the Admin account Features and their respective permissions are as below: - `my_plan`: - "all" - `api`: - "none" - `user_management`: - "all" - `app_management` | Not available in ENTv2: - "all" - `sub_organization_groups` - "create" - "edit_delete" - `create_sub_organizations` - "all" - `manage_sub_organizations` - "all" - `analytics` - "download_data" - "create_alerts" - "my_looks" - "explore_create" - `security` - "all" **Note**: - If `all_features_access: false` then only privileges are required otherwise if `true` then it's assumed that all permissions will be there for the invited admin user.
masterAccount
Send invitation to user
`Feature` - A Feature represents a specific functionality like Email campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user, determine which feature you want to manage access to. You must specify the feature accurately to avoid errors. `Permission` - A Permission defines the level of access or control a user has over a specific feature. While inviting user, decide on the permission level required for the selected feature. Make sure the chosen permission is related to the selected feature. Features and their respective permissions are as below: - `email_campaigns`: - "create_edit_delete" - "send_schedule_suspend" - `sms_campaigns`: - "create_edit_delete" - "send_schedule_suspend" - `contacts`: - "view" - "create_edit_delete" - "import" - "export" - "list_and_attributes" - "forms" - `templates`: - "create_edit_delete" - "activate_deactivate" - `workflows`: - "create_edit_delete" - "activate_deactivate_pause" - "settings" - `landing_pages`: - "all" - `transactional_emails`: - "settings" - "logs" - `smtp_api`: - "smtp" - "api_keys" - "authorized_ips" - `user_management`: - "all" - `sales_platform`: - "create_edit_deals" - "delete_deals" - "manage_others_deals_tasks" - "reports" - "settings" - `phone`: - "all" - `conversations`: - "access" - "assign" - "configure" - `senders_domains_dedicated_ips`: - "senders_management" - "domains_management" - "dedicated_ips_management" - `push_notifications`: - "view" - "create_edit_delete" - "send" - "settings" - `companies`: - "manage_owned_companies" - "manage_other_companies" - "settings" **Note**: - If `all_features_access: false` then only privileges are required otherwise if `true` then it's assumed that all permissions will be there for the invited user. - The availability of feature and its permission depends on your current plan. Please select the features and permissions accordingly.
user
Link and Unlink a deal with contacts and companies
Link or unlink contacts and companies with a specific deal in a single request. You can simultaneously link new contacts/companies and unlink existing ones by providing the respective ID arrays in the request body.
deals
Link and Unlink company with contact and deal
Link or unlink contacts and deals with a specific company in a single request. You can simultaneously link new contacts/deals and unlink existing ones by providing the respective ID arrays in the request body.
companies
List of all IPs
This endpoint allows you to retrieve the list of active IPs on your Admin account
masterAccount
Partially update loyalty program
Partially updates loyalty program
program
Generate the rendered preview of transactional template
Generate a fully rendered preview of a transactional email template by resolving dynamic variables. Provide either an `email` address (to populate variables from the contact''s attributes) or a `params` object with key-value pairs for manual substitution; at least one of these is required alongside the mandatory `templateId`. The response includes the rendered HTML, subject, sender details, preview text, and any feed names used in the template.
transactionalEmails
Publish loyalty program
Publishes loyalty program
program
Revoke user permission
Revokes all permissions for an invited user in the organization, effectively removing their access to the platform. If the user''s plan change generated credit notes, they are returned in the response for billing reconciliation.
user
Resend / Cancel invitation
Resends or cancels a pending invitation for a user in the organization, depending on the action path parameter. Use `resend` to send a new invitation email to the user, or `cancel` to revoke the pending invitation entirely and remove the user''s pending access.
user
Create redeem voucher request
Creates a request to redeem a voucher.
reward
Delete a contact from a list
Delete a contact from a list
contacts
Export contacts
It returns the background process ID which on completion calls the notify URL that you have set in the input. File will be available in csv.
contacts
Export an SMS campaign's recipients
It returns the background process ID which on completion calls the notify URL that you have set in the input.
smsCampaigns
Resend / cancel admin user invitation
This endpoint will allow the user to: - Resend an admin user invitation - Cancel an admin user invitation
masterAccount
Revoke an admin user
This endpoint allows to revoke/remove an invited member of your Admin account
masterAccount
Revoke vouchers
Revoke attributed vouchers.
reward
Send a message as an agent
Send a message as an agent to an existing visitor's conversation. You must provide either `agentId` alone, or all three of `agentEmail` + `agentName` + `receivedFrom` to identify the agent.
conversations
Send an automated message to a visitor
Send an automated (pushed) message to a visitor on behalf of an agent. Example use cases: order status updates, announcing new features in your web app, etc.
conversations
Send SMS message asynchronously to a mobile number
<Note>If the user includes stop code in the Transactional SMS, then it will be switched to Marketing SMS automatically and it will be interpreted as a Marketing SMS. To send Transactional SMS as Transactional, it is important not to use stop code. Note: For adding a stop code, client has to add reply STOP to [STOP_CODE] and the [STOP_CODE] will be replaced with the number.</Note> <Note title="For end users in France">Transactional SMS can be sent at any time without time restrictions. However, if a message is categorized as Marketing, it must adhere to specific time restrictions. Messages sent outside of these restricted hours will experience delays and will be processed during allowable times. Specifically, Marketing SMS cannot be processed between 10pm and 8am, on Sundays, and on French public holidays.</Note>
transactionalSms
Send an email campaign immediately, based on campaignId
Send an existing email campaign immediately by scheduling it for the current time. The campaign must have valid recipients and content configured before sending. The system verifies your account''s send limit and credit balance before dispatching; if credits are insufficient, a 402 error is returned.
emailCampaigns
Send the report of a campaign
A PDF will be sent to the specified email addresses
emailCampaigns
Send your SMS campaign immediately
Send an existing SMS campaign immediately by scheduling it for the current time. The system verifies your account''s SMS credit balance before dispatching; if credits are insufficient or the remaining credit is less than the number of recipients, a 402 error is returned. The campaign must have valid recipients and content already configured.
smsCampaigns
Send an SMS campaign's report
Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.
smsCampaigns
Send an email campaign to your test list
Send a test version of an email campaign to specified email addresses or your entire test list. If the emailTo array is left empty, the test mail will be sent to all addresses in your test list. You can send a maximum of 50 test emails per day.
emailCampaigns
Send a test SMS campaign
Send a test SMS to a specified phone number to preview the campaign before sending it to all recipients. The phone number must belong to one of your existing contacts in your Brevo account and must not be blacklisted. The number should include the country code (e.g. 33689965433).
smsCampaigns
Send a template to your test list
Send a test email of the specified transactional template to one or more recipients. Provide an array of email addresses in the `emailTo` field; if left empty, the test mail is sent to your entire test list. You can send a maximum of 50 test emails per day, and all provided email addresses must be valid.
transactionalEmails
Send a transactional email
Send a transactional email to one or more recipients, either using inline HTML content or a pre-built template via `templateId`. You can schedule emails for future delivery using `scheduledAt` (UTC, up to 5-minute delay), send multiple personalized versions with `messageVersions` (max 2000 total recipients, 99 per version), and attach files via URL or base64-encoded content. A `sender` and `subject` are required when no `templateId` is provided; when a `templateId` is used, the template''s sender and subject are applied unless overridden.
transactionalEmails
Send your WhatsApp template for approval
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note>
whatsAppCampaigns
Send a WhatsApp message
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note> This endpoint is used to send a WhatsApp message. <br/>(**The first message you send using the API must contain a Template ID. You must create a template on WhatsApp on the Brevo platform to fetch the Template ID.**)
transactionalWhatsApp
Set the ISO 4217 compliant display currency code for your Brevo account
Set or update the ISO 4217 display currency code for your Brevo ecommerce account. This currency determines how monetary values are displayed in the ecommerce dashboard and reports. The provided currency code must be a valid ISO 4217 code; invalid codes result in a `422` error. Returns a `403` error if ecommerce is not activated on the account.
ecommerce
Set visitor group assignment
Assigns a visitor to a specific agent group or removes them from their current group.
conversations
Sets agent's status to online for 2-3 minutes
Sets the agent's status to online for 2-3 minutes. We recommend pinging this endpoint every minute for as long as the agent has to be considered online. You must provide either `agentId` alone, or all three of `agentEmail` + `agentName` + `receivedFrom`.
conversations
Create subscription member
Add member to a subscription
program
Create subscription
Subscribes to a loyalty program
program
Unblock or resubscribe a transactional contact
Unblock or resubscribe a transactional contact by removing their email address from the blacklist. The email address must be URL-encoded in the path parameter and must be a valid email format. If the contact is not found in the blocklist, a 404 error is returned.
transactionalEmails
Update a company
Update an existing company''s attributes, name, linked contacts, or linked deals. Note that passing `linkedContactsIds` or `linkedDealsIds` replaces the entire list of associations, so omitted IDs will be removed. The company name cannot be set to an empty string.
companies
Update a deal
Update an existing deal''s attributes, name, linked contacts, or linked companies. Note that passing `linkedContactsIds` or `linkedCompaniesIds` replaces the entire list of associations, so omitted IDs will be removed. To move a deal to a different pipeline or stage, provide both the `pipeline` and `deal_stage` attribute IDs.
deals
Update a group of sub-accounts
This endpoint allows to update a group of sub-accounts
masterAccount
Update a message sent by an agent
Update the text of a message sent by an agent. Only messages of type `agent` can be edited. The `text` and `html` fields of the message will be updated.
conversations
Update an automated message
Update the text of an automated (pushed) message. The `text` and `html` fields of the message will be updated.
conversations
Update a note
Update an existing CRM note''s text content and its associations with contacts, companies, or deals. You can modify the note text, change the pinned status, or update the linked entities.
notes
Update a task
Update an existing CRM task''s properties such as name, type, due date, status, duration, notes, assignee, reminder, or linked entities. Only the fields provided in the request body will be updated; omitted fields remain unchanged.
tasks
Update contact attribute
Update an existing contact attribute identified by its category and name. For category-type attributes, you can update the enumeration values; for calculated or global attributes, update the computed value formula; and for normal multiple-choice attributes, update the multicategory options. None of the category or multicategory option values can exceed 200 characters.
contacts
Update balance definition
Updates Balance definition
balance
Updates balance limit
Updates balance limit
balance
Update an email campaign status
Update the status of an email campaign, such as suspending, archiving, or replicating it. Available status values include suspended, archive, darchive, sent, queued, replicate, replicateTemplate, cancel, and draft. Note that the replicateTemplate status is only available for template type campaigns.
emailCampaigns
Update a consent group
Updates name, description, or signupMode of a consent group. At least one field must be provided. <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>
consentGroups
Update a contact
<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx <br><br> If a blocklisted contact's email address is updated, it is going to remove that blocklisting from the contact and they will be resubscribed.</Note> There are 2 ways to update a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE attribute
contacts
Update a coupon collection by id
Update an existing coupon collection by its UUID. You can modify the default coupon value, set or remove the expiration date (pass `null` to remove), and configure or disable alert thresholds for remaining coupons or remaining days. Only the fields included in the request body are updated; omitted fields remain unchanged.
coupons
Update an email campaign
Update an existing email campaign''s properties such as name, subject, content, sender, recipients, schedule, and A/B testing configuration. The campaign must exist and the request body must contain at least one valid field to update. Only draft or scheduled campaigns can be modified; if sendAtBestTime is enabled, IP warmup will be automatically disabled.
emailCampaigns
Update external feed
Updates configuration of an existing external feed. **Use this to:** - Update feed URLs when data sources change - Modify authentication credentials - Change cache and retry settings - Update custom headers - Rename feeds for better organization **Key information returned:** - Success confirmation message **Important considerations:** - Only provided fields will be updated - Feed UUID must exist in your account - Authentication changes require verification - URL changes should be tested before campaign use - Monitor campaigns using this feed after updates
externalFeeds
Update a folder
Update the name of an existing folder identified by its ID. The new folder name must be provided in the request body. Returns a 404 error if the folder ID does not exist.
contacts
Update a list
Update an existing contact list identified by its ID. You can update the list name, move it to a different folder by providing a new folderId, or both. Only one of the two parameters (name, folderId) needs to be provided per request.
contacts
Update loyalty program
Updates loyalty program
program
Update a sender
Updates an existing email sender's configuration. Use this to: - Modify sender display name or email address - Update dedicated IP associations - Change sender configuration settings - Correct sender information Key information returned: - Success confirmation - Updated sender details
senders
Update an SMS campaign
Update an existing SMS campaign''s properties such as name, sender, content, recipients, scheduled date, organisation prefix, and unsubscribe instructions. The request body must contain at least one valid field to update. The campaign must exist and must be of type SMS; if a scheduledAt is provided, valid recipients must be present either in the request or already configured on the campaign.
smsCampaigns
Update a campaign's status
Update the status of an SMS campaign, such as suspending, archiving, or replicating it. Available status values include suspended, archive, darchive, sent, queued, replicate, replicateTemplate, cancel, and draft. Note that the replicateTemplate status is only available for template type campaigns.
smsCampaigns
Update an email template
Update an existing transactional email template by its numeric ID or custom template identifier string. All fields in the request body are optional; only the provided fields will be updated. You can update the template name, subject, sender, reply-to address, HTML content (via `htmlContent` or `htmlUrl`), active status, tag, attachment URL, and the personalized `toField`. Only one of sender email or sender ID should be provided per request.
transactionalEmails
Update sub-account plan
This endpoint will update the sub-account plan. On the Corporate solution new version v2, you can set an unlimited number of credits in your sub-organization. Please pass the value “-1" to set the consumable in unlimited mode.
masterAccount
Update sub-accounts plan
This endpoint will update multiple sub-accounts plan. On the Corporate solution new version v2, you can set an unlimited number of credits in your sub-organization. Please pass the value “-1" to set the consumable in unlimited mode.
masterAccount
Update tier
Modifies an existing tier for the specified tier group *(The changes will take effect with the next publication of the loyalty program)*
tier
Update tier group
Updates a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
tier
Update a webhook
Updates an existing webhook configuration and event subscriptions. Use this to: - Modify webhook event subscriptions and triggers - Update webhook URL and endpoint configuration - Change authentication settings and credentials - Adjust custom headers and request parameters - Enable or disable specific webhook events Key information returned: - Success confirmation of webhook updates
webhooks
Update a WhatsApp campaign
<Note>You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below. [Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account</Note> <Note>This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information. [Get all the Lists](https://developers.brevo.com/reference/getlists-1) [Get all the Segments](https://developers.brevo.com/reference/getsegments)</Note>
whatsAppCampaigns
Upload a file
Upload a file and associate it with a contact, company, or deal. The file must be sent as multipart form data with a maximum size of 10 MB. You can optionally link the file to a specific entity by providing the corresponding entity ID.
files
Upload an image to your account's image gallery
Upload an image to your account''s image gallery by providing an absolute URL to the image. The maximum allowed image size is 2MB and supported formats are jpeg, jpg, png, bmp, and gif; local file uploads are not supported.
emailCampaigns
Create/Update object records in bulk
<Note title="Enterprise access only">Custom objects are only available to Enterprise plans. This feature is in beta. These are subject to change.</Note> Performs bulk create or update (upsert) operations for object records in a single asynchronous request. This endpoint is optimized for high-volume data imports and synchronization scenarios. **How Upsert Works:** - **Create**: Omit `identifiers`, or provide only `ext_id` (if it doesn't already exist). A new record is created with a Brevo-generated `id`. - **Update**: Provide `id` (Brevo internal ID) or an `ext_id` that already exists. The matching record is updated with the new attribute values. - **Important:** `id` is for **updates only**. Providing an `id` that does not belong to an existing record will fail during async processing (the HTTP response will still be 202, but the record will be rejected in the background). To create a new record with a stable external reference, use `ext_id` instead. **Request Structure:** Each object record in the `records` array can include: - `identifiers`: Either `id` (internal Brevo ID) or `ext_id` (your external system ID) — required for updates. **Note:** use `id` (singular), not `ids`. - `attributes`: Key-value pairs where each key is the attribute **key** (e.g., `company_name`), not the attribute label (e.g., "Company Name"). - `associations`: Controls linking and unlinking of associated records (optional). Each entry specifies: - `object_type`: The type of the associated object - `action`: `link` (default) to create the association, or `unlink` to remove it - `records`: The associated records to link or unlink (each identified by `ext_id` or `id`) - **Unlink is idempotent** — unlinking a non-existing association is a no-op (no error returned) - `link` and `unlink` actions can be submitted for the same `object_type` in a single record entry - Both associated records must already exist before a link can be created > **Common mistake:** Passing the attribute **label** (the display name you see in the UI) instead of the attribute **key** will cause the attribute to be silently ignored and the record may not be created as expected. **Asynchronous Processing:** - Returns immediately with a `processId` (HTTP 202 Accepted) - Use the processId to track status via the Get process API **API and Schema Limitations:** - Max 1000 object records per request - Max request body size: 1 MB - Max 500 attributes per object record (matches the schema limit of 500 attributes per object) - Unknown attribute keys are silently ignored (no error, no attribute creation) - Max 10 association records per associated object-type in each record of the request. If you need more, send multiple requests. **Important Behaviors:** - The object schema must be created before upserting records - Unknown attribute keys are silently ignored (no error, no creation) - Both associated object records must already exist before creating a link association - Unlink operations are idempotent: attempting to unlink a non-existing association returns success - `link` and `unlink` actions can be submitted for the same `object_type` in a single record entry - Contact objects cannot be created via this endpoint - For `category` and `multiple_category` attributes, pass the option **key** as the value (not the option label or option ID). - The `id` identifier (internal Brevo ID) can only be used for **updating** existing records. To create new records, either omit identifiers (Brevo auto-generates an ID) or provide an `ext_id`. **Errors:** - Make sure both object records exist before associating them, else the API will return an error. - This route does not create objects. The object where the object records are upserted by this API must be created already else the API will return an error "invalid object type".
customObjects
Validate a reward
Validates a reward.
reward
Validate a sender using OTP
Validates a sender using the OTP (One-Time Password) received via email. Use this to: - Complete sender verification process - Activate a newly created sender - Verify ownership of the sender email address - Enable the sender for use in email campaigns Key information returned: - Success confirmation of sender verification - Sender activation status
senders
FAQ

Brevo integration, answered

How do AI agents use Brevo through Open Connector?
Your user connects Brevo once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Brevo tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
Is this a Brevo MCP server?
Yes. Open Connector can serve Brevo as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Brevo actions with credentials injected server-side.
Where do Brevo credentials live?
In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.

Give your agents Brevo — keep the keys.

Open source, self-hostable, with Brevo credentials that never leave your infrastructure. Run it from source today.