- Home
- MCP Integrations
- Brevo MCP Server
Installation
Get StartedCreate a Gumloop Account
To use this MCP, you need a Gumloop account. If you don't have one yet, you can create one for free.
Copy Your Server URL
Copy your MCP server URL and add it to your client. You'll be prompted to authorize on first use.
Tools (282)
Accounts Get Account
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
Accounts Get Corporate Invited Users List
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.
Accounts Get Corporate Ip
Retrieves the list of all active dedicated IPs available on the corporate admin account. Each IP entry includes the IP address, associated domain, and whether it is configured for transactional email sending.
Accounts Get Corporate Master Account
Retrieves comprehensive details of the corporate master account, including company information, billing details, current plan configuration with feature quotas, and timezone settings. This endpoint is only accessible by the master account owner.
Accounts Post Corporate Sso Token
Generates a Single Sign-On (SSO) token that allows authentication to the corporate admin account without requiring a separate login. The generated token is valid for 15 days and can be used via the URL https://account-app.brevo.com/account/login/corporate/sso/[token]. The email must belong to a valid admin user of the account.
Accounts Get Corporate Sub Account
Retrieves a paginated list of all sub-accounts under the corporate master account. Each sub-account entry includes company name, creation date, active status, and group memberships. Use `offset` and `limit` parameters for pagination.
Accounts Post Corporate Sub Account
Creates a new sub-account under the corporate master account. The sub-account will be provisioned with the specified company name and email address. Optionally, you can assign the sub-account to one or more groups and set language and timezone preferences.
Accounts Post Corporate Sub Account Ip Associate
Associates a dedicated IP address with one or more sub-account organizations. This allows the specified sub-accounts to use the dedicated IP for sending emails. Both the IP address and a list of sub-account IDs are required.
Accounts Put Corporate Sub Account Ip Dissociate
Removes the association of a dedicated IP address from one or more sub-account organizations. After dissociation, the specified sub-accounts will no longer be able to use this dedicated IP for sending emails. Both the IP address and a list of sub-account IDs are required.
Accounts Post Corporate Sub Account Key
Generates a new API v3 key for a specific sub-account organization. Both the sub-account ID and a name for the API key are required. The generated key is returned in the response and should be stored securely, as it cannot be retrieved again after creation.
Accounts Post Corporate Sub Account Sso Token
Generates a Single Sign-On (SSO) token that allows the master account to authenticate directly into a sub-account without requiring separate login credentials. The generated token is valid for 15 days and can be used via the URL https://account-app.brevo.com/account/login/sub-account/sso/[token]. Optionally, specify a `target` or `url` to redirect the user to a specific page after login.
Accounts Delete Corporate Sub Account By Id
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.
Accounts Get Corporate Sub Account By Id
Retrieves detailed information about a specific sub-account including company name, contact email, group memberships, and comprehensive plan details with credit quotas and feature allocations. The plan information shows both the allocated quantity and remaining availability for each credit type and feature.
Accounts Put Corporate Sub Account Applications Toggle
Enables or disables specific applications for a sub-account organization. Each application can be toggled independently using boolean values. Available applications include email campaigns, SMS campaigns, landing pages, automation, conversations, CRM, transactional emails/SMS, WhatsApp, web push, meetings, inbox, and Facebook ads.
Accounts Put Corporate Sub Account Plan
Updates the plan configuration for a specific sub-account, including credit allocations (email, SMS, WhatsApp, push) and feature quotas (users, landing pages, inbox, sales users). On Corporate solution v2 (ENTv2), you can set unlimited credits by passing -1 as the value.
Accounts Put Corporate Sub Accounts Plan
Updates the plan configuration for multiple sub-accounts at once with the same credit allocations and feature quotas. This is useful for applying consistent plan settings across a batch of sub-accounts. On Corporate solution v2 (ENTv2), you can set unlimited credits by passing -1.
Accounts Invite Admin User
Invites a new member to manage the Admin (master) account by sending an invitation email. The invitation specifies which features and permission levels the invited user will have. If `all_features_access` is set to `true`, the user receives full permissions on all features and the `privileges` array is ignored. If set to `false`, you must provide the `privileges` array detailing which features and permission levels to grant. Available features and their permissions: - `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" Optionally, you can assign the invited user to one or more groups by providing `groupIds`.
Accounts Put Corporate User Invitation By Email
Allows you to resend or cancel a pending invitation for an admin user. Use the `resend` action to send a new invitation email to the recipient, or the `cancel` action to revoke the pending invitation entirely. The action is specified as a path parameter and must be either `resend` or `cancel`.
Accounts Delete Corporate User Revoke By Email
Revokes access for an invited admin user on the corporate master account. Once revoked, the user will no longer be able to access the admin account or manage any sub-accounts. This action is permanent and the user would need to be re-invited to regain access.
Accounts Get Corporate User Permission
Retrieves the granular feature-level permissions assigned to a specific admin user, identified by their email address. The response includes the user's current status (active or pending), the groups they belong to, and a detailed breakdown of feature access permissions. This endpoint can be used to audit user access or verify permissions before making changes.
Accounts Put Corporate User Permissions
Updates the feature-level permissions for an existing admin user of your master account, identified by their email address. If `all_features_access` is set to `true`, the user receives full permissions on all features and the `privileges` array is ignored. If set to `false`, you must specify the `privileges` array with the desired feature permissions. Only the permissions provided are updated.
Accounts Get Account Activity
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.
Attributes Get 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.
Attributes Delete 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.
Attributes Create 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.
Attributes Update 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.
Attributes Delete Multi Attribute Options
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.
Attributes Post Crm Attributes
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.
Attributes Delete Crm Attributes By Id
Delete an existing custom attribute by its identifier. This permanently removes the attribute definition and cleans up all references to it across companies or deals. System-default and non-editable attributes cannot be deleted.
Attributes Patch Crm Attributes By Id
Update an existing custom attribute's label or options. You can rename the attribute label or modify the available options for `single-select` and `multi-choice` attribute types. System-default attributes cannot be modified except for specific editable fields.
Attributes Get Crm Attributes Companies
Retrieve the list of all attributes defined for companies, including both system-default and custom attributes. Each attribute includes its label, internal name, type, and available options for select-type attributes. Some system attributes such as activity tracking fields are excluded from the response.
Attributes Get Crm Attributes Deals
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. Some system attributes such as activity tracking fields are excluded from the response.
Campaign Analytics Get Ab Test Campaign Result
Retrieve the results of an A/B test email campaign, including the winning version, open and click rates, and per-version statistics. The campaign must have A/B testing enabled; if the campaign is still in draft and has not been scheduled, an empty response is returned. If the campaign is scheduled but not yet sent, the winningVersion will be "notAvailable".
Campaign Analytics Get Aggregated Smtp Report
Retrieve aggregated transactional email statistics (requests, delivered, opens, clicks, bounces, spam reports, blocked, invalid, unsubscribed) for a specified time period. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format), by a number of past `days` (positive integer, max 90, not compatible with date range), or by `tag`. If no date filter is provided, the report defaults to the past 90 days. The maximum time span (whether via date range or `days`) cannot exceed 90 days. Neither date can be in the future.
Campaign Analytics Get Email Event Report
Retrieve a paginated list of individual transactional email event records (unaggregated), including event type, recipient email, sender, message ID, subject, timestamp, tag, template ID, and contextual fields like IP address, link, and bounce reason where applicable. If no date filter is provided, the report defaults to the past 30 days. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format), by a number of past `days` (positive integer, max 90, not compatible with date range), or by `email`, `event` type, `tags`, `messageId`, or `templateId`. The maximum time span cannot exceed 90 days. Results default to 2500 per page (max 5000) and are sorted in descending order unless overridden.
Campaign Analytics Get Smtp Report
Retrieve a day-by-day breakdown of transactional email statistics (requests, delivered, opens, unique opens, clicks, unique clicks, hard bounces, soft bounces, spam reports, blocked, invalid, unsubscribed) for a specified time period. If no date filter is provided, the report defaults to the past 10 days. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format), by a number of past `days` (positive integer, max 30, not compatible with date range), or by `tag`. The maximum time span cannot exceed 30 days. Results default to 10 per page (max 30) and are sorted in descending order unless overridden with the `sort` parameter.
Categories Get 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).
Categories Create Update 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.
Categories Create Update Batch Category
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.
Categories Get Category Info
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.
Companies Get 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 with a default page of 1 and limit of 50. Companies can be filtered by attributes, linked contacts, linked deals, or modification/creation timestamps.
Companies Post Companies
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 Post Import
Import companies in bulk from a CSV file with configurable mapping options. The CSV file must have the first row as column headers matching attribute internal names. You can control whether to link or unlink related entities, update existing records based on company ID, and clear attributes when the import value is blank using the mapping options.
Companies Patch Link Unlink By Id
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. At least one of the four arrays must contain values. Contacts to be unlinked must already be associated with the company, otherwise the request is rejected.
Companies Delete By Id
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 Get By Id
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 Patch By Id
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.
Contact Import Export Update Batch Contacts
Update multiple contacts in a single API call by passing an array of contact objects, with a maximum of 100 contacts per request. Each contact in the array must be identified by exactly one of: email, id, or sms. Using multiple identifiers for the same contact, or passing duplicate contacts, will result in a 400 error. You can update attributes, blacklist status, list memberships, ext_id, and transactional email forbidden senders. The maximum length for any single attribute value is 50,000 characters. If listIds and unlinkListIds contain overlapping IDs for the same contact, the request is rejected.
Contact Import Export Create Doi Contact
Create a contact using the Double Opt-In (DOI) flow. A confirmation email is sent to the provided email address using the specified DOI template. The contact is only fully created after the recipient clicks the confirmation link. Required fields are email, includeListIds, templateId, and redirectionUrl. The templateId must reference an active DOI template. Include and exclude list IDs must not overlap. The email address cannot exceed 254 characters. If a SMS attribute is provided, it must be a valid phone number with country code. Returns 201 on new contact creation or 204 if the contact already existed and was updated.
Contact Import Export Request Contact Export
Export contacts from your Brevo account based on custom filters. You must provide a customContactFilter with at least one action type (actionForContacts, actionForEmailCampaigns, or actionForSmsCampaigns). When using actionForContacts, either a listId or segmentId must be included. The export file is generated asynchronously in CSV format; the endpoint returns a background process ID whose completion triggers the optional notifyUrl webhook.
Contact Import Export Import Contacts
Import contacts into your Brevo account from a CSV file body, a JSON body, or a remote file URL. Exactly one of fileBody, jsonBody, or fileUrl must be provided. The maximum allowed size for fileBody and jsonBody is 10 MB (8 MB recommended); for larger imports, use the fileUrl option. Contacts will be added to the lists specified by listIds, or to a newly created list if newList is provided. Any contact attribute not defined in your account will be silently ignored. The endpoint returns a background process ID; use the process endpoint to track completion.
Contact Import Export Get Contacts From 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 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 Create 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 Delete Contact
Permanently delete a contact identified by their email address, numeric ID, or other identifier. Without the identifierType query parameter, the API only accepts email addresses (email_id) or numeric contact IDs (contact_id) as the path parameter. To delete by other identifier types (ext_id, phone_id, whatsapp_id, landline_number_id), you must also pass the identifierType query parameter. Returns 405 if attempting to delete a registered email contact.
Contacts Get Contact Info
<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 Update Contact
Update an existing contact identified by their email address, numeric ID, or other identifier. Without the identifierType query parameter, only email addresses and numeric contact IDs are accepted as the path parameter. To update by other identifier types (ext_id, phone_id, whatsapp_id, landline_number_id), you must also pass the identifierType query parameter. All body fields are optional for this PATCH-like update. Phone numbers in the SMS attribute must include a country code (e.g. +33612345678 or 0033612345678). To update the email address, pass the new email as the EMAIL attribute value.
Contacts Get Contact Stats
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.
Conversations Post Agent Online Ping
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` to identify the agent. If no agent with the specified email address exists in your Brevo organization, a dummy agent will be created automatically. Optionally, you can pass `agentGroups` to update the agent's group memberships at the same time as the ping.
Conversations Post Messages
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. If no agent with the specified email address exists in your Brevo organization, a dummy agent will be created automatically. The message text has a maximum length of 4096 characters. For conversations originating from email, the reply is sent as an email; for SMS conversations, it is sent as an SMS.
Conversations Delete Messages By Id
Delete a message sent by an agent. Only non-pushed, non-triggered agent messages from the chat widget can be deleted. Messages originating from external channels (email, SMS, etc.) cannot be deleted and will return a `400` error.
Conversations Get Messages By Id
Retrieve a single message by its ID. Both agent and visitor messages can be retrieved, but service messages (such as join/leave notifications) are excluded.
Conversations Put Messages By Id
Update the text of a message sent by an agent. Only non-pushed, non-triggered agent messages from the chat widget can be edited. Messages originating from external channels (email, SMS, etc.) cannot be updated and will return a `400` error. The message text has a maximum length of 4096 characters. The `text` and `html` fields of the message will be updated.
Conversations Post Pushed Messages
Send an automated (pushed) message to one or more visitors on behalf of an agent. Example use cases include order status updates, announcing new features, or proactive outreach. You can target a single visitor with `visitorId` or up to 250 visitors at once with `visitorIds`. When using `visitorIds` (bulk mode), the API returns `201` with an empty response body and messages are delivered asynchronously. Automated messages can only be sent to visitors who contacted from the chat widget; visitors from external channels (email, SMS, etc.) are not supported. If neither `agentId` nor `groupId` is specified, a random agent from your organization is selected. The message text has a maximum length of 4096 characters.
Conversations Delete Pushed Messages By Id
Delete an automated (pushed) message by its ID. Only messages that were originally sent via the pushed messages endpoint can be deleted using this endpoint. Returns `204` with an empty body on success.
Conversations Get Pushed Messages By Id
Retrieve a single automated (pushed) message by its ID. Only messages that were originally sent via the pushed messages endpoint can be retrieved using this endpoint; regular agent messages are not returned.
Conversations Put Pushed Messages By Id
Update the text of an automated (pushed) message. Only messages that were originally sent via the pushed messages endpoint can be updated using this endpoint. The message text has a maximum length of 4096 characters. The `text` and `html` fields of the message will be updated.
Coupons Get 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 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 Get Coupon Collection
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 Update Coupon Collection
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 Create Coupons
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.
Deals Get Crm 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 Post Crm Deals
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 Post Crm Deals Import
Import deals in bulk from a CSV file with configurable mapping options. The CSV file must have the first row as column headers matching attribute internal names. You can control whether to link or unlink related entities, update existing records based on deal ID, and clear attributes when the import value is blank using the mapping options.
Deals Patch Crm Deals Link Unlink By Id
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. At least one of the four arrays must contain values. The deal must exist and the authenticated user must have permission to modify it.
Deals Delete Crm Deals By Id
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 Get Crm Deals By Id
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 Patch Crm Deals By Id
Update an existing deal's name or attributes. To move a deal to a different pipeline or stage, provide both the `pipeline` and `deal_stage` attribute IDs. To link or unlink contacts and companies, use the dedicated `/crm/deals/link-unlink/{id}` endpoint — those fields are not honored here.
Domains Get 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 Create 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 Delete 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 Get 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 Authenticate 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
Ecommerce Post Activate
Activate the Brevo eCommerce application for your account. This is a prerequisite for using other ecommerce endpoints such as products, categories, and orders. Activation is asynchronous and typically takes up to 5 minutes to complete. Returns a `200` status immediately to confirm that the activation process has started. Returns a `404` error if the account is not found.
Ecommerce Get Attribution Metrics
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 Attribution Metrics By Conversion Source Id
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 Attribution Products By Conversion Source Id
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 Get Config Display Currency
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 Set Config Display Currency
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 Get Orders
Retrieve a paginated list of all ecommerce orders stored in your Brevo account. Results are sorted by creation date in descending order by default, and can be filtered by modification date or creation date. Pagination defaults to 50 orders per page (maximum 100). The response includes a `count` field with the total number of matching orders and the full order details including billing, products, coupons, and status.
Ecommerce Create Order
Create a new ecommerce order or update the status of an existing order. The order is identified by its unique `id` and requires a status, amount, creation and update timestamps, and a list of products with prices. You can optionally include billing details, coupon codes, contact identifiers, store ID, and metadata. Returns `204` on success.
Ecommerce Create Batch Order
Create or update multiple ecommerce orders in a single asynchronous batch request. The `orders` array contains order objects (same schema as the single order endpoint). The optional `historical` flag (default `true`) determines whether orders trigger automation workflows: set to `false` for live orders that should trigger workflows, or `true` for historical data imports. You can optionally provide a `notifyUrl` webhook URL to receive a callback when the batch processing completes. The response returns a `batchId` to track the request and the total `count` of orders submitted.
Email Campaign Management Get 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/get-all-marketing-campaigns).</Note>
Email Campaign Management Create 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.
Email Campaign Management Upload Image To 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.
Email Campaign Management Delete 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.
Email Campaign Management Get Email Campaign
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.
Email Campaign Management Update 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.
Email Campaign Management Email Export Recipients
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.
Email Campaign Management Send Email Campaign Now
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.
Email Campaign Management Send Report
Send a PDF report of an email campaign to the specified email addresses. The report includes campaign statistics such as deliveries, opens, clicks, bounces, and unsubscriptions. The email recipients list supports a maximum of 99 addresses, and a custom body text is required. The report language defaults to French (fr) if not specified; supported languages are fr, es, pt, it, de, and en.
Email Campaign Management Send Test Email
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.
Email Campaign Management Get Shared Template Url
Get a unique URL to share and import an email template from one Brevo account to another. Only classic email campaigns and templates are supported; attempting to get a shared URL for other campaign types will return a 405 error. The campaign must also have content defined, otherwise a 405 error is returned.
Email Campaign Management Update Campaign Status
Update the status of an email campaign, such as suspending, archiving, or replicating it. Available status values are: suspended, archive, darchive, sent, queued, replicate, replicateTemplate, and draft. The replicateTemplate status is only available for template type campaigns, and trigger campaigns cannot be duplicated via replicate. The valid status transitions depend on the current campaign state; for example, a sent campaign can only be changed to archive, queued, or replicate.
Events Get Events
Retrieve a paginated list of events filtered by contact ID, event name, object type, and/or date range. When no date range is provided, the API returns events from the last 6 months by default. Results are ordered by event date descending. Use the `count` field in the response for pagination. The date range between `startDate` and `endDate` must not exceed 6 months, and `endDate` must be strictly greater than `startDate`.
Events Create Event
Create a single event to record a contact's interaction. The event is processed asynchronously and can be used for segmentation, automation triggers, and analytics. Each event must include at least one contact identifier. The `event_date`, if provided, must be in RFC 3339 format and cannot be in the future or before 1970-01-01. If `event_date` is omitted, the current server time is used. When an `object` is provided, both `type` and at least one object identifier (`ext_id` or `id`) are required.
External Feeds 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
External Feeds 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:** - Both `name` and `url` are required - Feed name must be unique per account (duplicates are rejected) - Feed name has a maximum length of 255 characters - Feed URL has a maximum length of 2,048 characters and must be a valid URL - When `authType` is `basic`, both `username` and `password` are required - When `authType` is `token`, the `token` field is required - If `authType` is not specified, it defaults to no authentication - Maximum retry attempts: 5 (defaults to 5 if not specified) - Cache defaults to `true` if not specified - Custom headers are limited to 50 entries, each with name and value of maximum 255 characters
External Feeds 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
External Feeds Get External Feed By Uuid
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
External Feeds 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 (partial update) - Feed UUID must exist in your account (returns 404 if not found) - Feed name must remain unique per account (duplicates are rejected) - When changing `authType` to `basic`, both `username` and `password` must be provided - When changing `authType` to `token`, the `token` field must be provided - Headers are merged with existing ones; headers with the same name are replaced - Custom headers are limited to 50 entries, each with name and value of maximum 255 characters
Files Get Crm 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 Post Crm Files
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 Delete Crm Files By Id
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 Get Crm Files By Id
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 Get Crm Files Data
Retrieve the metadata and details of a specific CRM file by its identifier. This returns information such as the file name, size, author, creation date, and associated contacts, companies, or deals. The file content itself is not included in this response; use the download endpoint to retrieve the actual file.
Folders Get Folders
Retrieve all contact folders from your Brevo account with support for pagination and sorting. Results default to 10 folders per page (maximum 50) sorted in descending order of creation. Note: the totalSubscribers and totalBlacklisted response attributes are being deprecated and will return 0 as their default value.
Folders Create 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.
Folders Delete Folder
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.
Folders Get Folder
Retrieve the details of a specific folder by its ID, including its name, subscriber counts, and blacklisted contacts count. Note: the totalSubscribers and totalBlacklisted response attributes are being deprecated and will return 0 as their default value.
Folders Update 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.
Folders Get Folder Lists
Retrieve all contact lists contained in a specific folder, identified by its folder ID. Results are paginated with a default of 10 lists per page (maximum 50) sorted in descending order of creation. Note: the totalSubscribers and totalBlacklisted response attributes are being deprecated and will return 0 as their default value.
Groups Post Corporate Group
Creates a new group to organize sub-accounts under the corporate master account. Groups allow you to manage and apply settings to multiple sub-accounts at once. A group name is required, and you can optionally assign sub-account IDs to the group at creation time.
Groups Put Corporate Group Unlink Sub Accounts
Removes one or more sub-organizations from a specific group. The sub-organizations themselves are not deleted; they are simply unlinked from the group. All sub-account IDs in the request must be positive integers. If only some sub-accounts could be unlinked, the API may return a partial success (HTTP 206).
Groups Delete Corporate Group By Id
Deletes a group of sub-organizations. When a group is deleted, the sub-organizations are no longer part of this group, but the sub-organizations themselves are not deleted. The users associated with the group are also disassociated once the group is removed. The caller must have edit/delete permissions on sub-organization groups.
Groups Get Corporate Group By Id
Retrieves detailed information about a specific group of sub-organizations, including the group metadata, list of sub-organizations belonging to the group, and the users associated with it. The caller must have edit/delete permissions on sub-organization groups to access this endpoint.
Groups Put Corporate Group By Id
Updates the details of an existing group of sub-accounts, including the group name and the list of sub-accounts assigned to it. When sub-account IDs are provided, the group membership is replaced with the new list. Omitting a field leaves it unchanged.
Groups Get Sub Account Groups
Retrieves all groups created on the corporate admin account. Each group entry includes the group name and its unique identifier. Groups are used to organize sub-accounts for easier management and permission assignment.
Inbound Get Email Events
Retrieve a paginated list of inbound email events. When no date range is provided, the API returns events from the last 30 days by default. Both `startDate` and `endDate` must be provided together; the maximum date range that can be selected is 30 days. Neither date can be in the future, and `startDate` must be before `endDate`. The `sender` parameter, if provided, must be a valid email address. Results are sorted by record creation date in the order specified by the `sort` parameter (default: descending).
Inbound Get Email Events By Uuid
Retrieve the detailed event history for a specific received email identified by its UUID. The response includes sender and recipient information, the email subject, a list of attachments, and a chronological log of processing events (received, processed, webhook delivery attempts). Fields such as `attachments`, `messageId`, and `subject` are only populated after the email has been fully processed. The `deliveredAt` field is null if the webhook delivery has not yet succeeded.
Inbound Get Email Attachment
Download an inbound email attachment using its download token. The download token is obtained from the attachments list in the response of the `GET /inbound/events/{uuid}` endpoint. The response streams the raw attachment binary with appropriate Content-Type, Content-Disposition, and Content-Length headers. Returns 404 if the token does not match any attachment, or 400 if the token is invalid.
Ips Get Ips
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
Ips Get From 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
Lists Get Lists
Retrieve all contact lists from your Brevo account with support for pagination and sorting. Results default to 10 lists per page (maximum 50) sorted in descending order of creation. Note: the totalSubscribers and totalBlacklisted response attributes are being deprecated and will return 0 as their default value.
Lists Create 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.
Lists Delete 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.
Lists Get List
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-DDTHH:mm:ss.SSSZ format). Without date filters, campaign statistics default to the last 6 months. The maximum date range allowed between startDate and endDate is 2 years. Neither date can be in the future.
Lists Update 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.
Lists Add Contact To List
Add existing contacts to a specific list by providing their email addresses, numeric IDs, or EXT_ID attributes. Only one type of identifier can be used per request, with a maximum of 150 contacts per call. The response includes separate arrays for successfully added and failed contacts. For bulk additions exceeding 150 contacts, use the /contacts/import endpoint instead.
Lists Remove Contact From List
Remove contacts from a specific list by providing their email addresses, numeric IDs, EXT_ID attributes, or by setting "all" to true to remove all contacts from the list. Only one type of identifier can be used per request, with a maximum of 150 contacts per call. When "all" is set to true, a background process is created and a processId is returned along with the total count of contacts being removed.
Loyalty Get Balance Programs Active Balance
Retrieves a paginated list of active (non-expired, non-consumed) balance entries for a specific contact and balance definition within a loyalty program. Both `contactId` and `balanceDefinitionId` query parameters are required. Results can be sorted by creation date and paginated using `limit` and `offset`.
Loyalty Get Balance Definition List
Retrieves a paginated list of balance definitions configured for a loyalty program. Balance definitions specify the currency or point unit, expiration rules, rounding strategies, and amount constraints. Use the `version` parameter to fetch either the currently active or the draft configuration. Results default to 200 items per page, sorted by `updated_at` descending.
Loyalty Post Balance Programs Balance Definitions
Creates a new balance definition within a loyalty program. A balance definition specifies the unit of measurement (points or currency), expiration rules, rounding strategies, and amount constraints. Only one expiration method can be used: either a fixed calendar date (`balanceExpirationDate` in dd/mm format) or a duration-based expiry (`balanceAvailabilityDurationValue` + `balanceAvailabilityDurationUnit`), but not both.
Loyalty Delete Balance Definition
Permanently deletes a balance definition from a loyalty program. Once deleted, the balance definition cannot be recovered. Any balances tied to this definition will no longer be usable.
Loyalty Get Balance Definition
Retrieves a single balance definition by its ID within a loyalty program. Use the `version` query parameter to fetch either the currently active or the draft configuration. Returns the full definition including expiration rules, rounding strategies, and amount constraints.
Loyalty Update Balance Definition
Replaces an existing balance definition with the provided data. This is a full replacement (PUT), not a partial update; all fields in the payload are applied. The `name` and `unit` fields are required. Only one expiration method can be used: either a fixed calendar date or a duration-based expiry, but not both.
Loyalty Create Balance Limit
Creates a new limit on a balance definition to restrict transaction frequency or amount within a time window. Limits can constrain either the total transaction count or the total amount for credit or debit transactions. The `durationValue` and `value` fields must be greater than zero.
Loyalty Delete Balance Limit
Permanently deletes a balance limit from a balance definition. Once deleted, the limit constraint is no longer enforced on transactions.
Loyalty Get Balance Limit
Retrieves a single balance limit by its ID for a given balance definition. Use the `version` query parameter to fetch either the currently active or the draft limit configuration.
Loyalty Update Balance Limit
Replaces an existing balance limit with the provided data. This is a full replacement (PUT); all fields in the payload are applied. The `durationValue` and `value` fields must be greater than zero.
Loyalty Get Contact Balances
Retrieves a paginated list of contact balances for a specific balance definition across all subscriptions in a loyalty program. The `balanceDefinitionId` query parameter is required. Results can be sorted by `updatedAt` or `value` and paginated using `limit` and `offset`.
Loyalty Create Balance Order
Creates a new balance order linked to a specific balance definition and contact. An order represents a pending balance adjustment that will be processed at the specified due date. The `amount` must be non-zero and the `dueAt` timestamp must be in RFC 3339 format.
Loyalty Get Subscription Balances
Retrieves the aggregate balances for a contact's subscription within a loyalty program. Returns the total balance value per balance definition. Use the `includeInternal` parameter to also include balances tied to internal definitions.
Loyalty Post Balance Programs Subscriptions Balances
Creates a new balance entry for a contact's subscription, linked to a specific balance definition. The contact must have an active subscription in the loyalty program. The `balanceDefinitionId` field is required in the request body.
Loyalty Get Balance Programs Transaction History
Retrieves a paginated transaction history for a specific contact and balance definition within a loyalty program. Both `contactId` and `balanceDefinitionId` query parameters are required. Results can be filtered by transaction `status` and `transactionType`, and sorted by creation date.
Loyalty Begin Transaction
Creates a new balance transaction (credit or debit) within a loyalty program. A positive amount creates a credit transaction and a negative amount creates a debit transaction by default, unless `transactionType` is explicitly provided. Either `contactId` or `LoyaltySubscriptionId` must be specified to identify the subscription. Transactions are created in a pending state unless `autoComplete` is set to true, in which case the transaction is completed immediately. An optional `ttl` (minimum 10 seconds) can be set to auto-expire uncompleted transactions.
Loyalty Cancel Transaction
Cancels a pending transaction, reverting any tentative balance changes. Only transactions in a pending state can be cancelled. Once cancelled, the transaction cannot be completed or modified further.
Loyalty Complete Transaction
Completes a pending transaction, finalizing the balance change. Only transactions in a pending state can be completed. Once completed, the transaction amount is permanently applied to the contact's balance.
Loyalty Get Lp List
Retrieves a paginated list of loyalty programs for the organization. Results can be sorted by name, creation date, or last update date. Use `limit` and `offset` to paginate through the results. The maximum page size is 500 items.
Loyalty Create New Lp
Creates a new loyalty program for the organization. The `name` field is required and must be unique (max 128 characters). An optional `description` (max 256 characters) and arbitrary `meta` data can also be provided.
Loyalty Delete Program
Permanently deletes a loyalty program and all its associated data. This action cannot be undone. All subscriptions, balances, tiers, and rewards linked to the program will be removed.
Loyalty Get Program Info
Retrieves the full details of a single loyalty program by its ID, including its current state, metadata, subscription pool configuration, and timestamps.
Loyalty Partially Update Loyalty Program
Partially updates a loyalty program. Only the fields provided in the request body are modified; omitted fields remain unchanged. Supports updating the name (max 128 characters), description (max 256 characters), metadata, and birthday attribute.
Loyalty Update Loyalty Program
Replaces a loyalty program with the provided data. This is a full replacement (PUT); all fields in the payload are applied. The `name` field is required (max 128 characters). The program name must be unique within the organization.
Loyalty Get Parameter Subscription Info
Retrieves comprehensive subscription data for a contact, including balances, tier assignments, attributed rewards, and subscription members. At least one of `contactId` or `loyaltySubscriptionId` must be provided to identify the subscription. Use the `params` query parameter to select which data categories to include in the response.
Loyalty Delete Contact Subscription
Removes a contact's subscription from a loyalty program. This deletes the subscription and disassociates the contact from the program. The operation cannot be undone.
Loyalty Publish Loyalty Program
Publishes the current draft version of a loyalty program, making all pending changes (balance definitions, tiers, tier groups, rewards) live. After publication, the draft and active versions become identical until new changes are made.
Loyalty Delete Contact Members
Removes one or more members from a subscription. Provide a comma-separated list of member contact IDs via the `memberContactIds` query parameter. At least one ID is required.
Loyalty Subscribe Member To A Subscription
Adds one or more members to an existing subscription. Either `contactId` or `loyaltySubscriptionId` must be provided to identify the target subscription. The `memberContactIds` array must contain at least one member ID (each >= 1). The subscription owner cannot be added as a member.
Loyalty Subscribe To Loyalty Program
Creates a new subscription for a contact in a loyalty program. The `contactId` field is required and must be greater than zero. An optional `loyaltySubscriptionId` (max 64 characters) can be provided as a custom identifier. The `creationDate`, if provided, must be in the past (ISO 8601 format).
Loyalty Get Code Count
Retrieves the number of available codes in a specific code pool. Code pools are used by rewards to generate unique voucher codes for attribution.
Loyalty Get Offer Programs Offers
Retrieves a paginated list of rewards (offers) configured for a loyalty program. Results can be filtered by state and version (draft or active). The default page size is 25 with a maximum of 100 items per page.
Loyalty Create Reward
Creates a new reward (offer) in a loyalty program. The `name` field is required (max 128 characters). Optional fields include a public-facing name, description (max 500 characters), and image URL for consumer-facing display.
Loyalty Create Voucher
Creates a voucher and attributes it to a specific membership. Either `contactId` or `loyaltySubscriptionId` must be provided to identify the target subscription. The `rewardId` is required. An optional `value` can be set (between 0.01 and 99,999,999.99) and a `code` (max 128 characters) can be provided or auto-generated.
Loyalty Redeem Voucher
Creates a redemption request for a voucher. The voucher can be identified either by `code` or by `attributedRewardId`. A `contactId` or `loyaltySubscriptionId` must be provided to identify the subscriber. The redemption is created in a pending state unless `autoComplete` is true. An optional `ttl` (minimum 1 second) can be set to auto-expire uncompleted redemptions.
Loyalty Complete Redeem Transaction
Completes a pending voucher redemption request. Only redemptions in a pending state can be completed. Once completed, the voucher is marked as consumed and any associated balance deductions are finalized.
Loyalty Revoke Vouchers
Revokes one or more attributed vouchers by their IDs. Provide a comma-separated list of attributed reward IDs via the `attributedRewardIds` query parameter. Revoked vouchers can no longer be redeemed.
Loyalty Validate Reward
Validates whether a reward can be redeemed for a given contact or subscription. The voucher can be identified either by `code` or by `attributedRewardId`. Returns an `authorize` boolean indicating whether the redemption is permitted based on the reward's rules and limits.
Loyalty Get Offer Programs Rewards By Rid
Retrieves the full details of a reward by its ID, including configuration, rules, code generation settings, limits, products, and attribution/redemption counters. Use the `version` query parameter to fetch either the active or draft version.
Loyalty Get Offer Programs Vouchers
Retrieves a paginated list of vouchers attributed to a specific contact within a loyalty program. The `contactId` query parameter is required (must be >= 1). Results can be filtered by `rewardId` or metadata key/value, sorted by `updatedAt` or `createdAt`, with a maximum of 500 items per page.
Loyalty Add Subscription To Tier
Manually assigns a tier to a contact's subscription in a loyalty program. The contact must have an active subscription. An optional request body can include metadata and a creation date (must be in the past). This operation takes effect immediately without requiring a program publication.
Loyalty Get List Of Tier Groups
Retrieves all tier groups configured for a loyalty program. Each tier group defines an independent hierarchy of tiers with its own upgrade and downgrade strategies. Use the `version` parameter to fetch either the active or draft configuration.
Loyalty Create Tier Group
Creates a new tier group in a loyalty program. A tier group defines an independent hierarchy of tiers with its own upgrade and downgrade strategies. The `name` field is required. Changes take effect with the next publication of the loyalty program.
Loyalty Delete Tier Group
Deletes a tier group from a loyalty program. All tiers within the group are also removed. The changes take effect with the next publication of the loyalty program.
Loyalty Get Tier Group
Retrieves the full details of a tier group by its ID, including name, upgrade and downgrade strategies, tier ordering, and schedule configurations. Use the `version` parameter to fetch either the active or draft configuration.
Loyalty Update Tier Group
Replaces a tier group's configuration with the provided data. This is a full replacement (PUT); all required fields must be provided. The changes take effect with the next publication of the loyalty program.
Loyalty Create Tier For Tier Group
Creates a new tier within a tier group. The `name` (max 128 characters) and `accessConditions` (at least one required) fields are mandatory. Access conditions define the minimum balance value per balance definition required to enter this tier. Changes take effect with the next publication of the loyalty program.
Loyalty Get Program Tier
Retrieves all tiers configured for a loyalty program across all tier groups. Use the `version` parameter to fetch either the currently active tiers or the draft configuration with pending changes.
Loyalty Delete Tier
Deletes a tier from a loyalty program. Contacts currently assigned to the deleted tier will need to be reassigned. The changes take effect with the next publication of the loyalty program.
Loyalty Update Tier
Replaces an existing tier's configuration with the provided data. This is a full replacement (PUT); the `name`, `accessConditions`, and `tierRewards` fields are all required. Changes take effect with the next publication of the loyalty program.
Notes Get Crm 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. When filtering by entity IDs, the `entity` parameter must also be specified. Both `offset` and `page` are supported for pagination; if both are provided, offset is used.
Notes Post Crm Notes
Create a new CRM note and associate it with at least one contact, company, or deal. The note text content is required and cannot be empty. The text supports HTML content but must not exceed 10,000 characters (excluding HTML tags and line breaks). At least one entity (contact, company, or deal) must be linked to the note.
Notes Delete Crm Notes By Id
Permanently delete a CRM note by its identifier. This removes the note and unlinks it from any associated contacts, companies, or deals. The authenticated user must have delete permission for the entities linked to the note.
Notes Get Crm Notes By Id
Retrieve the full details of a single CRM note by its identifier. The response includes the note's text content, creation and update timestamps, author information, and any associated contacts, companies, or deals.
Notes Patch Crm Notes By Id
Update an existing CRM note's text content and its associations with contacts, companies, or deals. You can modify the note text, update the linked entities, or toggle the pinned status. At least one field must be provided for the update. The text cannot exceed 10,000 characters (excluding HTML tags and line breaks). All referenced contacts, companies, and deals must exist.
Objects Upsertrecords
<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 allows bulk upsert of object records in a single request. Each object record may include attributes, identifiers, and associations. **Response:** The API processes the request asynchronously and returns a processId that you can use to track the background process status. **Limitations:** - Max **1000** object records per request - Max request body size: **1 MB** - Max **500** attributes per object record - Max **10** link associations and **10** unlink associations per record - Max **10** associated records per association object type - Attributes not previously defined for the object schema are silently ignored (no error, no attribute creation) - Upsert of Brevo standard object records is not supported via this endpoint **Errors:** - Both object records must exist before associating them, otherwise the API returns an error - The object type must already exist; this route does not create new object types
Objects Getrecords
<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.
Objects Batch Delete Object Records
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
Payments Create 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 Delete 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 Get Payment Request
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.
Pipelines Get Crm Pipeline Details
This endpoint is deprecated. Use `/crm/pipeline/details/{pipelineID}` or `/crm/pipeline/details/all` instead to retrieve pipeline stages for a specific pipeline or all pipelines respectively.
Pipelines Get Crm Pipeline Details All
Retrieve the list of all deal pipelines configured for your account, including each pipeline's stages. Each stage includes its name, ID, and win probability. If no pipelines have been configured yet, they are automatically initialized before being returned.
Pipelines Get Crm Pipeline Details By Pipeline Id
Retrieve the details of a specific deal pipeline by its identifier, including its stages and their win probabilities. Use this endpoint to obtain the pipeline and stage IDs needed when creating or updating deals. If the pipeline ID is not found, a 400 error is returned.
Processes Get 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
Processes Get Process
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
Products Get 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. Pagination defaults to 50 products per page (maximum 1000), and the response includes a `count` field with the total number of matching products.
Products Create Update 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.
Products Create Update Batch Products
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.
Products Get Product Info
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.
Products Create Product Alert
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.
Segments Get 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.
Senders Get 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 - If the `ip` filter is provided, it must be a valid IP address - If the `domain` filter is provided, it must be a valid domain name - Returns an empty senders array when no senders match the criteria
Senders Create Sender
Creates a new email sender in your Brevo account. Both `name` and `email` are required fields. **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 (indicates if your DNS records need attention) **Important considerations:** - A verification email is sent to the specified sender email address - The sender must be verified before it can be used in campaigns - For dedicated IP accounts, the `ips` array is mandatory and must contain valid IP-domain pairs - IP weights must sum to 100 when specified; if weights are not provided, they are distributed equally - DKIM and SPF configuration affects email deliverability - Maximum of 10,000 senders allowed per account - For reseller child accounts, the sender email domain must be in the validated domain list
Senders Delete Sender
Deletes an email sender from your Brevo account. The sender ID must be a valid positive integer. Use this to: - Remove senders that are no longer needed - Clean up sender configurations - Remove duplicate or test senders Important considerations: - The last active sender on your account cannot be deleted (returns 405 error) - Sender ID must exist in your account - For dedicated IP accounts, associated IP configurations are also cleaned up
Senders Update Sender
Updates an existing email sender's configuration. At least one field (name, email, or ips) must be provided. Use this to: - Modify sender display name or email address - Update dedicated IP associations - Change sender configuration settings Important considerations: - At least one of `name`, `email`, or `ips` must be provided - Changing the sender email triggers a new verification email - For dedicated IP accounts, the `ips` array replaces the existing IP configuration - IP weights must sum to 100 when specified - If the email is changed, the sender will need to be re-verified before it can be used
Senders Validate Sender By 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
Sms Campaigns Get 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.
Sms Campaigns Create 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.
Sms Campaigns Delete 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.
Sms Campaigns Get 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.
Sms Campaigns Update 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.
Sms Campaigns Request Sms Recipient Export
Export the recipients of a sent SMS campaign as an asynchronous process, filtered by recipient type (e.g. delivered, answered, 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.
Sms Campaigns Send Sms Campaign Now
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.
Sms Campaigns Send Sms Report
Send a PDF report of an SMS campaign to the specified email addresses. The report includes campaign statistics such as deliveries, bounces, answered, and unsubscriptions. The email recipients list supports a maximum of 99 addresses, and a custom body text is required. The report language defaults to French (fr) if not specified; supported languages are fr, es, pt, it, de, and en.
Sms Campaigns Send Test Sms
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).
Sms Campaigns Update Sms Campaign Status
Update the status of an SMS campaign, such as suspending, archiving, or replicating it. Available status values are: suspended, archive, darchive, sent, queued, replicate, replicateTemplate, and draft. The replicateTemplate status is only available for template type campaigns. The valid status transitions depend on the current campaign state; for example, a running SMS campaign can only be changed to archive, sent, replicate, or suspended.
Tasks Get Crm 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 Post Crm Tasks
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 Delete Crm Tasks By Id
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 Get Crm Tasks By Id
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 Patch Crm Tasks By Id
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 Get Crm Tasktypes
Retrieve the list of all available task types for your account. The default task types are Email, Call, Todo, Meeting, Lunch, Deadline, and LinkedIn. If no task types exist yet, the default set is automatically created and returned. Use the task type ID from this response when creating or updating tasks.
Templates Post Preview Smtp Email Templates
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 line, sender details, preview text, and any feed names used in the template.
Templates Get Smtp 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).
Templates Create Smtp 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`.
Templates Delete Smtp 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.
Templates Get Smtp Template
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).
Templates Update Smtp 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.
Templates Send Test Template
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 default test list. You can send a maximum of 50 test emails per day, and all provided email addresses must be valid. Recipients must exist in your contacts, not be blocked, and belong to at least one list. If some recipients fail validation, the API returns a 400 response detailing which addresses were not found, are blocked, or lack a contact list.
Transac Templates Get Transac Blocked 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.
Transac Templates Delete Smtp Blocked Contacts By Email
Unblock or resubscribe a transactional contact by removing their email address from the blocklist. 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. On success, returns HTTP 204 with no content.
Transac Templates Get Blocked Domains
Retrieve the complete list of domains that have been blocked for transactional email sending. Blocked domains prevent any transactional email from being sent to recipients at those domains. The response contains a flat array of domain name strings. If no domains have been blocked, an empty array is returned.
Transac Templates Block New Domain
Block a new domain to prevent transactional emails from being sent to any recipient at that domain. The `domain` field is required and must be a valid domain name (e.g. `example.com`). Domain names starting with `www.` are not accepted. If the domain is already present in the blocked list, a 400 error is returned with the message "Domain is already present in the list of blocked domains".
Transac Templates Delete Blocked Domain
Remove a domain from the blocked domains list, allowing transactional emails to be sent to recipients at that domain again. The domain name must be a valid domain format (e.g. `example.com`). If the domain is not found in the blocked list, a 404 error is returned with the message "Domain does not exist in the list of blocked domains".
Transac Templates Delete Hardbounces
Delete hard bounce records from the blocklist, to be used carefully (e.g. in case of temporary ISP failures). You can filter by `contactEmail` (a specific email address), by date range (`startDate` and `endDate` in YYYY-MM-DD format), or both. If no filters are provided, all hard bounce records are deleted. When matching records are found and deleted, the API returns 204; when no matching records are found, it returns 200. The `endDate` must not be earlier than `startDate`.
Transac Templates Send Transac 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.
Transac Templates Delete Scheduled Email By Id
Delete scheduled transactional emails, either a batch by its UUIDv4 `batchId` or a single email by its `messageId` (enclosed in angle brackets with an @ sign). Only emails with a `queued` status can be deleted; processed or in-progress emails cannot be cancelled. If no queued records are found for the given identifier, a 404 error is returned.
Transac Templates Get Scheduled Email By Id
Fetch the status of scheduled transactional emails, either a batch by its UUIDv4 `batchId` or a single email by its `messageId` (enclosed in angle brackets with an @ sign). Data is available for up to 30 days from creation. When using `batchId`, the response is a paginated list of scheduled entries with a total count; when using `messageId`, a single entry is returned and the `limit`, `offset`, `sort`, and `status` query parameters are ignored. The `startDate` cannot be older than 30 days, and the date range between `startDate` and `endDate` cannot exceed 30 days. Each entry includes `scheduledAt`, `createdAt`, and `status` (one of `queued`, `inProgress`, `processed`, or `error`).
Transac Templates Get Transac Emails List
Retrieve a paginated list of sent transactional emails. At least one filter is required: `email`, `templateId`, or `messageId`. Without date filters, the API returns data from the last 30 days. When providing a date range, both `startDate` and `endDate` are required together (YYYY-MM-DD format), and the maximum difference between them cannot exceed 30 days. Neither date can be in the future or before 2010-01-01. Results default to 500 per page (max 1000) and are sorted in descending order unless overridden with the `sort` parameter.
Transac Templates Get Transac Email Content
Retrieve the full content and event history of a specific sent transactional email by its unique ID (uuid). The response includes the recipient email, subject, sent date, HTML body content, attachment count, event timeline (sent, delivered, opened, clicked, etc.), and the template ID if the email was template-based. If the email content is no longer available in storage, the body field returns "Mail content not available". <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>
Transac Templates Delete Smtp Log By Identifier
Delete SMTP transactional log entries identified by a message ID (enclosed in angle brackets with an @ sign, e.g. `<abc123@domain.com>`) 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. On success, returns HTTP 204 with no content.
Transac Templates Send Async Transactional Sms
Send a transactional SMS message asynchronously to a single mobile number. This endpoint has the same request body as `POST /transactionalSMS/sms` but returns only the `messageId` without waiting for credit and delivery details. Use this for faster response times when you do not need the SMS count, credits used, or remaining credits in the response. The `sender`, `recipient`, and either `content` or `templateId` fields are required. <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>
Transac Templates Send Transac Sms
Send a transactional SMS message to a single mobile number. The `sender`, `recipient`, and either `content` or `templateId` fields are required. The sender name is limited to 11 alphanumeric characters or 15 numeric characters, and the recipient must be a valid international phone number (6 to 15 digits, optionally prefixed with `+`). Tags can be a string or an array of up to 10 non-empty strings. The SMS type defaults to `transactional` but can be set to `marketing`. If `organisationPrefix` is provided, it is prepended to the message content. Returns the message ID, SMS segment count, credits used, and remaining credits on success.
Transac Templates Get Transac Aggregated Sms Report
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. Dates must not be in the future, and `startDate` must not be after `endDate`.
Transac Templates Get Sms 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 comma-separated `tags`. Bounce and unsubscription events include the failure reason, and reply events include the reply content. Dates must not be in the future, and `startDate` must not be after `endDate`.
Transac Templates Get Transac Sms Report
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. Dates must not be in the future, and `startDate` must not be after `endDate`.
Transac Templates Get Sms Templates
Retrieve a paginated list of all your SMS templates with their content, compliance settings, and media attachments. Results are paginated with a default limit of 50 and maximum of 100 per page. The sort order defaults to descending by creation date.
Users Get Invited Users List
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.
Users Put 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.
Users Inviteuser
Invites a new user to the organization by sending an invitation email with specified feature permissions. Each feature represents a specific functionality (e.g., Email campaigns, Deals, Contacts) and each permission defines the level of access the user will have. If `all_features_access` is set to `true`, the user receives full permissions on all features and the `privileges` array is ignored. If set to `false`, you must provide the `privileges` array specifying which features and permission levels to grant. Available features and their permissions: - `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" The availability of features and permissions depends on your current plan.
Users Putresendcancelinvitation
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.
Users Edit User Permission
Updates the feature-level permissions for an existing user in the organization. The privileges array follows the same structure as the send invitation endpoint. You only need to provide the permissions that need to be updated. If `all_features_access` is set to `true`, the user receives full permissions on all features and the `privileges` array is ignored. If set to `false`, specify only the features and permissions to update. Available features and their permissions: - `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" The availability of features and permissions depends on your current plan.
Users Get 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.
Webhooks Management Get Webhooks
Retrieves all webhooks from your Brevo account with filtering and sorting options. If no `type` filter is specified, transactional webhooks are returned by default. 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 subscriptions - Authentication and security settings - Webhook URLs and custom headers - Creation and modification timestamps Important considerations: - Returns 404 when no webhooks match the specified filter criteria - Results are sorted by creation date in descending order by default - The `sort` parameter accepts `asc` or `desc` values
Webhooks Management Create Webhook
Creates a new webhook to receive real-time notifications for specified events. You can create up to 40 active webhooks per account (excluding inbound type webhooks). 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 Important considerations: - The `url` field is required and must be a valid URL - The `events` array is required for transactional and marketing types, but optional for inbound type (defaults to `inboundEmailProcessed`) - The `domain` field is required when type is `inbound` and must be a verified active domain - A duplicate URL for the same webhook type is not allowed - Maximum of 40 active webhooks per account (inbound webhooks are exempt from this limit) - The `auth.type` currently only supports `bearer` - Custom headers require both `key` and `value` as non-empty strings
Webhooks Management Export Webhooks History
<Note>This is an enterprise feature. To have it activated please send us a request and we will activate it for your account.</Note> Exports webhook event history to CSV format for analysis and reporting. Use this to: - Generate comprehensive webhook event reports - Analyze webhook delivery patterns and success rates - Export event data for external analysis tools - Create historical reports for compliance and auditing - Track webhook performance and reliability metrics Key information returned: - Process ID for tracking export completion - CSV file will be delivered to specified webhook URL
Webhooks Management Delete 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 Management Get Webhook
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 Management Update Webhook
Updates an existing webhook configuration and event subscriptions. The webhook type (marketing, transactional, or inbound) cannot be changed after creation -- only the URL, events, description, authentication, headers, batching, and domain (for inbound) can be updated. 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 batched webhook delivery Important considerations: - The webhook ID must be a valid positive integer and must exist in your account - The webhook type is determined at creation and cannot be changed via update - Events must be valid for the webhook's type (marketing, transactional, or inbound) - A duplicate URL for the same webhook type is not allowed - Setting `auth` to `null` or empty object removes authentication - Setting `headers` to `null` or empty array removes custom headers - The `auth.type` currently only supports `bearer`
Whatsapp Campaigns Get Whats App 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.
Whatsapp Campaigns Create Whats App Campaign
Create a new WhatsApp campaign and schedule it for sending. The campaign requires a name, an approved WhatsApp template ID, a scheduled sending time, and recipients (either list IDs or segment IDs). The template must be in an approved state before it can be used. <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>
Whatsapp Campaigns Get Whats App Config
Retrieve the configuration and status of your WhatsApp Business API account, including verification status, phone number name status, phone number quality rating, sending limit tier, and overall account approval status. You must have a configured WhatsApp account on the Brevo platform to use this endpoint.
Whatsapp Campaigns Get Whats App 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.
Whatsapp Campaigns Send Whats App Template Approval
Submit a WhatsApp template for approval by Meta. The template must exist and be in a state that allows submission (e.g. draft or rejected). Once approved, the template can be used in WhatsApp campaigns. You must have a configured WhatsApp account on the Brevo platform to use this endpoint.
Whatsapp Campaigns Delete Whats App 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.
Whatsapp Campaigns Get Whats App Campaign
Retrieve detailed information about a specific WhatsApp campaign by its ID, including campaign status, recipients, sender number, template details, and delivery statistics. The response includes the full template structure with body variables, header variables, and button configuration. You must have a configured WhatsApp account on the Brevo platform to use this endpoint.
Whatsapp Campaigns Update Whats App Campaign
Update an existing WhatsApp campaign's name, status, recipients, or scheduled sending time. The campaign must exist and be in a modifiable state (draft or scheduled). Use the rescheduleFor field to change the sending time. You must have a configured WhatsApp account on the Brevo platform to use this endpoint.
Whatsapp Management Create Whats App Template
Create a new WhatsApp message template with the specified name, language, category, and body text. Templates can optionally include a text header (max 45 characters) or a media header (image, video, or PDF via URL). The body text supports a maximum of 1024 characters. The template must be submitted for approval before it can be used in campaigns.
Whatsapp Management Send Whatsapp Message
Send a WhatsApp message to one or more contacts. You must have your WhatsApp account set up on the Brevo platform before using this endpoint. The first message sent via the API must use a `templateId` (created on the Brevo WhatsApp interface); subsequent messages can use free-form `text` instead. Provide the `senderNumber` (your WhatsApp business number with country code) and an array of `contactNumbers` (recipient phone numbers with country codes). When using a template, you can pass a `params` object to customize template variables. If both `templateId` and `text` are provided, the template takes precedence. <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>
Whatsapp Management Get Whatsapp Event Report
Retrieve a paginated list of individual WhatsApp event records (unaggregated), including event type, contact number, sender number, message ID, timestamp, and contextual fields like body text, media URL, and error reason where applicable. If no date filter is provided, the report defaults to the past 30 days. Filter by date range using `startDate` and `endDate` (both required together, YYYY-MM-DD format), by a number of past `days` (positive integer, not compatible with date range), by `contactNumber`, or by `event` type (sent, delivered, read, error, unsubscribe, reply, soft-bounce). The maximum date range cannot exceed 90 days. Results default to 2500 per page (max 10000) and are sorted in descending order unless overridden.
Ship Brevo agents in minutes
Connect any AI agent to 100+ MCP servers, zero setup.