> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to the Brevo MCP server

The Brevo MCP connector routes your AI agent's tool calls to Brevo's own MCP server through Scalekit. Each user signs in to Brevo once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 282 tools.

**Authentication:** OAuth 2.1/DCR
**Categories:** Marketing, Communication, AI
**Tools:** 282: 112 read, 133 write, 37 destructive
**Users sign in with:** OAuth
**OAuth app:** Scalekit's or your own
**Built by:** Vendor MCP
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=BREVOMCP)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Brevo MCP connection

   In **AgentKit > Connections**, create a Brevo MCP connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

   Scalekit credentials are available for Brevo MCP server, so you don't need to register an OAuth app.

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'brevomcp'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Brevo MCP:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'brevomcp_accounts_get_account',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "brevomcp"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Brevo MCP:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="brevomcp_accounts_get_account",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'brevomcp_accounts_get_account',
  toolInput: {},
  connector: 'brevomcp',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="brevomcp_accounts_get_account",
    tool_input={},
    connection_name="brevomcp",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `brevomcp_accounts_get_account`

Accounts Get Account · Read-only

Retrieves details of your Brevo account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_accounts_get_account_activity`

Accounts Get Account Activity · Read-only

Retrieves user activity logs from your organization for security monitoring and audit compliance.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, optional): Enter the user's email address to filter their activity in the account.
- `endDate` (`string`, optional): Mandatory if startDate is used. Enter end date in UTC date (YYYY-MM-DD) format to filter the activity in your account. Maximum time period that can be selected is one month.
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document in the page.
- `startDate` (`string`, optional): Mandatory if endDate is used. Enter start date in UTC date (YYYY-MM-DD) format to filter the activity in your account. Maximum time period that can be selected is one month. Additionally, you can retrieve activity logs from the past 12 months from the date of your search.

Example input: `{}`

### `brevomcp_accounts_get_corporate_invited_users_list`

Accounts Get Corporate Invited Users List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of users to be displayed on each page. This is optional, the default limit is 20, but max allowed limit is 100.
- `offset` (`string`, optional): Page number for the result set. This is optional, default value will be the 1st page.
- `type` (`string`, optional): User type (active | pending). This is required if offset is provided for limited result.

Example input: `{}`

### `brevomcp_accounts_get_corporate_ip`

Accounts Get Corporate Ip · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_accounts_get_corporate_master_account`

Accounts Get Corporate Master Account · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_accounts_get_corporate_sub_account`

Accounts Get Corporate Sub Account · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, required): Number of sub-accounts to be displayed on each page
- `offset` (`integer`, required): Index of the first sub-account in the page

Example input: `{"limit":1,"offset":1}`

### `brevomcp_accounts_get_corporate_sub_account_by_id`

Accounts Get Corporate Sub Account By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization

Example input: `{"id":1}`

### `brevomcp_accounts_get_corporate_user_permission`

Accounts Get Corporate User Permission · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Email of the invited user.

Example input: `{"email":"<email>"}`

### `brevomcp_attributes_get_attributes`

Attributes Get Attributes · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_attributes_get_crm_attributes_companies`

Attributes Get Crm Attributes Companies · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_attributes_get_crm_attributes_deals`

Attributes Get Crm Attributes Deals · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_campaign_analytics_get_ab_test_campaign_result`

Campaign Analytics Get Ab Test Campaign Result · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the A/B test campaign

Example input: `{"campaignId":1}`

### `brevomcp_campaign_analytics_get_aggregated_smtp_report`

Campaign Analytics Get Aggregated Smtp Report · Read-only

Retrieve aggregated transactional email statistics (requests, delivered, opens, clicks, bounces, spam reports, blocked, invalid, unsubscribed) for a specified time period.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer, maximum 90). _Not compatible with 'startDate' and 'endDate'_. Defaults to 90 if neither dates nor days are provided.
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
- `tag` (`string`, optional): Tag of the emails

Example input: `{}`

### `brevomcp_campaign_analytics_get_email_event_report`

Campaign Analytics Get Email Event Report · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer, maximum 90). _Not compatible with 'startDate' and 'endDate'_. Defaults to 30 if neither dates nor days are provided.
- `email` (`string`, optional): Filter the report for a specific email addresses
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
- `event` (`string`, optional): Filter the report for a specific event type
- `limit` (`string`, optional): Number limitation for the result returned
- `messageId` (`string`, optional): Filter on a specific message id
- `offset` (`string`, optional): Beginning point in the list to retrieve from.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
- `tags` (`string`, optional): Filter the report for tags (serialized and urlencoded array)
- `templateId` (`string`, optional): Filter on a specific template id

Example input: `{}`

### `brevomcp_campaign_analytics_get_smtp_report`

Campaign Analytics Get Smtp Report · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer, maximum 30). _Not compatible with 'startDate' and 'endDate'_
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD)
- `limit` (`string`, optional): Number of documents returned per page
- `offset` (`string`, optional): Index of the first document on the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD)
- `tag` (`string`, optional): Tag of the emails

Example input: `{}`

### `brevomcp_categories_get_categories`

Categories Get Categories · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `createdSince` (`string`, optional): Filter (urlencoded) the categories created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `ids` (`string`, optional): Filter by category ids
- `isDeleted` (`string`, optional): Filter categories by their deletion status. If `false` is passed, only categories that are not deleted will be returned.
- `limit` (`string`, optional): Number of documents per page
- `modifiedSince` (`string`, optional): Filter (urlencoded) the categories modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `name` (`string`, optional): Filter by category name
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_categories_get_category_info`

Categories Get Category Info · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Category ID

Example input: `{"id":"<id>"}`

### `brevomcp_companies_get_by_id`

Companies Get By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Get Company Details

Example input: `{"id":"<id>"}`

### `brevomcp_companies_get_companies`

Companies Get Companies · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `createdSince` (`string`, optional): Filter (urlencoded) the companies created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `filters_attributes_name` (`string`, optional): Filter by attributes. If you have a filter for the owner on your side please send it as filters[attributes.owner] and utilize the account email for the filtering.
- `limit` (`string`, optional): Number of documents per page
- `linkedContactsIds` (`string`, optional): Filter by linked contacts ids
- `linkedDealsIds` (`string`, optional): Filter by linked Deals ids
- `modifiedSince` (`string`, optional): Filter (urlencoded) the companies modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `page` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order. Default order is descending by creation if `sort` is not passed
- `sortBy` (`string`, optional): The field used to sort field names.

Example input: `{}`

### `brevomcp_contact_import_export_get_contacts_from_list`

Contact Import Export Get Contacts From List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `listId` (`integer`, required): Id of the list
- `limit` (`string`, optional): Number of documents per page
- `modifiedSince` (`string`, optional): Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{"listId":1}`

### `brevomcp_contacts_get_contact_info`

Contacts Get Contact Info · Read-only

Retrieve contact details by email, phone, or Brevo contact ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): Email (urlencoded) OR ID of the contact OR its SMS attribute value OR EXT_ID attribute (urlencoded)
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Must not be greater than the current date.
- `identifierType` (`string`, optional): email_id for Email, 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
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate. Must not be greater than the current date.

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_contacts_get_contact_stats`

Contacts Get Contact Stats · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): Email address (urlencoded) or numeric ID of the contact. If the value is numeric, it is treated as a contact ID; otherwise it is treated as an email address.
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Must not be greater than the current date. Maximum difference between startDate and endDate should not be greater than 90 days.
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate. Must not be greater than the current date.

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_contacts_get_contacts`

Contacts Get Contacts · Read-only

Retrieve all contacts from your Brevo account with support for pagination, filtering, and sorting.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `createdSince` (`string`, optional): Filter (urlencoded) the contacts created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `filter` (`string`, optional): Filter the contacts on the basis of attributes. Allowed operator: equals. For multiple-choice options, the filter will apply an AND condition between the options. For category attributes, the filter will work with both id and value. (e.g. filter=equals(FIRSTNAME,"Antoine"), filter=equals(B1, true), filter=equals(DOB, "1989-11-23"), filter=equals(GENDER, "1"), filter=equals(GENDER, "MALE"), filter=equals(COUNTRY,"USA, INDIA")
- `ids` (`string`, optional): Filter by a list of contact IDs. You can pass a maximum of 20 IDs. All elements must be integers.
- `limit` (`string`, optional): Number of documents per page
- `listIds` (`string`, optional): Ids of the list. Either listIds or segmentId can be passed.
- `modifiedSince` (`string`, optional): Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `offset` (`string`, optional): Index of the first document of the page
- `segmentId` (`string`, optional): Id of the segment. Either listIds or segmentId can be passed. Must be a positive integer (minimum value of 1).
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_conversations_get_messages_by_id`

Conversations Get Messages By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message

Example input: `{"id":"<id>"}`

### `brevomcp_conversations_get_pushed_messages_by_id`

Conversations Get Pushed Messages By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message sent previously

Example input: `{"id":"<id>"}`

### `brevomcp_coupons_get_coupon_collection`

Coupons Get Coupon Collection · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the collection to return

Example input: `{"id":"<id>"}`

### `brevomcp_coupons_get_coupon_collections`

Coupons Get Coupon Collections · Read-only

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).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents returned per page
- `offset` (`string`, optional): Index of the first document on the page
- `sort` (`string`, optional): Sort the results by creation time in ascending/descending order
- `sortBy` (`string`, optional): The field used to sort coupon collections

Example input: `{}`

### `brevomcp_deals_get_crm_deals`

Deals Get Crm Deals · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `createdSince` (`string`, optional): Filter (urlencoded) the deals created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `filters_attributes_deal_name` (`string`, optional): Filter by the deal name attribute.
- `filters_attributes_deal_owner` (`string`, optional): Filter deals by owner. Pass the account email of the deal owner.
- `filters_attributes_deal_stage` (`string`, optional): Filter by the deal stage. Pass the stage id, retrievable from GET /crm/pipeline/details/{pipelineID}.
- `filters_attributes_pipeline` (`string`, optional): Filter by the pipeline. Pass the pipeline id, retrievable from GET /crm/pipeline/details/{pipelineID}.
- `filters_linkedCompaniesIds` (`string`, optional): Filter by linked companies ids
- `filters_linkedContactsIds` (`string`, optional): Filter by linked contacts ids
- `limit` (`string`, optional): Number of documents per page. Default is 50 if not specified.
- `modifiedSince` (`string`, optional): Filter (urlencoded) the deals modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order. Default order is descending by creation if `sort` is not passed
- `sortBy` (`string`, optional): The field used to sort field names.

Example input: `{}`

### `brevomcp_deals_get_crm_deals_by_id`

Deals Get Crm Deals By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `brevomcp_domains_get_domain_configuration`

Domains Get Domain Configuration · Read-only

Retrieves configuration of a specific domain, to know if the domain is valid or not.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domainName` (`string`, required): Domain name

Example input: `{"domainName":"<domainName>"}`

### `brevomcp_domains_get_domains`

Domains Get Domains · Read-only

Retrieves all domains associated with the account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_ecommerce_get_attribution_metrics`

Ecommerce Get Attribution Metrics · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `automationWorkflowEmailId_` (`string`, optional): The automation workflow ID(s) to get email attribution metrics for
- `automationWorkflowSmsId_` (`string`, optional): The automation workflow ID(s) to get SMS attribution metrics for
- `emailCampaignId_` (`string`, optional): The email campaign ID(s) to get metrics for
- `periodFrom` (`string`, optional): When getting metrics for a specific period, define the starting datetime in RFC3339 format
- `periodTo` (`string`, optional): When getting metrics for a specific period, define the end datetime in RFC3339 format
- `smsCampaignId_` (`string`, optional): The SMS campaign ID(s) to get metrics for

Example input: `{}`

### `brevomcp_ecommerce_get_attribution_metrics_by_conversion_source_id`

Ecommerce Get Attribution Metrics By Conversion Source Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversionSource` (`string`, required): The Brevo campaign type or workflow type for which data will be retrieved. One of: `email_campaign`, `sms_campaign`, `automation_workflow_email`, `automation_workflow_sms`.
- `conversionSourceId` (`string`, required): The Brevo campaign or automation workflow id for which data will be retrieved

Example input: `{"conversionSource":"email_campaign","conversionSourceId":"<conversionSourceId>"}`

### `brevomcp_ecommerce_get_attribution_products_by_conversion_source_id`

Ecommerce Get Attribution Products By Conversion Source Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversionSource` (`string`, required): The Brevo campaign or automation workflow type for which data will be retrieved. One of: `email_campaign`, `sms_campaign`, `automation_workflow_email`, `automation_workflow_sms`.
- `conversionSourceId` (`string`, required): The Brevo campaign or automation workflow id for which data will be retrieved

Example input: `{"conversionSource":"email_campaign","conversionSourceId":"<conversionSourceId>"}`

### `brevomcp_ecommerce_get_config_display_currency`

Ecommerce Get Config Display Currency · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_ecommerce_get_orders`

Ecommerce Get Orders · Read-only

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).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `createdSince` (`string`, optional): Filter (urlencoded) the orders created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `limit` (`string`, optional): Number of documents per page
- `modifiedSince` (`string`, optional): Filter (urlencoded) the orders modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_email_campaign_management_get_email_campaign`

Email Campaign Management Get Email Campaign · Read-only

Retrieve detailed information about a specific email campaign by its ID, including recipients, statistics, and HTML content.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `excludeHtmlContent` (`string`, optional): Use this flag to exclude htmlContent from the response body. If set to true, htmlContent field will be returned as empty string in the response body
- `statistics` (`string`, optional): Filter on the type of statistics required. Example: globalStats value will only fetch globalStats info of the campaign in the returned response. `statsByDevice` and `statsByBrowser` are only available when retrieving a single campaign (not in the list endpoint).

Example input: `{"campaignId":1}`

### `brevomcp_email_campaign_management_get_email_campaigns`

Email Campaign Management Get Email Campaigns · Read-only

No description available.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result. Only available if `status` is not passed or is set to `sent`. The date range between `startDate` and `endDate` must not exceed 2 years. `endDate` must not be in the future.
- `excludeHtmlContent` (`string`, optional): Use this flag to exclude htmlContent from the response body. If set to true, the htmlContent field will be returned as an empty string in the response body.
- `excludePdfAttachment` (`string`, optional): Use this flag to filter out campaigns that have a PDF attachment. If set to true, only campaigns without a PDF attachment (or with no attachment at all) will be returned.
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. Prefer to pass your timezone in date-time format for accurate result. Only available if `status` is not passed or is set to `sent`. The date range between `startDate` and `endDate` must not exceed 2 years. `startDate` must not be in the future.
- `statistics` (`string`, optional): Filter on the type of statistics required. Example: globalStats value will only fetch globalStats info of the campaign in the returned response. This option only returns data for events that occurred in the last 6 months. For older campaigns, it is advisable to use the Get Campaign Report endpoint.
- `status` (`string`, optional): Filter on the status of the campaign
- `type` (`string`, optional): Filter on the type of the campaigns

Example input: `{}`

### `brevomcp_email_campaign_management_get_shared_template_url`

Email Campaign Management Get Shared Template Url · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign or template

Example input: `{"campaignId":1}`

### `brevomcp_events_get_events`

Events Get Events · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, optional): Filter by contact ID (repeatable).
- `endDate` (`string`, optional): Mandatory if startDate is used. End of date range (YYYY-MM-DD or RFC3339). Must be strictly greater than startDate. The date range between startDate and endDate must not exceed 6 months.
- `event_name` (`string`, optional): Filter by event name (repeatable).
- `limit` (`string`, optional): Maximum number of events to return. Default 100, minimum 1, maximum 10000.
- `object_type` (`string`, optional): Filter by object type (repeatable).
- `offset` (`string`, optional): Number of events to skip for pagination. Default 0, minimum 0.
- `startDate` (`string`, optional): Mandatory if endDate is used. Start of date range (YYYY-MM-DD or RFC3339). Defaults to 6 months ago when omitted alongside endDate. Must be before endDate and after 1970-01-01.

Example input: `{}`

### `brevomcp_external_feeds_get_all_external_feeds`

External Feeds Get All External Feeds · Read-only

Retrieves all external feeds from your Brevo account with filtering and pagination.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `authType` (`string`, optional): Filter the records by `authType` of the feed.
- `endDate` (`string`, optional): Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month.
- `limit` (`string`, optional): Number of documents returned per page.
- `offset` (`string`, optional): Index of the first document on the page.
- `search` (`string`, optional): Can be used to filter records by search keyword on feed name
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed.
- `startDate` (`string`, optional): Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older than current date.

Example input: `{}`

### `brevomcp_external_feeds_get_external_feed_by_uuid`

External Feeds Get External Feed By Uuid · Read-only

Retrieves details of a specific external feed by its UUID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): UUID of the feed to fetch

Example input: `{"uuid":"<uuid>"}`

### `brevomcp_files_get_crm_files`

Files Get Crm Files · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dateFrom` (`string`, optional): dateFrom to date range filter type (timestamp in milliseconds)
- `dateTo` (`string`, optional): dateTo to date range filter type (timestamp in milliseconds)
- `entity` (`string`, optional): Filter by file entity type
- `entityIds` (`string`, optional): Filter by file entity IDs
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order. Default order is descending by creation if `sort` is not passed

Example input: `{}`

### `brevomcp_files_get_crm_files_by_id`

Files Get Crm Files By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): File id to download.

Example input: `{"id":"<id>"}`

### `brevomcp_files_get_crm_files_data`

Files Get Crm Files Data · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): File ID to retrieve file data for

Example input: `{"id":"<id>"}`

### `brevomcp_folders_get_folder`

Folders Get Folder · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `folderId` (`integer`, required): id of the folder

Example input: `{"folderId":1}`

### `brevomcp_folders_get_folder_lists`

Folders Get Folder Lists · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `folderId` (`integer`, required): Id of the folder
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{"folderId":1}`

### `brevomcp_folders_get_folders`

Folders Get Folders · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_groups_get_corporate_group_by_id`

Groups Get Corporate Group By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the group of sub-organization

Example input: `{"id":"<id>"}`

### `brevomcp_groups_get_sub_account_groups`

Groups Get Sub Account Groups · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_inbound_get_email_attachment`

Inbound Get Email Attachment · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `downloadToken` (`string`, required): Token to fetch a particular attachment.

Example input: `{"downloadToken":"<downloadToken>"}`

### `brevomcp_inbound_get_email_events`

Inbound Get Email Events · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) till which you want to fetch the list. Maximum time period that can be selected is 30 days. Must not be in the future.
- `limit` (`string`, optional): Number of documents returned per page. Default 100, minimum 1, maximum 500.
- `offset` (`string`, optional): Index of the first document on the page. Default 0, minimum 0.
- `sender` (`string`, optional): Email address of the sender. Must be a valid email address when provided.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default is descending.
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) from which you want to fetch the list. Maximum time period that can be selected is 30 days. Must not be in the future and must be before endDate.

Example input: `{}`

### `brevomcp_inbound_get_email_events_by_uuid`

Inbound Get Email Events By Uuid · Read-only

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).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): UUID to fetch events specific to a received email. Must be a valid UUID format.

Example input: `{"uuid":"<uuid>"}`

### `brevomcp_ips_get_from_sender`

Ips Get From Sender · Read-only

Retrieves the dedicated IPs associated with a specific sender.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `senderId` (`integer`, required): Id of the sender

Example input: `{"senderId":1}`

### `brevomcp_ips_get_ips`

Ips Get Ips · Read-only

Retrieves all dedicated IPs associated with your Brevo account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_lists_get_list`

Lists Get List · Read-only

Retrieve the details of a specific contact list by its ID, including its name, folder ID, creation date, subscriber counts, and campaign statistics.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `listId` (`integer`, required): Id of the list
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. Prefer to pass your timezone in date-time format for accurate result. If not provided, defaults to the current date. The difference between startDate and endDate must not exceed 2 years.
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. Prefer to pass your timezone in date-time format for accurate result. If not provided, defaults to 6 months ago.

Example input: `{"listId":1}`

### `brevomcp_lists_get_lists`

Lists Get Lists · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_loyalty_get_balance_definition`

Loyalty Get Balance Definition · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `pid` (`string`, required): Loyalty Program Id
- `version` (`string`, optional): Version

Example input: `{"bdid":"<bdid>","pid":"<pid>"}`

### `brevomcp_loyalty_get_balance_definition_list`

Loyalty Get Balance Definition List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program Id
- `limit` (`string`, optional): Limit the number of records returned
- `offset` (`string`, optional): Offset to paginate records
- `sort` (`string`, optional): Sort direction
- `sortField` (`string`, optional): Field to sort by
- `version` (`string`, optional): Version

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_balance_limit`

Loyalty Get Balance Limit · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `blid` (`string`, required): Balance Limit Id
- `pid` (`string`, required): Loyalty Program Id
- `version` (`string`, optional): Version

Example input: `{"bdid":"<bdid>","blid":"<blid>","pid":"<pid>"}`

### `brevomcp_loyalty_get_balance_programs_active_balance`

Loyalty Get Balance Programs Active Balance · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `balanceDefinitionId` (`string`, required): Balance Definition ID
- `contactId` (`integer`, required): Contact ID
- `pid` (`string`, required): Loyalty Program Id
- `includeInternal` (`string`, optional): Include balances tied to internal definitions.
- `limit` (`string`, optional): Limit
- `offset` (`string`, optional): Offset
- `sort` (`string`, optional): Sort Order
- `sortField` (`string`, optional): Sort Field

Example input: `{"balanceDefinitionId":"<balanceDefinitionId>","contactId":1,"pid":"<pid>"}`

### `brevomcp_loyalty_get_balance_programs_transaction_history`

Loyalty Get Balance Programs Transaction History · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `balanceDefinitionId` (`string`, required): Balance Definition ID
- `contactId` (`integer`, required): Contact ID
- `pid` (`string`, required): Loyalty Program Id
- `limit` (`string`, optional): Limit the number of records returned
- `offset` (`string`, optional): Page number to retrieve
- `sort` (`string`, optional): Sort order
- `sortField` (`string`, optional): Field to sort by
- `status` (`string`, optional): Transaction status filter
- `transactionType` (`string`, optional): Transaction type filter

Example input: `{"balanceDefinitionId":"<balanceDefinitionId>","contactId":1,"pid":"<pid>"}`

### `brevomcp_loyalty_get_code_count`

Loyalty Get Code Count · Read-only

Retrieves the number of available codes in a specific code pool. Code pools are used by rewards to generate unique voucher codes for attribution.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cpid` (`string`, required): Code Pool ID
- `pid` (`string`, required): Loyalty Program ID

Example input: `{"cpid":"<cpid>","pid":"<pid>"}`

### `brevomcp_loyalty_get_contact_balances`

Loyalty Get Contact Balances · Read-only

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`.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `balanceDefinitionId` (`string`, required): Balance Definition ID (required)
- `pid` (`string`, required): Loyalty Program Id
- `includeInternal` (`string`, optional): Include balances tied to internal definitions.
- `limit` (`string`, optional): Limit the number of records returned
- `offset` (`string`, optional): Skip a number of records
- `sort` (`string`, optional): Sort order
- `sortField` (`string`, optional): Field to sort by

Example input: `{"balanceDefinitionId":"<balanceDefinitionId>","pid":"<pid>"}`

### `brevomcp_loyalty_get_list_of_tier_groups`

Loyalty Get List Of Tier Groups · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `version` (`string`, optional): Select 'active' to retrieve list of all tier groups which are live for clients. Select draft to retrieve list of all non deleted tier groups.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_lp_list`

Loyalty Get Lp List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort order
- `sort_field` (`string`, optional): Sort documents by field

Example input: `{}`

### `brevomcp_loyalty_get_offer_programs_offers`

Loyalty Get Offer Programs Offers · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `limit` (`string`, optional): Page size
- `offset` (`string`, optional): Pagination offset
- `state` (`string`, optional): State of the reward
- `version` (`string`, optional): Version

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_offer_programs_rewards_by_rid`

Loyalty Get Offer Programs Rewards By Rid · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `rid` (`string`, required): Reward ID
- `version` (`string`, optional): Version

Example input: `{"pid":"<pid>","rid":"<rid>"}`

### `brevomcp_loyalty_get_offer_programs_vouchers`

Loyalty Get Offer Programs Vouchers · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contactId` (`integer`, required): Contact ID
- `pid` (`string`, required): Loyalty Program ID
- `limit` (`string`, optional): Page size
- `metadata_key_value` (`string`, optional): Metadata value for a Key filter
- `offset` (`string`, optional): Pagination offset
- `rewardId` (`string`, optional): Reward ID
- `sort` (`string`, optional): Sort order
- `sortField` (`string`, optional): Sort field

Example input: `{"contactId":1,"pid":"<pid>"}`

### `brevomcp_loyalty_get_parameter_subscription_info`

Loyalty Get Parameter Subscription Info · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.
- `contactId` (`string`, optional): The contact ID to filter by.
- `includeInternal` (`string`, optional): Include balances tied to internal definitions.
- `loyaltySubscriptionId` (`string`, optional): The loyalty subscription ID to filter by.
- `params` (`string`, optional): A list of filter parameters for querying the subscription info.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_program_info`

Loyalty Get Program Info · Read-only

Retrieves the full details of a single loyalty program by its ID, including its current state, metadata, subscription pool configuration, and timestamps.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_program_tier`

Loyalty Get Program Tier · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `version` (`string`, optional): Select 'active' to retrieve list of all tiers which are live for clients. Select draft to retrieve list of all non deleted tiers.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_get_subscription_balances`

Loyalty Get Subscription Balances · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cid` (`string`, required): Contact ID
- `pid` (`string`, required): Loyalty Program Id
- `includeInternal` (`string`, optional): Include balances tied to internal definitions.

Example input: `{"cid":"<cid>","pid":"<pid>"}`

### `brevomcp_loyalty_get_tier_group`

Loyalty Get Tier Group · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `gid` (`string`, required): Tier group ID
- `pid` (`string`, required): Loyalty Program ID
- `version` (`string`, optional): Select active to retrieve active version of tier group. Select draft to retrieve latest changes in tier group.

Example input: `{"gid":"<gid>","pid":"<pid>"}`

### `brevomcp_notes_get_crm_notes`

Notes Get Crm Notes · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dateFrom` (`string`, optional): Start of date range filter (timestamp in milliseconds)
- `dateTo` (`string`, optional): End of date range filter (timestamp in milliseconds)
- `entity` (`string`, optional): Filter by note entity type. Required when `entityIds` is provided.
- `entityIds` (`string`, optional): Filter by note entity IDs (comma-separated). The `entity` parameter must also be provided when using this filter. For contacts, provide numeric IDs; for companies and deals, provide object IDs.
- `limit` (`string`, optional): Number of documents per page. Must be greater than 0.
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order. Default order is descending by creation date if `sort` is not passed.

Example input: `{}`

### `brevomcp_notes_get_crm_notes_by_id`

Notes Get Crm Notes By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Note ID to retrieve

Example input: `{"id":"<id>"}`

### `brevomcp_objects_getrecords`

Objects Getrecords · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, required): Number of records returned per page
- `object_type` (`string`, required): Object type for the records to retrieve. Must be a previously created custom object type. Contact as object type is not supported in this endpoint.
- `page_num` (`integer`, required): Page number for pagination. It's used to fetch the object records on a provided page number. Must be a valid positive integer.
- `association` (`string`, optional): Whether to include associations, must be 'true' or 'false'. Default to 'false' if not provided.
- `sort` (`string`, optional): Sort order, must be 'asc' or 'desc'. Default to 'desc' if not provided.

Example input: `{"limit":1,"object_type":"<object_type>","page_num":1}`

### `brevomcp_payments_get_payment_request`

Payments Get Payment Request · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the payment Request

Example input: `{"id":"<id>"}`

### `brevomcp_pipelines_get_crm_pipeline_details`

Pipelines Get Crm Pipeline Details · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_pipelines_get_crm_pipeline_details_all`

Pipelines Get Crm Pipeline Details All · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_pipelines_get_crm_pipeline_details_by_pipeline_id`

Pipelines Get Crm Pipeline Details By Pipeline Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `pipelineID` (`string`, required): ID of the pipeline to retrieve

Example input: `{"pipelineID":"<pipelineID>"}`

### `brevomcp_processes_get_process`

Processes Get Process · Read-only

Retrieves detailed information about a specific background process.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `processId` (`integer`, required): Id of the process

Example input: `{"processId":1}`

### `brevomcp_processes_get_processes`

Processes Get Processes · Read-only

Retrieves a list of background processes from your Brevo account with filtering and pagination.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number limitation for the result returned
- `offset` (`string`, optional): Beginning point in the list to retrieve from.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_products_get_product_info`

Products Get Product Info · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Product ID

Example input: `{"id":"<id>"}`

### `brevomcp_products_get_products`

Products Get Products · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `alternativePrice_eq` (`string`, optional): Alternative price filter for products equals to particular amount
- `alternativePrice_gt` (`string`, optional): Alternative price filter for products greater than particular amount
- `alternativePrice_gte` (`string`, optional): Alternative price filter for products greater than and equals to particular amount
- `alternativePrice_lt` (`string`, optional): Alternative price filter for products less than particular amount
- `alternativePrice_lte` (`string`, optional): Alternative price filter for products less than and equals to particular amount
- `alternativePrice_ne` (`string`, optional): Alternative price filter for products not equals to particular amount
- `categories` (`string`, optional): Filter by categories ids
- `createdSince` (`string`, optional): Filter (urlencoded) the products created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `ids` (`string`, optional): Filter by product ids
- `isDeleted` (`string`, optional): Filter products by their deletion status. If `false` is passed, only products that are not deleted will be returned.
- `limit` (`string`, optional): Number of documents per page
- `modifiedSince` (`string`, optional): Filter (urlencoded) the products modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `name` (`string`, optional): Filter by product name, minimum 3 characters should be present for search.
- `offset` (`string`, optional): Index of the first document in the page
- `price_eq` (`string`, optional): Price filter for products equals to particular amount
- `price_gt` (`string`, optional): Price filter for products greater than particular amount
- `price_gte` (`string`, optional): Price filter for products greater than and equals to particular amount
- `price_lt` (`string`, optional): Price filter for products less than particular amount
- `price_lte` (`string`, optional): Price filter for products less than and equals to particular amount
- `price_ne` (`string`, optional): Price filter for products not equals to particular amount
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `sortByField` (`string`, optional): Sort the results by a specific field. Default sort field is `created_at` when not passed.

Example input: `{}`

### `brevomcp_segments_get_segments`

Segments Get Segments · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_senders_get_senders`

Senders Get Senders · Read-only

Retrieves a list of all email senders from your Brevo account with optional filtering.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, optional): Filter your senders for a specific domain
- `ip` (`string`, optional): Filter your senders for a specific ip. Available for dedicated IP usage only

Example input: `{}`

### `brevomcp_sms_campaigns_get_sms_campaign`

Sms Campaigns Get Sms Campaign · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the SMS campaign

Example input: `{"campaignId":1}`

### `brevomcp_sms_campaigns_get_sms_campaigns`

Sms Campaigns Get Sms Campaigns · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent SMS campaigns. Prefer to pass your timezone in date-time format for accurate result. Only available if `status` is not passed or is set to `sent`. `endDate` must not be in the future.
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Beginning point in the list to retrieve from.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent SMS campaigns. Prefer to pass your timezone in date-time format for accurate result. Only available if `status` is not passed or is set to `sent`. `startDate` must not be in the future.
- `status` (`string`, optional): Status of campaign.

Example input: `{}`

### `brevomcp_tasks_get_crm_tasks`

Tasks Get Crm Tasks · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dateFrom` (`string`, optional): dateFrom to date range filter type (timestamp in milliseconds)
- `dateTo` (`string`, optional): dateTo to date range filter type (timestamp in milliseconds)
- `filter_assignTo` (`string`, optional): Filter by the "assignTo" ID. You can utilize account emails for the "assignTo" attribute.
- `filter_companies` (`string`, optional): Filter by companies ids
- `filter_contacts` (`string`, optional): Filter by contact ids
- `filter_date` (`string`, optional): Filter by date
- `filter_deals` (`string`, optional): Filter by deals ids
- `filter_status` (`string`, optional): Filter by task status
- `filter_type` (`string`, optional): Filter by task type (ID)
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order. Default order is descending by creation if `sort` is not passed
- `sortBy` (`string`, optional): The field used to sort field names.

Example input: `{}`

### `brevomcp_tasks_get_crm_tasks_by_id`

Tasks Get Crm Tasks By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Task ID

Example input: `{"id":"<id>"}`

### `brevomcp_tasks_get_crm_tasktypes`

Tasks Get Crm Tasktypes · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_templates_get_smtp_template`

Templates Get Smtp Template · Read-only

Retrieve the full details of a specific transactional email template by its numeric ID or custom template identifier string.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `templateId` (`string`, required): ID of the template. Can be a numeric template ID or a custom template identifier string (alphanumeric, hyphens, and underscores only, max 64 characters, must start with a letter).

Example input: `{"templateId":"<templateId>"}`

### `brevomcp_templates_get_smtp_templates`

Templates Get Smtp Templates · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `editorType` (`string`, optional): Filter on the editor type used to create the template. Currently only `richTextEditor` is supported as a filter value.
- `limit` (`string`, optional): Number of documents returned per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `templateStatus` (`string`, optional): Filter on the status of the template. Active = true, inactive = false

Example input: `{}`

### `brevomcp_transac_templates_get_blocked_domains`

Transac Templates Get Blocked Domains · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_transac_templates_get_scheduled_email_by_id`

Transac Templates Get Scheduled Email By Id · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): The `batchId` of scheduled emails batch (must be a valid UUIDv4) or the `messageId` of scheduled email (enclosed in angle brackets with @ sign, e.g. `<...@domain>`). When using `messageId`, the `limit`, `offset`, `sort`, and `status` query parameters are ignored.
- `endDate` (`string`, optional): Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month.
- `limit` (`string`, optional): Number of documents returned per page. Not valid when identifier is `messageId`.
- `offset` (`string`, optional): Index of the first document on the page.  Not valid when identifier is `messageId`.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed. Not valid when identifier is `messageId`.
- `startDate` (`string`, optional): Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Cannot be more than 30 days older than the current date.
- `status` (`string`, optional): Filter the records by `status` of the scheduled email batch or message. Not valid when identifier is `messageId`.

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_transac_templates_get_sms_events`

Transac Templates Get Sms Events · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate'
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report. Must not be in the future.
- `event` (`string`, optional): Filter the report for specific events
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document of the page
- `phoneNumber` (`string`, optional): Filter the report for a specific phone number
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report. Must not be in the future and must not be after endDate.
- `tags` (`string`, optional): Filter the report for specific tags, passed as a comma-separated URL-encoded string

Example input: `{}`

### `brevomcp_transac_templates_get_sms_templates`

Transac Templates Get Sms Templates · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`string`, optional): Number of documents returned per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed

Example input: `{}`

### `brevomcp_transac_templates_get_transac_aggregated_sms_report`

Transac Templates Get Transac Aggregated Sms Report · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer). Not compatible with startDate and endDate
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report. Must not be in the future.
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report. Must not be in the future and must not be after endDate.
- `tag` (`string`, optional): Filter results by a specific tag

Example input: `{}`

### `brevomcp_transac_templates_get_transac_blocked_contacts`

Transac Templates Get Transac Blocked Contacts · Read-only

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).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts
- `limit` (`string`, optional): Number of documents returned per page
- `offset` (`string`, optional): Index of the first document on the page
- `senders` (`string`, optional): Comma separated list of emails of the senders from which contacts are blocked or unsubscribed
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts

Example input: `{}`

### `brevomcp_transac_templates_get_transac_email_content`

Transac Templates Get Transac Email Content · Read-only

Retrieve the full content and event history of a specific sent transactional email by its unique ID (uuid).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique id of the transactional email that has been sent to a particular contact

Example input: `{"uuid":"<uuid>"}`

### `brevomcp_transac_templates_get_transac_emails_list`

Transac Templates Get Transac Emails List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, optional): Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent.
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month.
- `limit` (`string`, optional): Number of documents returned per page
- `messageId` (`string`, optional): Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent.
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month.
- `templateId` (`string`, optional): Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email.

Example input: `{}`

### `brevomcp_transac_templates_get_transac_sms_report`

Transac Templates Get Transac Sms Report · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `days` (`string`, optional): Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate'
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report. Must not be in the future.
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report. Must not be in the future and must not be after endDate.
- `tag` (`string`, optional): Filter results by a specific tag

Example input: `{}`

### `brevomcp_users_get_invited_users_list`

Users Get Invited Users List · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_users_get_user_permission`

Users Get User Permission · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Email of the invited user.

Example input: `{"email":"<email>"}`

### `brevomcp_webhooks_management_get_webhook`

Webhooks Management Get Webhook · Read-only

Retrieves detailed information about a specific webhook configuration.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `webhookId` (`integer`, required): Id of the webhook

Example input: `{"webhookId":1}`

### `brevomcp_webhooks_management_get_webhooks`

Webhooks Management Get Webhooks · Read-only

Retrieves all webhooks from your Brevo account with filtering and sorting options. If no `type`
filter is specified, transactional webhooks are returned by default.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `sort` (`string`, optional): Sort the results in the ascending/descending order of webhook creation
- `type` (`string`, optional): Filter on webhook type

Example input: `{}`

### `brevomcp_whatsapp_campaigns_get_whats_app_campaign`

Whatsapp Campaigns Get Whats App Campaign · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign

Example input: `{"campaignId":1}`

### `brevomcp_whatsapp_campaigns_get_whats_app_campaigns`

Whatsapp Campaigns Get Whats App Campaigns · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. Prefer to pass your timezone in date-time format for accurate result
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record modification. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. Prefer to pass your timezone in date-time format for accurate result

Example input: `{}`

### `brevomcp_whatsapp_campaigns_get_whats_app_config`

Whatsapp Campaigns Get Whats App Config · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `brevomcp_whatsapp_campaigns_get_whats_app_templates`

Whatsapp Campaigns Get Whats App Templates · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `endDate` (`string`, optional): Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. Prefer to pass your timezone in date-time format for accurate result
- `limit` (`string`, optional): Number of documents per page
- `offset` (`string`, optional): Index of the first document in the page
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record modification. Default order is descending if `sort` is not passed
- `source` (`string`, optional): source of the template
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. Prefer to pass your timezone in date-time format for accurate result

Example input: `{}`

### `brevomcp_whatsapp_management_get_whatsapp_event_report`

Whatsapp Management Get Whatsapp Event Report · Read-only

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.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contactNumber` (`string`, optional): Filter results for specific contact (WhatsApp Number with country code. Example, 85264318721)
- `days` (`string`, optional): Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
- `event` (`string`, optional): Filter the report for a specific event type
- `limit` (`string`, optional): Number limitation for the result returned
- `offset` (`string`, optional): Beginning point in the list to retrieve from
- `sort` (`string`, optional): Sort the results in the ascending/descending order of record creation. Default order is descending if `sort` is not passed
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate

Example input: `{}`

### `brevomcp_accounts_invite_admin_user`

Accounts Invite Admin User · Write

Invites a new member to manage the Admin (master) account by sending an invitation email.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `all_features_access` (`string`, required): All access to the features
- `email` (`string`, required): Email address for the organization
- `privileges` (`string`, required): No description.
- `groupIds` (`string`, optional): Ids of Group

Example input: `{"all_features_access":"<all_features_access>","email":"<email>","privileges":"<privileges>"}`

### `brevomcp_accounts_post_corporate_sso_token`

Accounts Post Corporate Sso Token · Write

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].

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email` (`string`, required): User email of admin account

Example input: `{"email":"<email>"}`

### `brevomcp_accounts_post_corporate_sub_account`

Accounts Post Corporate Sub Account · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `companyName` (`string`, required): Set the name of the sub-account company
- `email` (`string`, required): Email address for the organization
- `groupIds` (`string`, optional): Set the group(s) for the sub-account
- `language` (`string`, optional): Set the language of the sub-account
- `timezone` (`string`, optional): Set the timezone of the sub-account

Example input: `{"companyName":"<companyName>","email":"<email>"}`

### `brevomcp_accounts_post_corporate_sub_account_ip_associate`

Accounts Post Corporate Sub Account Ip Associate · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `ids` (`string`, required): Pass the list of sub-account Ids to be associated with the IP address
- `ip` (`string`, required): IP address

Example input: `{"ids":"<ids>","ip":"<ip>"}`

### `brevomcp_accounts_post_corporate_sub_account_key`

Accounts Post Corporate Sub Account Key · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization
- `name` (`string`, required): Name of the API key

Example input: `{"id":1,"name":"<name>"}`

### `brevomcp_accounts_post_corporate_sub_account_sso_token`

Accounts Post Corporate Sub Account Sso Token · Write

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].

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization
- `email` (`string`, optional): User email of sub-account organization
- `target` (`string`, optional): Set target after login success * automation - Redirect to Automation after login * email_campaign - Redirect to Email Campaign after login * contacts - Redirect to Contacts after login * landing_pages - Redirect to Landing Pages after login * email_transactional - Redirect to Email Transactional after login * senders - Redirect to Senders after login * sms_campaign - Redirect to Sms Campaign after login * sms_transactional - Redirect to Sms Transactional after login
- `url` (`string`, optional): Set the full target URL after login success. The user will land directly on this target URL after login

Example input: `{"id":1}`

### `brevomcp_accounts_put_corporate_sub_account_applications_toggle`

Accounts Put Corporate Sub Account Applications Toggle · Write

Enables or disables specific applications for a sub-account organization. Each application can be toggled independently using boolean values.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization (mandatory)
- `automation` (`string`, optional): Set this field to enable or disable Automation on the sub-account
- `conversations` (`string`, optional): Set this field to enable or disable Conversations on the sub-account
- `crm` (`string`, optional): Set this field to enable or disable Sales CRM on the sub-account
- `email_campaigns` (`string`, optional): Set this field to enable or disable Email Campaigns on the sub-account
- `facebook_ads` (`string`, optional): Set this field to enable or disable Facebook ads on the sub-account
- `inbox` (`string`, optional): Set this field to enable or disable Inbox on the sub-account / Not applicable on ENTv2
- `landing_pages` (`string`, optional): Set this field to enable or disable Landing pages on the sub-account
- `meetings` (`string`, optional): Set this field to enable or disable Meetings on the sub-account
- `sms_campaigns` (`string`, optional): Set this field to enable or disable SMS Marketing on the sub-account
- `transactional_emails` (`string`, optional): Set this field to enable or disable Transactional Email on the sub-account
- `transactional_sms` (`string`, optional): Set this field to enable or disable Transactional SMS on the sub-account
- `web_push` (`string`, optional): Set this field to enable or disable Web Push on the sub-account
- `whatsapp` (`string`, optional): Set this field to enable or disable Whatsapp campaigns on the sub-account

Example input: `{"id":1}`

### `brevomcp_accounts_put_corporate_sub_account_ip_dissociate`

Accounts Put Corporate Sub Account Ip Dissociate · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`string`, required): Pass the list of sub-account Ids to be dissociated from the IP address
- `ip` (`string`, required): IP address

Example input: `{"ids":"<ids>","ip":"<ip>"}`

### `brevomcp_accounts_put_corporate_sub_account_plan`

Accounts Put Corporate Sub Account Plan · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization
- `credits` (`string`, optional): Credit details to update
- `features` (`string`, optional): Features details to update

Example input: `{"id":1}`

### `brevomcp_accounts_put_corporate_sub_accounts_plan`

Accounts Put Corporate Sub Accounts Plan · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `credits` (`string`, optional): Credit details to update
- `features` (`string`, optional): Features details to update
- `subAccountIds` (`string`, optional): List of sub-account ids

Example input: `{}`

### `brevomcp_accounts_put_corporate_user_invitation_by_email`

Accounts Put Corporate User Invitation By Email · Write

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`.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action` (`string`, required): Action to be performed (cancel / resend). One of: `resend`, `cancel`.
- `email` (`string`, required): Email address of the recipient

Example input: `{"action":"resend","email":"<email>"}`

### `brevomcp_accounts_put_corporate_user_permissions`

Accounts Put Corporate User Permissions · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `all_features_access` (`string`, required): All access to the features
- `email` (`string`, required): Email address of Admin user
- `privileges` (`string`, required): No description.

Example input: `{"all_features_access":"<all_features_access>","email":"<email>","privileges":"<privileges>"}`

### `brevomcp_attributes_create_attribute`

Attributes Create Attribute · Write

Create a new contact attribute under the specified category and name.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attributeCategory` (`string`, required): Category of the attribute. One of: `normal`, `transactional`, `category`, `calculated`, `global`.
- `attributeName` (`string`, required): Name of the attribute
- `enumeration` (`string`, optional): List of values and labels that the attribute can take. Use only if the attribute's category is "category". None of the category options can exceed max 200 characters. For example: [{"value":1, "label":"male"}, {"value":2, "label":"female"}]
- `isRecurring` (`string`, optional): Type of the attribute. Use only if the attribute's category is 'calculated' or 'global'
- `multiCategoryOptions` (`string`, optional): List of options you want to add for multiple-choice attribute. Use only if the attribute's category is "normal" and attribute's type is "multiple-choice". None of the multicategory options can exceed max 200 characters. For example: ["USA","INDIA"]
- `type` (`string`, optional): Type of the attribute. Use only if the attribute's category is 'normal', 'category' or 'transactional' Type user and multiple-choice is only available if the category is normal attribute Type id is only available if the category is transactional attribute Type category is only available if the category is category attribute
- `value` (`string`, optional): Value of the attribute. Use only if the attribute's category is 'calculated' or 'global'

Example input: `{"attributeCategory":"normal","attributeName":"<attributeName>"}`

### `brevomcp_attributes_patch_crm_attributes_by_id`

Attributes Patch Crm Attributes By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Attribute ID
- `label` (`string`, optional): Attribute display label (max 50 characters)
- `objectType` (`string`, optional): The type of object the attribute belongs to, it cannot be updated after creation
- `optionsLabels` (`string`, optional): Updated labels for selectable options

Example input: `{"id":"<id>"}`

### `brevomcp_attributes_post_crm_attributes`

Attributes Post Crm Attributes · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attributeType` (`string`, required): The type of attribute (must be one of the defined enums). One of: `text`, `user`, `number`, `single-select`, `date`, `boolean`, `multi-choice`.
- `label` (`string`, required): The label for the attribute (max 50 characters, cannot be empty)
- `objectType` (`string`, required): The type of object the attribute belongs to. Must be either `companies` or `deals`. One of: `companies`, `deals`.
- `description` (`string`, optional): A description of the attribute
- `optionsLabels` (`string`, optional): Options for multi-choice or single-select attributes

Example input: `{"attributeType":"text","label":"<label>","objectType":"companies"}`

### `brevomcp_attributes_update_attribute`

Attributes Update Attribute · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `attributeCategory` (`string`, required): Category of the attribute. One of: `category`, `calculated`, `global`, `normal`.
- `attributeName` (`string`, required): Name of the existing attribute
- `enumeration` (`string`, optional): List of the values and labels that the attribute can take. Use only if the attribute's category is "category" None of the category options can exceed max 200 characters. For example, [{"value":1, "label":"male"}, {"value":2, "label":"female"}]
- `multiCategoryOptions` (`string`, optional): Use this option to add multiple-choice attributes options only if the attribute's category is "normal". This option is specifically designed for updating multiple-choice attributes. None of the multicategory options can exceed max 200 characters.. For example: ["USA","INDIA"]
- `value` (`string`, optional): Value of the attribute to update. Use only if the attribute's category is 'calculated' or 'global'

Example input: `{"attributeCategory":"category","attributeName":"<attributeName>"}`

### `brevomcp_categories_create_update_batch_category`

Categories Create Update Batch Category · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `categories` (`string`, required): array of categories objects
- `updateEnabled` (`string`, optional): Facilitate to update the existing categories in the same request (updateEnabled = true)

Example input: `{"categories":"<categories>"}`

### `brevomcp_categories_create_update_category`

Categories Create Update Category · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Unique Category ID as saved in the shop
- `deletedAt` (`string`, optional): UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the category deleted from the shop's database
- `isDeleted` (`string`, optional): category deleted from the shop's database
- `name` (`string`, optional): Mandatory in case of creation. Name of the Category, as displayed in the shop
- `updateEnabled` (`string`, optional): Facilitate to update the existing category in the same request (updateEnabled = true)
- `url` (`string`, optional): URL to the category

Example input: `{"id":"<id>"}`

### `brevomcp_companies_patch_by_id`

Companies Patch By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): No description.
- `attributes` (`string`, optional): Attributes for company update
- `countryCode` (`string`, optional): Country code if phone_number is passed in attributes.
- `linkedContactsIds` (`string`, optional): Warning - Using PATCH on linkedContactIds replaces the list of linked contacts. Omitted IDs will be removed.
- `linkedDealsIds` (`string`, optional): Warning - Using PATCH on linkedDealsIds replaces the list of linked deals. Omitted IDs will be removed.
- `name` (`string`, optional): Name of company

Example input: `{"id":"<id>"}`

### `brevomcp_companies_patch_link_unlink_by_id`

Companies Patch Link Unlink By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ID of the company to link or unlink entities with
- `linkContactIds` (`string`, optional): Contact IDs for contacts to be linked with the company
- `linkDealsIds` (`string`, optional): Deal IDs for deals to be linked with the company
- `unlinkContactIds` (`string`, optional): Contact IDs for contacts to be unlinked from the company
- `unlinkDealsIds` (`string`, optional): Deal IDs for deals to be unlinked from the company

Example input: `{"id":"<id>"}`

### `brevomcp_companies_post_companies`

Companies Post Companies · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of company
- `attributes` (`string`, optional): Attributes for company creation
- `countryCode` (`string`, optional): Country code if phone_number is passed in attributes.
- `linkedContactsIds` (`string`, optional): Contact ids to be linked with company
- `linkedDealsIds` (`string`, optional): Deal ids to be linked with company

Example input: `{"name":"<name>"}`

### `brevomcp_companies_post_import`

Companies Post Import · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs: none.

Example input: `{}`

### `brevomcp_contact_import_export_create_doi_contact`

Contact Import Export Create Doi Contact · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email` (`string`, required): Email address where the confirmation email will be sent. This email address will be the identifier for all other contact attributes.
- `includeListIds` (`string`, required): Lists under user account where contact should be added
- `redirectionUrl` (`string`, required): URL of the web page that user will be redirected to after clicking on the double opt in URL. When editing your DOI template you can reference this URL by using the tag {{ params.DOIurl }}.
- `templateId` (`integer`, required): Id of the Double opt-in (DOI) template
- `attributes` (`string`, optional): Pass the set of attributes and their values. These attributes must be present in your Brevo account. For eg. {'FNAME':'Elly', 'LNAME':'Roger', 'COUNTRIES': ['India','China']}
- `excludeListIds` (`string`, optional): Lists under user account where contact should not be added

Example input: `{"email":"<email>","includeListIds":"<includeListIds>","redirectionUrl":"<redirectionUrl>","templateId":1}`

### `brevomcp_contact_import_export_import_contacts`

Contact Import Export Import Contacts · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `disableNotification` (`string`, optional): To disable email notification
- `emailBlacklist` (`string`, optional): To blacklist all the contacts for email
- `emptyContactsAttributes` (`string`, optional): To facilitate the choice to erase any attribute of the existing contacts with empty value. emptyContactsAttributes = true means the empty fields in your import will erase any attribute that currently contain data in Brevo, & emptyContactsAttributes = false means the empty fields will not affect your existing data ( only available if `updateExistingContacts` set to true )
- `fileBody` (`string`, optional): Mandatory if fileUrl and jsonBody is not defined. CSV content to be imported. Use semicolon to separate multiple attributes. Maximum allowed file body size is 10MB . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of file body size while parsing. Please use fileUrl instead to import bigger files.
- `fileUrl` (`string`, optional): Mandatory if fileBody and jsonBody is not defined. URL of the file to be imported (no local file). Possible file formats: #### .txt, .csv, .json
- `jsonBody` (`string`, optional): Mandatory if fileUrl and fileBody is not defined. JSON content to be imported. Maximum allowed json body size is 10MB . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of json body size while parsing. Please use fileUrl instead to import bigger files.
- `listIds` (`string`, optional): Mandatory if newList is not defined. Ids of the lists in which the contacts shall be imported. For example, [2, 4, 7].
- `newList` (`string`, optional): To create a new list and import the contacts into it, pass the listName and an optional folderId.
- `notifyUrl` (`string`, optional): URL that will be called once the import process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
- `smsBlacklist` (`string`, optional): To blacklist all the contacts for sms
- `updateExistingContacts` (`string`, optional): To facilitate the choice to update the existing contacts

Example input: `{}`

### `brevomcp_contact_import_export_request_contact_export`

Contact Import Export Request Contact Export · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customContactFilter` (`string`, required): Set the filter for the contacts to be exported.
- `disableNotification` (`string`, optional): To avoid generating the email notification upon contact export, pass true
- `exportAttributes` (`string`, optional): List of all the attributes that you want to export. These attributes must be present in your contact database. It is required if exportMandatoryAttributes is set false.  For example: ['fname', 'lname', 'email']
- `exportDateInUTC` (`string`, optional): Specifies whether the date fields createdAt, modifiedAt in the exported data should be returned in UTC format.
- `exportMandatoryAttributes` (`string`, optional): To export mandatory attributes like EMAIL, ADDED_TIME, MODIFIED_TIME
- `exportMetadata` (`string`, optional): Export metadata of contacts such as _listIds, ADDED_TIME, MODIFIED_TIME.
- `exportSubscriptionStatus` (`string`, optional): Export subscription status of contacts for email & sms marketting. Pass email_marketing to obtain the marketing email subscription status & sms_marketing to retrieve the marketing SMS status of the contact.
- `notifyUrl` (`string`, optional): Webhook that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479

Example input: `{"customContactFilter":"<customContactFilter>"}`

### `brevomcp_contact_import_export_update_batch_contacts`

Contact Import Export Update Batch Contacts · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contacts` (`string`, required): List of contacts to be updated

Example input: `{"contacts":"<contacts>"}`

### `brevomcp_contacts_create_contact`

Contacts Create Contact · Write

Creates new contacts on Brevo. Contacts can be created by passing either -  1. email address of the contact (email_id), 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"} 3.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attributes` (`string`, optional): Pass the set of attributes and their values. The attribute's parameter should be passed in capital letter while creating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored. These attributes must be present in your Brevo account. For eg: {"FNAME":"Elly", "LNAME":"Roger", "COUNTRIES": ["India","China"]}
- `email` (`string`, optional): Email address of the user. Mandatory if "ext_id"  & "SMS" field is not passed.
- `emailBlacklisted` (`string`, optional): Set this field to blacklist the contact for emails (emailBlacklisted = true)
- `ext_id` (`string`, optional): Pass your own Id to create a contact.
- `listIds` (`string`, optional): Ids of the lists to add the contact to
- `smsBlacklisted` (`string`, optional): Set this field to blacklist the contact for SMS (smsBlacklisted = true)
- `smtpBlacklistSender` (`string`, optional): transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true )
- `updateEnabled` (`string`, optional): Facilitate to update the existing contact in the same request (updateEnabled = true)

Example input: `{}`

### `brevomcp_contacts_update_contact`

Contacts Update Contact · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded) OR its SMS attribute value OR its WHATSAPP attribute value OR its LANDLINE_NUMBER attribute value
- `attributes` (`string`, optional): Pass the set of attributes to be updated. These attributes must be present in your account. To update existing email address of a contact with the new one please pass EMAIL in attributes. For example, { "EMAIL":"newemail@domain.com", "FNAME":"Ellie", "LNAME":"Roger", "COUNTRIES":["India","China"]}. The attribute's parameter should be passed in capital letter while updating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored .Keep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in SMS field should be passed with proper country code. For example: {"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"}
- `emailBlacklisted` (`string`, optional): Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)
- `ext_id` (`string`, optional): Pass your own Id to update ext_id of a contact.
- `identifierType` (`string`, optional): email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
- `listIds` (`string`, optional): Ids of the lists to add the contact to
- `smsBlacklisted` (`string`, optional): Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)
- `smtpBlacklistSender` (`string`, optional): transactional email forbidden sender for contact. Use only for email Contact
- `unlinkListIds` (`string`, optional): Ids of the lists to remove the contact from

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_conversations_post_agent_online_ping`

Conversations Post Agent Online Ping · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `agentEmail` (`string`, optional): Agent's email address. When sending online pings from a standalone system, it's hard to maintain a 1-to-1 relationship between the users of both systems. In this case, an agent can be specified by their email address. If there's no agent with the specified email address in your Brevo organization, a dummy agent will be created automatically.
- `agentGroups` (`string`, optional): An array of group IDs the agent should belong to. When provided, the agent is added to the listed groups and removed from any groups not in the list. Each ID must be a 17-character alphanumeric string.
- `agentId` (`string`, optional): Agent ID. It can be found on the agent's page or received [from a webhook](https://developers.brevo.com/docs/conversations-webhooks). Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required).
- `agentName` (`string`, optional): Agent's name.
- `receivedFrom` (`string`, optional): Mark your messages to distinguish messages created by you from the others.

Example input: `{}`

### `brevomcp_conversations_post_messages`

Conversations Post Messages · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `text` (`string`, required): Message text.
- `visitorId` (`string`, required): Visitor's ID received [from a webhook](https://developers.brevo.com/docs/conversations-webhooks) or generated by you to [bind an existing user account to Conversations](https://developers.brevo.com/docs/customize-the-widget#identifying-existing-users).
- `agentEmail` (`string`, optional): Agent's email address. When sending messages from a standalone system, it's hard to maintain a 1-to-1 relationship between the users of both systems. In this case, an agent can be specified by their email address. If there's no agent with the specified email address in your Brevo organization, a dummy agent will be created automatically.
- `agentId` (`string`, optional): Agent ID. It can be found on the agent's page or received [from a webhook](https://developers.brevo.com/docs/conversations-webhooks). Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required).
- `agentName` (`string`, optional): Agent's name.
- `receivedFrom` (`string`, optional): Mark your messages to distinguish messages created by you from the others. Useful in two-way integrations to filter out your own messages when received via a webhook.

Example input: `{"text":"<text>","visitorId":"<visitorId>"}`

### `brevomcp_conversations_post_pushed_messages`

Conversations Post Pushed Messages · Write

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`.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `text` (`string`, required): Message text.
- `agentId` (`string`, optional): Agent ID. It can be found on the agent's page or received [from a webhook](https://developers.brevo.com/docs/conversations-webhooks). If neither `agentId` nor `groupId` is specified, a random agent from your organization is selected.
- `groupId` (`string`, optional): Group ID. It can be found on the group's page. A random agent from this group will be selected to send the message. Cannot be used together with `agentId`.
- `receivedFrom` (`string`, optional): Mark your messages to distinguish messages created by you from the others. Useful in two-way integrations to filter out your own messages when received via a webhook.
- `visitorId` (`string`, optional): Visitor's ID received [from a webhook](https://developers.brevo.com/docs/conversations-webhooks) or generated by you to [bind an existing user account to Conversations](https://developers.brevo.com/docs/customize-the-widget#identifying-existing-users). Either `visitorId` or `visitorIds` must be provided, but not both.
- `visitorIds` (`string`, optional): An array of visitor IDs to send the message to in bulk. A maximum of 250 IDs can be specified per request. Duplicate IDs are automatically removed. When using this field, the API returns `201` with an empty body and messages are delivered asynchronously. Either `visitorId` or `visitorIds` must be provided, but not both.

Example input: `{"text":"<text>"}`

### `brevomcp_conversations_put_messages_by_id`

Conversations Put Messages By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message
- `text` (`string`, required): The new message text.

Example input: `{"id":"<id>","text":"<text>"}`

### `brevomcp_conversations_put_pushed_messages_by_id`

Conversations Put Pushed Messages By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message
- `text` (`string`, required): The new message text.

Example input: `{"id":"<id>","text":"<text>"}`

### `brevomcp_coupons_create_coupon_collection`

Coupons Create Coupon Collection · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `defaultCoupon` (`string`, required): Default coupons collection name
- `name` (`string`, required): Name of the coupons collection
- `expirationDate` (`string`, optional): Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date.
- `remainingCouponsAlert` (`string`, optional): Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts.
- `remainingDaysAlert` (`string`, optional): Send a notification alert (email) when the remaining days until the expiration date are equal or fall bellow this number. Use null to disable alerts.

Example input: `{"defaultCoupon":"<defaultCoupon>","name":"<name>"}`

### `brevomcp_coupons_create_coupons`

Coupons Create Coupons · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `collectionId` (`string`, required): The id of the coupon collection for which the coupons will be created
- `coupons` (`string`, required): No description.

Example input: `{"collectionId":"<collectionId>","coupons":"<coupons>"}`

### `brevomcp_coupons_update_coupon_collection`

Coupons Update Coupon Collection · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Id of the collection to update
- `defaultCoupon` (`string`, optional): A default coupon to be used in case there are no coupons left
- `expirationDate` (`string`, optional): Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date.
- `remainingCouponsAlert` (`string`, optional): Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts.
- `remainingDaysAlert` (`string`, optional): Send a notification alert (email) when the remaining days until the expiration date are equal or fall bellow this number. Use null to disable alerts.

Example input: `{"id":"<id>"}`

### `brevomcp_deals_patch_crm_deals_by_id`

Deals Patch Crm Deals By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): No description.
- `attributes` (`string`, optional): Attributes for deal update To assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID. If you wish to update the pipeline of a deal you need to provide the `pipeline` and the `deal_stage` Pipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`
- `name` (`string`, optional): Name of deal

Example input: `{"id":"<id>"}`

### `brevomcp_deals_patch_crm_deals_link_unlink_by_id`

Deals Patch Crm Deals Link Unlink By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ID of the deal to link or unlink entities with
- `linkCompanyIds` (`string`, optional): Company IDs to be linked with the deal
- `linkContactIds` (`string`, optional): Contact IDs for contacts to be linked with the deal
- `unlinkCompanyIds` (`string`, optional): Company IDs to be unlinked from the deal
- `unlinkContactIds` (`string`, optional): Contact IDs for contacts to be unlinked from the deal

Example input: `{"id":"<id>"}`

### `brevomcp_deals_post_crm_deals`

Deals Post Crm Deals · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of deal
- `attributes` (`string`, optional): Attributes for deal creation To assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID. If you want to create a deal on a specific pipeline and stage you can use the following attributes `pipeline` and `deal_stage`. Pipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`
- `linkedCompaniesIds` (`string`, optional): Company ids to be linked with deal
- `linkedContactsIds` (`string`, optional): Contact ids to be linked with deal

Example input: `{"name":"<name>"}`

### `brevomcp_deals_post_crm_deals_import`

Deals Post Crm Deals Import · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs: none.

Example input: `{}`

### `brevomcp_domains_authenticate_domain`

Domains Authenticate Domain · Write

Authenticates a specific domain.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domainName` (`string`, required): Domain name

Example input: `{"domainName":"<domainName>"}`

### `brevomcp_domains_create_domain`

Domains Create Domain · Write

Creates a new domain in Brevo.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Domain name to be added

Example input: `{"name":"<name>"}`

### `brevomcp_ecommerce_create_batch_order`

Ecommerce Create Batch Order · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `orders` (`string`, required): array of order objects
- `historical` (`string`, optional): Defines whether you want your orders to be considered as live data or as historical data (import of past data, synchronising data). True: orders will not trigger any automation workflows. False: orders will trigger workflows as usual.
- `notifyUrl` (`string`, optional): Webhook URL to receive the status of the batch request

Example input: `{"orders":"<orders>"}`

### `brevomcp_ecommerce_create_order`

Ecommerce Create Order · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`number`, required): Total amount of the order, including all shipping expenses, tax and the price of items.
- `createdAt` (`string`, required): Event occurrence UTC date-time (YYYY-MM-DDTHH:mm:ssZ), when order is actually created.
- `id` (`string`, required): Unique ID of the order.
- `products` (`string`, required): No description.
- `status` (`string`, required): State of the order.
- `updatedAt` (`string`, required): Event updated UTC date-time (YYYY-MM-DDTHH:mm:ssZ), when the status of the order is actually changed/updated.
- `billing` (`string`, optional): Billing details of an order.
- `coupons` (`string`, optional): Coupons applied to the order. Stored case insensitive.
- `identifiers` (`string`, optional): Identifies the contact associated with the order.
- `metaInfo` (`string`, optional): Meta data of order to store additional detail such as custom message, customer type, source.
- `storeId` (`string`, optional): ID of store where the order is placed

Example input: `{"amount":1,"createdAt":"<createdAt>","id":"<id>","products":"<products>","status":"<status>","updatedAt":"<updatedAt>"}`

### `brevomcp_ecommerce_post_activate`

Ecommerce Post Activate · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs: none.

Example input: `{}`

### `brevomcp_ecommerce_set_config_display_currency`

Ecommerce Set Config Display Currency · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `code` (`string`, required): ISO 4217 compliant display currency code

Example input: `{"code":"<code>"}`

### `brevomcp_email_campaign_management_create_email_campaign`

Email Campaign Management Create Email Campaign · Write

Create a new email campaign. The campaign requires at minimum a name and sender details, and is created in draft status by default.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the campaign
- `sender` (`string`, required): Sender details including id or email and name (optional). Only one of either Sender’s email or Sender’s ID shall be passed in one request at a time. Passing both `email` and `id` will result in an error. For example: {"name":"xyz", "email":"example@abc.com"} or {"name":"xyz", "id":123}
- `abTesting` (`string`, optional): Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. subjectA, subjectB, splitRule, winnerCriteria & winnerDelay will be considered when abTesting is set to true. subjectA & subjectB are mandatory together & subject if passed is ignored. Can be set to true only if sendAtBestTime is false. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B
- `attachmentUrl` (`string`, optional): Absolute url of the attachment (no local file). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps
- `emailExpirationDate` (`string`, optional): To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy. Learn more about setting an email expiration date. For reference , ``https://help.brevo.com/hc/en-us/articles/4413566705298-Create-an-email-campaign``
- `footer` (`string`, optional): Footer of the email campaign
- `header` (`string`, optional): Header of the email campaign
- `htmlContent` (`string`, optional): Mandatory if htmlUrl and templateId are empty. Body of the message (HTML). Must have more than 10 characters and be less than 1MB in size. Cannot be used together with `htmlUrl` or `templateId`.
- `htmlUrl` (`string`, optional): Mandatory if htmlContent and templateId are empty. URL to the message (HTML). Cannot be used together with `htmlContent` or `templateId`. For example: https://html.domain.com
- `increaseRate` (`string`, optional): Mandatory if ipWarmupEnable is set to true. Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.
- `initialQuota` (`string`, optional): Mandatory if ipWarmupEnable is set to true. Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.
- `inlineImageActivation` (`string`, optional): Use true to embedded the images in your email. Final size of the email should be less than 4MB. Campaigns with embedded images can _not be sent to more than 5000 contacts_
- `ipWarmupEnable` (`string`, optional): Available for dedicated ip clients. Set this to true if you wish to warm up your ip.
- `mirrorActive` (`string`, optional): Use true to enable the mirror link
- `params` (`string`, optional): Pass the set of attributes to customize the type classic campaign. For example: {"FNAME":"Joe", "LNAME":"Doe"}. Only available if type is classic. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of subject, htmlContent/htmlUrl, sender.name & toField
- `previewText` (`string`, optional): Preview text or preheader of the email campaign
- `recipients` (`string`, optional): Segment ids and List ids to include/exclude from campaign
- `replyTo` (`string`, optional): Email on which the campaign recipients will be able to reply to
- `scheduledAt` (`string`, optional): Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). For example: 2017-06-01T12:30:00+02:00
- `sendAtBestTime` (`string`, optional): Set this to true if you want to send your campaign at best time.
- `splitRule` (`string`, optional): Add the size of your test groups. Mandatory if abTesting = true & 'recipients' is passed. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else
- `subject` (`string`, optional): Subject of the campaign. Mandatory if abTesting is false. Ignored if abTesting is true.
- `subjectA` (`string`, optional): Subject A of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value
- `subjectB` (`string`, optional): Subject B of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value
- `tag` (`string`, optional): Tag of the campaign
- `templateId` (`string`, optional): Mandatory if htmlContent and htmlUrl are empty. Id of the transactional email template with status _active_. Used to copy only its content fetched from htmlContent/htmlUrl to an email campaign for RSS feature. Cannot be used together with `htmlContent` or `htmlUrl`.
- `toField` (`string`, optional): To personalize the To Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your Brevo account. If input parameter params used please use {{contact.FNAME}} {{contact.LNAME}} for personalization
- `unsubscriptionPageId` (`string`, optional): Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page. If not entered, then the default unsubscription page will be used.
- `updateFormId` (`string`, optional): Mandatory if templateId is used containing the {{ update_profile }} tag. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form. If not entered, then the default update profile form will be used.
- `utmCampaign` (`string`, optional): Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed
- `winnerCriteria` (`string`, optional): Choose the metrics that will determinate the winning version. Mandatory if _splitRule_ >= 1 and < 50. If splitRule = 50, `winnerCriteria` is ignored if passed
- `winnerDelay` (`string`, optional): Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. Mandatory if _splitRule_ >= 1 and < 50. If splitRule = 50, `winnerDelay` is ignored if passed

Example input: `{"name":"<name>","sender":"<sender>"}`

### `brevomcp_email_campaign_management_email_export_recipients`

Email Campaign Management Email Export Recipients · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `recipientsType` (`string`, required): Type of recipients to export for a campaign. One of: `all`, `nonClickers`, `nonOpeners`, `clickers`, `openers`, `softBounces`, `hardBounces`, `unsubscribed`.
- `notifyURL` (`string`, optional): Webhook called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479

Example input: `{"campaignId":1,"recipientsType":"all"}`

### `brevomcp_email_campaign_management_send_email_campaign_now`

Email Campaign Management Send Email Campaign Now · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign

Example input: `{"campaignId":1}`

### `brevomcp_email_campaign_management_send_report`

Email Campaign Management Send Report · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `email` (`string`, required): Custom attributes for the report email.
- `language` (`string`, optional): Language of email content for campaign report sending.

Example input: `{"campaignId":1,"email":"<email>"}`

### `brevomcp_email_campaign_management_send_test_email`

Email Campaign Management Send Test Email · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `emailTo` (`string`, optional): List of the email addresses of the recipients whom you wish to send the test mail. _If left empty, the test mail will be sent to your entire test list. You can not send more than 50 test emails per day_.

Example input: `{"campaignId":1}`

### `brevomcp_email_campaign_management_update_campaign_status`

Email Campaign Management Update Campaign Status · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `status` (`string`, optional): Note:- replicateTemplate status will be available only for template type campaigns.

Example input: `{"campaignId":1}`

### `brevomcp_email_campaign_management_update_email_campaign`

Email Campaign Management Update Email Campaign · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): Id of the campaign
- `abTesting` (`string`, optional): Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. subjectA, subjectB, splitRule, winnerCriteria & winnerDelay will be considered when abTesting is set to true. subjectA & subjectB are mandatory together & subject if passed is ignored. Can be set to true only if sendAtBestTime is false. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B
- `attachmentUrl` (`string`, optional): Absolute url of the attachment (no local file). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'
- `emailExpirationDate` (`string`, optional): To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy.
- `footer` (`string`, optional): Footer of the email campaign
- `header` (`string`, optional): Header of the email campaign
- `htmlContent` (`string`, optional): Body of the message (HTML version). If the campaign is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that campaign. REQUIRED if htmlUrl is empty
- `htmlUrl` (`string`, optional): Url which contents the body of the email message. REQUIRED if htmlContent is empty
- `increaseRate` (`string`, optional): Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.
- `initialQuota` (`string`, optional): Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.
- `inlineImageActivation` (`string`, optional): Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. You cannot send a campaign of more than 4MB with images embedded in the email. Campaigns with the images embedded in the email _must be sent to less than 5000 contacts_.
- `ipWarmupEnable` (`string`, optional): Available for dedicated ip clients. Set this to true if you wish to warm up your ip.
- `mirrorActive` (`string`, optional): Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign
- `name` (`string`, optional): Name of the campaign
- `params` (`string`, optional): Pass the set of attributes to customize the type classic campaign. For example: {"FNAME":"Joe", "LNAME":"Doe"}. Only available if type is classic. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of subject, htmlContent/htmlUrl, sender.name & toField
- `previewText` (`string`, optional): Preview text or preheader of the email campaign
- `recipients` (`string`, optional): Segment ids and List ids to include/exclude from campaign
- `recurring` (`string`, optional): FOR TRIGGER ONLY ! Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times
- `replyTo` (`string`, optional): Email on which campaign recipients will be able to reply to
- `scheduledAt` (`string`, optional): UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part).
- `sendAtBestTime` (`string`, optional): Set this to true if you want to send your campaign at best time. Note:- if true, warmup ip will be disabled.
- `sender` (`string`, optional): Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: {"name":"xyz", "email":"example@abc.com"} {"name":"xyz", "id":123}
- `splitRule` (`string`, optional): Add the size of your test groups. Mandatory if abTesting = true & 'recipients' is passed. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else
- `subject` (`string`, optional): Subject of the campaign
- `subjectA` (`string`, optional): Subject A of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value
- `subjectB` (`string`, optional): Subject B of the campaign. Mandatory if abTesting = true. subjectA & subjectB should have unique value
- `tag` (`string`, optional): Tag of the campaign
- `toField` (`string`, optional): To personalize the To Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your Brevo account. If input parameter params used please use {{contact.FNAME}} {{contact.LNAME}} for personalization
- `unsubscriptionPageId` (`string`, optional): Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page.
- `updateFormId` (`string`, optional): Mandatory if templateId is used containing the {{ update_profile }} tag. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form.
- `utmCampaign` (`string`, optional): Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed
- `winnerCriteria` (`string`, optional): Choose the metrics that will determinate the winning version. Mandatory if _splitRule_ >= 1 and < 50. If splitRule = 50, `winnerCriteria` is ignored if passed
- `winnerDelay` (`string`, optional): Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. Mandatory if _splitRule_ >= 1 and < 50. If splitRule = 50, `winnerDelay` is ignored if passed

Example input: `{"campaignId":1}`

### `brevomcp_email_campaign_management_upload_image_to_gallery`

Email Campaign Management Upload Image To Gallery · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `imageUrl` (`string`, required): The absolute url of the image (no local file). Maximum allowed size for image is 2MB. Allowed extensions for images are: #### jpeg, jpg, png, bmp, gif.
- `name` (`string`, optional): Name of the image.

Example input: `{"imageUrl":"<imageUrl>"}`

### `brevomcp_events_create_event`

Events Create Event · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `event_name` (`string`, required): The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters; only alphanumeric characters, hyphens (-), and underscores (_) are allowed.
- `identifiers` (`string`, required): Identifies the contact associated with the event. At least one identifier is required. Each identifier value is limited to 255 characters.
- `contact_properties` (`string`, optional): Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. Only string, number, and boolean values are accepted. For example: "FIRSTNAME": "Jane" , "AGE": 37
- `event_date` (`string`, optional): ISO 8601 / RFC 3339 timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). Cannot be in the future or before 1970-01-01. If no value is passed, the timestamp of the event creation is used.
- `event_properties` (`string`, optional): Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field types are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50 KB.
- `object` (`string`, optional): Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account. When provided, both `type` and at least one identifier (`ext_id` or `id`) are required.

Example input: `{"event_name":"<event_name>","identifiers":"<identifiers>"}`

### `brevomcp_external_feeds_create_external_feed`

External Feeds Create External Feed · Write

Creates a new external feed for dynamic content in email campaigns.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the feed
- `url` (`string`, required): URL of the external data source
- `authType` (`string`, optional): Authentication type for accessing the feed
- `cache` (`string`, optional): Whether to cache the feed response
- `headers` (`string`, optional): Custom HTTP headers for the feed request
- `maxRetries` (`string`, optional): Maximum number of retry attempts for failed requests
- `password` (`string`, optional): Password for basic authentication (required if authType is 'basic')
- `token` (`string`, optional): Token for token-based authentication (required if authType is 'token')
- `username` (`string`, optional): Username for basic authentication (required if authType is 'basic')

Example input: `{"name":"<name>","url":"<url>"}`

### `brevomcp_external_feeds_update_external_feed`

External Feeds Update External Feed · Write

Updates configuration of an existing external feed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): UUID of the feed to update
- `authType` (`string`, optional): Authentication type for accessing the feed
- `cache` (`string`, optional): Whether to cache the feed response
- `headers` (`string`, optional): Custom HTTP headers for the feed request. New headers are merged with existing ones (matching names are replaced).
- `maxRetries` (`string`, optional): Maximum number of retry attempts for failed requests
- `name` (`string`, optional): Name of the feed
- `password` (`string`, optional): Password for basic authentication
- `token` (`string`, optional): Token for token-based authentication
- `url` (`string`, optional): URL of the external data source
- `username` (`string`, optional): Username for basic authentication

Example input: `{"uuid":"<uuid>"}`

### `brevomcp_files_post_crm_files`

Files Post Crm Files · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs: none.

Example input: `{}`

### `brevomcp_folders_create_folder`

Folders Create Folder · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the folder

Example input: `{"name":"<name>"}`

### `brevomcp_folders_update_folder`

Folders Update Folder · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `folderId` (`integer`, required): Id of the folder
- `name` (`string`, required): Name of the folder

Example input: `{"folderId":1,"name":"<name>"}`

### `brevomcp_groups_post_corporate_group`

Groups Post Corporate Group · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `groupName` (`string`, required): The name of the group of sub-accounts
- `subAccountIds` (`string`, optional): Pass the list of sub-account Ids to be included in the group

Example input: `{"groupName":"<groupName>"}`

### `brevomcp_groups_put_corporate_group_by_id`

Groups Put Corporate Group By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the group
- `groupName` (`string`, optional): The name of the group of sub-accounts
- `subAccountIds` (`string`, optional): Pass the list of sub-account Ids to be included in the group

Example input: `{"id":"<id>"}`

### `brevomcp_groups_put_corporate_group_unlink_sub_accounts`

Groups Put Corporate Group Unlink Sub Accounts · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `groupId` (`string`, required): Group id
- `subAccountIds` (`string`, required): List of sub-account ids to remove from the group

Example input: `{"groupId":"<groupId>","subAccountIds":"<subAccountIds>"}`

### `brevomcp_lists_add_contact_to_list`

Lists Add Contact To List · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `listId` (`integer`, required): Id of the list
- `emails` (`string`, optional): Emails to add to a list. You can pass a maximum of 150 emails for addition in one request. _If you need to add the emails in bulk, please prefer /contacts/import api._
- `extIds` (`string`, optional): EXT_ID attributes to add to a list. You can pass a maximum of 150 EXT_ID attributes for addition in one request. _If you need to add the emails in bulk, please prefer /contacts/import api._
- `ids` (`string`, optional): IDs to add to a list. You can pass a maximum of 150 IDs for addition in one request. _If you need to add the emails in bulk, please prefer /contacts/import api._

Example input: `{"listId":1}`

### `brevomcp_lists_create_list`

Lists Create List · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `folderId` (`integer`, required): Id of the parent folder in which this list is to be created
- `name` (`string`, required): Name of the list

Example input: `{"folderId":1,"name":"<name>"}`

### `brevomcp_lists_remove_contact_from_list`

Lists Remove Contact From List · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `listId` (`integer`, required): Id of the list
- `all` (`string`, optional): Required if 'emails', 'extIds' and 'ids' are empty. Remove all existing contacts from a list. A process will be created in this scenario. You can fetch the process details to know about the progress
- `emails` (`string`, optional): Required if 'all' is false and 'ids', 'extIds' are empty. Emails to remove from a list. You can pass a maximum of 150 emails for removal in one request.
- `extIds` (`string`, optional): Required if 'all' is false, 'ids' and 'emails' are empty. EXT_ID attributes to remove from a list. You can pass a maximum of 150 EXT_ID attributes for removal in one request.
- `ids` (`string`, optional): Required if 'all' is false and 'emails', 'extIds' are empty. IDs to remove from a list. You can pass a maximum of 150 IDs for removal in one request.

Example input: `{"listId":1}`

### `brevomcp_lists_update_list`

Lists Update List · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `listId` (`integer`, required): Id of the list
- `folderId` (`string`, optional): Id of the folder in which the list is to be moved. Either of the two parameters (name, folderId) can be updated at a time.
- `name` (`string`, optional): Name of the list. Either of the two parameters (name, folderId) can be updated at a time.

Example input: `{"listId":1}`

### `brevomcp_loyalty_add_subscription_to_tier`

Loyalty Add Subscription To Tier · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `cid` (`integer`, required): Contact ID
- `pid` (`string`, required): Loyalty Program ID
- `tid` (`string`, required): Tier ID

Example input: `{"cid":1,"pid":"<pid>","tid":"<tid>"}`

### `brevomcp_loyalty_begin_transaction`

Loyalty Begin Transaction · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`number`, required): Transaction amount. A positive value creates a credit transaction and a negative value creates a debit transaction (unless transactionType is explicitly provided).
- `balanceDefinitionId` (`string`, required): Unique identifier (UUID) of the associated balance definition.
- `pid` (`string`, required): Loyalty Program Id
- `autoComplete` (`string`, optional): Whether the transaction should be automatically completed.
- `balanceExpiryInMinutes` (`string`, optional): Expiry time for the balance in minutes. Must be greater than 0 if provided. Only applicable when autoComplete is true.
- `contactId` (`string`, optional): Unique identifier of the contact involved in the transaction. Required unless `LoyaltySubscriptionId` is provided.
- `eventTime` (`string`, optional): Timestamp specifying when the transaction event occurred (ISO 8601 / RFC 3339 format).
- `LoyaltySubscriptionId` (`string`, optional): Unique identifier for the loyalty subscription. Required unless `contactId` is provided.
- `meta` (`string`, optional): Optional metadata associated with the transaction.
- `transactionType` (`string`, optional): Explicit transaction type. If not provided, the type is inferred from the sign of the amount (positive = credit, negative = debit).
- `ttl` (`string`, optional): Time-to-live for the transaction in seconds. Must be at least 10 seconds if provided.

Example input: `{"amount":1,"balanceDefinitionId":"<balanceDefinitionId>","pid":"<pid>"}`

### `brevomcp_loyalty_cancel_transaction`

Loyalty Cancel Transaction · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program Id
- `tid` (`string`, required): Transaction Id

Example input: `{"pid":"<pid>","tid":"<tid>"}`

### `brevomcp_loyalty_complete_redeem_transaction`

Loyalty Complete Redeem Transaction · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `tid` (`string`, required): Redeem transaction ID

Example input: `{"pid":"<pid>","tid":"<tid>"}`

### `brevomcp_loyalty_complete_transaction`

Loyalty Complete Transaction · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program Id
- `tid` (`string`, required): Transaction Id

Example input: `{"pid":"<pid>","tid":"<tid>"}`

### `brevomcp_loyalty_create_balance_limit`

Loyalty Create Balance Limit · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `constraintType` (`string`, required): Defines whether the limit applies to transaction count or amount. One of: `transaction`, `amount`.
- `durationUnit` (`string`, required): Unit of time for which the limit is applicable. One of: `hour`, `day`, `week`, `month`, `year`.
- `durationValue` (`integer`, required): Number of time units for the balance limit. Must be greater than zero.
- `pid` (`string`, required): Loyalty Program Id
- `transactionType` (`string`, required): Specifies whether the limit applies to credit or debit transactions. One of: `credit`, `debit`.
- `value` (`integer`, required): Maximum allowed value for the specified constraint type. Must be greater than zero.
- `slidingSchedule` (`string`, optional): Determines if the limit resets on a rolling schedule.

Example input: `{"bdid":"<bdid>","constraintType":"transaction","durationUnit":"hour","durationValue":1,"pid":"<pid>","transactionType":"credit","value":1}`

### `brevomcp_loyalty_create_balance_order`

Loyalty Create Balance Order · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`number`, required): Order amount (must be non-zero).
- `balanceDefinitionId` (`string`, required): Unique identifier (UUID) of the associated balance definition.
- `contactId` (`integer`, required): Unique identifier of the contact placing the order (must be ≥ 1).
- `dueAt` (`string`, required): RFC3339 timestamp specifying when the order is due.
- `pid` (`string`, required): Loyalty Program Id
- `source` (`string`, required): Specifies the origin of the order. One of: `engine`, `user`.
- `expiresAt` (`string`, optional): Optional RFC3339 timestamp defining order expiration.
- `meta` (`string`, optional): Optional metadata associated with the order.

Example input: `{"amount":1,"balanceDefinitionId":"<balanceDefinitionId>","contactId":1,"dueAt":"<dueAt>","pid":"<pid>","source":"engine"}`

### `brevomcp_loyalty_create_new_lp`

Loyalty Create New Lp · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Required name of the loyalty program (max 128 chars).
- `description` (`string`, optional): Optional description of the loyalty program (max 256 chars).
- `documentId` (`string`, optional): Optional unique document ID.
- `meta` (`string`, optional): Optional metadata related to the loyalty program.

Example input: `{"name":"<name>"}`

### `brevomcp_loyalty_create_reward`

Loyalty Create Reward · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Internal name of the reward
- `pid` (`string`, required): Loyalty Program ID
- `publicDescription` (`string`, optional): Public facing description of the reward
- `publicImage` (`string`, optional): URL of the public image for the reward
- `publicName` (`string`, optional): Public facing name of the reward

Example input: `{"name":"<name>","pid":"<pid>"}`

### `brevomcp_loyalty_create_tier_for_tier_group`

Loyalty Create Tier For Tier Group · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `accessConditions` (`string`, required): No description.
- `gid` (`string`, required): Tier group ID
- `name` (`string`, required): Name of the tier to be created
- `pid` (`string`, required): Loyalty Program ID
- `imageRef` (`string`, optional): Image of the tier
- `tierRewards` (`string`, optional): No description.

Example input: `{"accessConditions":"<accessConditions>","gid":"<gid>","name":"<name>","pid":"<pid>"}`

### `brevomcp_loyalty_create_tier_group`

Loyalty Create Tier Group · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the tier group
- `pid` (`string`, required): Loyalty Program ID
- `downgradeSchedule` (`string`, optional): Schedule configuration for tier downgrades. Required when downgradeStrategy is set to a schedule-based strategy.
- `downgradeStrategy` (`string`, optional): Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary.
- `meta` (`string`, optional): Additional metadata for the tier group.
- `tierOrder` (`string`, optional): Order of the tiers in the group in ascending order
- `upgradeSchedule` (`string`, optional): Schedule configuration for tier upgrades. Required when upgradeStrategy is set to a schedule-based strategy.
- `upgradeStrategy` (`string`, optional): Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary.

Example input: `{"name":"<name>","pid":"<pid>"}`

### `brevomcp_loyalty_create_voucher`

Loyalty Create Voucher · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `rewardId` (`string`, required): Reward id
- `code` (`string`, optional): Code generated to attribute reward to a contact
- `contactId` (`string`, optional): Contact to attribute the reward
- `expirationDate` (`string`, optional): Reward expiration date
- `loyaltySubscriptionId` (`string`, optional): One of contactId or loyaltySubscriptionId is required
- `meta` (`string`, optional): Offer meta information (key/value object)
- `validFrom` (`string`, optional): Date from which the voucher becomes valid. Accepts RFC 3339 or DD/MM/YYYY HH:MM AM/PM format. Converted to UTC using the organization's timezone.
- `value` (`string`, optional): Value of the selected reward config

Example input: `{"pid":"<pid>","rewardId":"<rewardId>"}`

### `brevomcp_loyalty_partially_update_loyalty_program`

Loyalty Partially Update Loyalty Program · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.
- `birthdayAttribute` (`string`, optional): Contact attribute name used for birthday tracking (max 128 characters).
- `description` (`string`, optional): Loyalty program description (max 256 characters).
- `documentId` (`string`, optional): Optional document identifier.
- `meta` (`string`, optional): Loyalty program metadata.
- `name` (`string`, optional): Loyalty program name (max 128 characters).

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_post_balance_programs_balance_definitions`

Loyalty Post Balance Programs Balance Definitions · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the balance definition.
- `pid` (`string`, required): Loyalty Program Id
- `unit` (`string`, required): Unit of balance measurement. One of: `POINTS`, `EUR`, `USD`, `MXN`, `GBP`, `INR`, `CAD`, `SGD`, `RON`, `JPY`, `MYR`, `CLP`, `PEN`, `MAD`, `AUD`, `CHF`, `BRL`.
- `balanceAvailabilityDurationModifier` (`string`, optional): Defines when the balance expires within the selected duration.
- `balanceAvailabilityDurationUnit` (`string`, optional): Unit of time for balance validity.
- `balanceAvailabilityDurationValue` (`string`, optional): Number of time units before the balance expires.
- `balanceExpirationDate` (`string`, optional): Fixed expiration date (`dd/mm` format) as an alternative to duration-based expiry. Cannot be combined with duration-based availability fields.
- `balanceOptionAmountOvertakingStrategy` (`string`, optional): Defines whether partial credit is allowed when reaching max balance.
- `balanceOptionCreditRounding` (`string`, optional): Defines rounding strategy for credit transactions.
- `balanceOptionDebitRounding` (`string`, optional): Defines rounding strategy for debit transactions.
- `description` (`string`, optional): Short description of the balance definition.
- `imageRef` (`string`, optional): URL of an optional image reference.
- `maxAmount` (`string`, optional): Maximum allowable balance amount.
- `maxCreditAmountLimit` (`string`, optional): Maximum credit allowed per operation.
- `maxDebitAmountLimit` (`string`, optional): Maximum debit allowed per operation.
- `meta` (`string`, optional): Additional metadata for the balance definition.
- `minAmount` (`string`, optional): Minimum allowable balance amount.

Example input: `{"name":"<name>","pid":"<pid>","unit":"POINTS"}`

### `brevomcp_loyalty_post_balance_programs_subscriptions_balances`

Loyalty Post Balance Programs Subscriptions Balances · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `balanceDefinitionId` (`string`, required): Unique identifier (UUID) of the balance definition associated with the new balance.
- `cid` (`string`, required): Contact Id
- `pid` (`string`, required): Loyalty Program Id

Example input: `{"balanceDefinitionId":"<balanceDefinitionId>","cid":"<cid>","pid":"<pid>"}`

### `brevomcp_loyalty_publish_loyalty_program`

Loyalty Publish Loyalty Program · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_redeem_voucher`

Loyalty Redeem Voucher · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `attributedRewardId` (`string`, optional): Unique identifier for the attributed reward
- `autoComplete` (`string`, optional): Whether the redemption should be automatically completed
- `code` (`string`, optional): Redemption code for the reward
- `contactId` (`string`, optional): Unique identifier for the contact
- `loyaltySubscriptionId` (`string`, optional): Identifier for the loyalty subscription
- `meta` (`string`, optional): Additional metadata associated with the redeem request
- `order` (`string`, optional): Order details for the redemption
- `rewardId` (`string`, optional): Unique identifier for the reward
- `ttl` (`string`, optional): Time to live in seconds for the redemption request

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_subscribe_member_to_a_subscription`

Loyalty Subscribe Member To A Subscription · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `memberContactIds` (`string`, required): Required, each item must be greater than or equal to 1
- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.
- `contactId` (`string`, optional): Required if LoyaltySubscriptionId is not provided, must be greater than 0
- `loyaltySubscriptionId` (`string`, optional): Required if ContactId is not provided, max length 64

Example input: `{"memberContactIds":"<memberContactIds>","pid":"<pid>"}`

### `brevomcp_loyalty_subscribe_to_loyalty_program`

Loyalty Subscribe To Loyalty Program · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contactId` (`integer`, required): Required contact ID; must be greater than 0.
- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.
- `creationDate` (`string`, optional): Optional creation date in ISO 8601 format (YYYY-MM-DDThh:mm:ss.ffffff+HH:MM). Must be in the past.
- `loyaltySubscriptionId` (`string`, optional): Optional subscription ID (max length 64).
- `meta` (`string`, optional): Optional metadata associated with the subscription.

Example input: `{"contactId":1,"pid":"<pid>"}`

### `brevomcp_loyalty_update_balance_definition`

Loyalty Update Balance Definition · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `name` (`string`, required): Name of the balance definition.
- `pid` (`string`, required): Loyalty Program Id
- `unit` (`string`, required): Unit of balance measurement. One of: `POINTS`, `EUR`, `USD`, `MXN`, `GBP`, `INR`, `CAD`, `SGD`, `RON`, `JPY`, `MYR`, `CLP`, `PEN`, `MAD`, `AUD`, `CHF`, `BRL`.
- `balanceAvailabilityDurationModifier` (`string`, optional): Defines when the balance expires within the selected duration.
- `balanceAvailabilityDurationUnit` (`string`, optional): Unit of time for balance validity.
- `balanceAvailabilityDurationValue` (`string`, optional): Number of time units before the balance expires.
- `balanceExpirationDate` (`string`, optional): Expiration date (`dd/mm` format) or empty if not applicable.
- `balanceOptionAmountOvertakingStrategy` (`string`, optional): Defines whether partial credit is allowed when reaching max balance.
- `balanceOptionCreditRounding` (`string`, optional): Rounding strategy for credit transactions.
- `balanceOptionDebitRounding` (`string`, optional): Rounding strategy for debit transactions.
- `description` (`string`, optional): Short description of the balance definition.
- `imageRef` (`string`, optional): URL of an optional image reference.
- `maxAmount` (`string`, optional): Maximum allowable balance amount.
- `maxCreditAmountLimit` (`string`, optional): Maximum credit allowed per operation.
- `maxDebitAmountLimit` (`string`, optional): Maximum debit allowed per operation.
- `meta` (`string`, optional): Optional metadata for the balance definition.
- `minAmount` (`string`, optional): Minimum allowable balance amount.

Example input: `{"bdid":"<bdid>","name":"<name>","pid":"<pid>","unit":"POINTS"}`

### `brevomcp_loyalty_update_balance_limit`

Loyalty Update Balance Limit · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `blid` (`string`, required): Balance Limit Id
- `constraintType` (`string`, required): Defines whether the limit applies to transaction count or amount. One of: `transaction`, `amount`.
- `durationUnit` (`string`, required): Unit of time for which the limit is applicable. One of: `hour`, `day`, `week`, `month`, `year`.
- `durationValue` (`integer`, required): Number of time units for the balance limit. Must be greater than zero.
- `pid` (`string`, required): Loyalty Program Id
- `transactionType` (`string`, required): Specifies whether the limit applies to credit or debit transactions. One of: `credit`, `debit`.
- `value` (`integer`, required): Maximum allowed value for the specified constraint type. Must be greater than zero.
- `slidingSchedule` (`string`, optional): Determines if the limit resets on a rolling schedule.

Example input: `{"bdid":"<bdid>","blid":"<blid>","constraintType":"transaction","durationUnit":"hour","durationValue":1,"pid":"<pid>","transactionType":"credit","value":1}`

### `brevomcp_loyalty_update_loyalty_program`

Loyalty Update Loyalty Program · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `name` (`string`, required): Loyalty Program name
- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.
- `description` (`string`, optional): Loyalty Program description
- `meta` (`string`, optional): Loyalty Program meta data

Example input: `{"name":"<name>","pid":"<pid>"}`

### `brevomcp_loyalty_update_tier`

Loyalty Update Tier · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `accessConditions` (`string`, required): No description.
- `name` (`string`, required): Name of the tier to be created
- `pid` (`string`, required): Loyalty Program ID
- `tid` (`string`, required): Tier ID
- `tierRewards` (`string`, required): No description.
- `imageRef` (`string`, optional): Image of the tier

Example input: `{"accessConditions":"<accessConditions>","name":"<name>","pid":"<pid>","tid":"<tid>","tierRewards":"<tierRewards>"}`

### `brevomcp_loyalty_update_tier_group`

Loyalty Update Tier Group · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `downgradeStrategy` (`string`, required): Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary. One of: `real_time`, `membership_anniversary`, `tier_anniversary`.
- `gid` (`string`, required): Tier group ID
- `name` (`string`, required): Name of the tier group
- `pid` (`string`, required): Loyalty Program ID
- `tierOrder` (`string`, required): Order of the tiers in the group in ascending order
- `upgradeStrategy` (`string`, required): Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary. One of: `real_time`, `membership_anniversary`, `tier_anniversary`.
- `meta` (`string`, optional): Additional metadata for the tier group.

Example input: `{"downgradeStrategy":"real_time","gid":"<gid>","name":"<name>","pid":"<pid>","tierOrder":"<tierOrder>","upgradeStrategy":"real_time"}`

### `brevomcp_loyalty_validate_reward`

Loyalty Validate Reward · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `attributedRewardId` (`string`, optional): Unique identifier for the attributed reward
- `code` (`string`, optional): Validation code for the reward
- `contactId` (`string`, optional): Unique identifier for the contact
- `loyaltySubscriptionId` (`string`, optional): Identifier for the loyalty subscription
- `pointOfSellId` (`string`, optional): Identifier for the point of sale
- `rewardId` (`string`, optional): Unique identifier for the reward

Example input: `{"pid":"<pid>"}`

### `brevomcp_notes_patch_crm_notes_by_id`

Notes Patch Crm Notes By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Note ID to update
- `text` (`string`, required): Text content of the note. Supports HTML content. Must not be empty and cannot exceed 10,000 characters (excluding HTML tags and line breaks).
- `companyIds` (`string`, optional): Company IDs to link to the note
- `contactIds` (`string`, optional): Contact IDs to link to the note. For creation, at least one entity (contact, company, or deal) must be provided.
- `dealIds` (`string`, optional): Deal IDs to link to the note
- `isPinned` (`string`, optional): Whether to pin or unpin the note. Only applicable when updating a note.

Example input: `{"id":"<id>","text":"<text>"}`

### `brevomcp_notes_post_crm_notes`

Notes Post Crm Notes · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `text` (`string`, required): Text content of the note. Supports HTML content. Must not be empty and cannot exceed 10,000 characters (excluding HTML tags and line breaks).
- `companyIds` (`string`, optional): Company IDs to link to the note
- `contactIds` (`string`, optional): Contact IDs to link to the note. For creation, at least one entity (contact, company, or deal) must be provided.
- `dealIds` (`string`, optional): Deal IDs to link to the note
- `isPinned` (`string`, optional): Whether to pin or unpin the note. Only applicable when updating a note.

Example input: `{"text":"<text>"}`

### `brevomcp_objects_batch_delete_object_records`

Objects Batch Delete Object Records · Write

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**.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `object_type` (`string`, required): Object type for the records to delete
- `identifiers` (`string`, optional): Either `ids` or `ext_ids` must be provided, but not both in the same request.

Example input: `{"object_type":"<object_type>"}`

### `brevomcp_objects_upsertrecords`

Objects Upsertrecords · Write

This API allows bulk upsert of object records in a single request. Each object record may include attributes, identifiers, and associations.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `object_type` (`string`, required): Object type for the records to upsert. Must be a previously created custom object type. Only lowercase alphanumeric characters and underscores are allowed (max 32 characters).
- `records` (`string`, required): List of object records to be upsert. Each record can have attributes, identifiers, and associations.

Example input: `{"object_type":"<object_type>","records":"<records>"}`

### `brevomcp_payments_create_payment_request`

Payments Create Payment Request · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `cart` (`string`, required): Specify the payment currency and amount.
- `contactId` (`integer`, required): Brevo ID of the contact requested to pay.
- `reference` (`string`, required): Reference of the payment request, it will appear on the payment page.
- `configuration` (`string`, optional): Optional. Redirect contact to a custom success page once payment is successful. If empty the default Brevo page will be displayed once a payment is validated
- `description` (`string`, optional): Description of payment request.
- `notification` (`string`, optional): Optional. Use this object if you want to let Brevo send an email to the contact, with the payment request URL. If empty, no notifications (message and reminders) will be sent.

Example input: `{"cart":"<cart>","contactId":1,"reference":"<reference>"}`

### `brevomcp_products_create_product_alert`

Products Create Product Alert · Write

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`.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Product ID
- `type` (`string`, required): Alert type
- `contactIdentifiers` (`string`, optional): No description.

Example input: `{"id":"<id>","type":"<type>"}`

### `brevomcp_products_create_update_batch_products`

Products Create Update Batch Products · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `products` (`string`, required): array of products objects
- `updateEnabled` (`string`, optional): Facilitate to update the existing products in the same request (updateEnabled = true)

Example input: `{"products":"<products>"}`

### `brevomcp_products_create_update_product`

Products Create Update Product · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Product ID for which you requested the details
- `alternativePrice` (`string`, optional): Alternative price of the product
- `brand` (`string`, optional): Brand of the product
- `categories` (`string`, optional): Category ID-s of the product
- `deletedAt` (`string`, optional): UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the product deleted from the shop's database
- `description` (`string`, optional): Description of the product
- `imageUrl` (`string`, optional): Absolute URL to the cover image of the product
- `isDeleted` (`string`, optional): product deleted from the shop's database
- `metaInfo` (`string`, optional): Meta data of product such as description, vendor, producer, stock level. Maximum 20 keys allowed. Each key name must be at most 50 characters, and each string value must be at most 1000 characters. The cumulative size of all metaInfo must not exceed approximately 1000 KB.
- `name` (`string`, optional): Mandatory in case of creation. Name of the product, as displayed in the shop
- `parentId` (`string`, optional): Parent product id of the product
- `price` (`string`, optional): Price of the product
- `sku` (`string`, optional): Product identifier from the shop
- `stock` (`string`, optional): Current stock value of the product from the shop's database
- `updateEnabled` (`string`, optional): Facilitate to update the existing product in the same request (updateEnabled = true)
- `url` (`string`, optional): URL to the product

Example input: `{"id":"<id>"}`

### `brevomcp_senders_create_sender`

Senders Create Sender · Write

Creates a new email sender in your Brevo account. Both `name` and `email` are required fields.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email` (`string`, required): From email to use for the sender. A verification email will be sent to this address.
- `name` (`string`, required): From Name to use for the sender
- `ips` (`string`, optional): Mandatory in case of dedicated IP. IPs to associate to the sender. Not required for standard accounts.

Example input: `{"email":"<email>","name":"<name>"}`

### `brevomcp_senders_update_sender`

Senders Update Sender · Write

Updates an existing email sender's configuration. At least one field (name, email, or ips) must be provided.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `senderId` (`integer`, required): Id of the sender
- `email` (`string`, optional): From Email to update the sender
- `ips` (`string`, optional): Only in case of dedicated IP. IPs to associate to the sender. If passed, will replace all the existing IPs. Not required for standard accounts.
- `name` (`string`, optional): From Name to update the sender

Example input: `{"senderId":1}`

### `brevomcp_senders_validate_sender_by_otp`

Senders Validate Sender By Otp · Write

Validates a sender using the OTP (One-Time Password) received via email.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `otp` (`integer`, required): 6 digit OTP received on email
- `senderId` (`integer`, required): Id of the sender

Example input: `{"otp":1,"senderId":1}`

### `brevomcp_sms_campaigns_create_sms_campaign`

Sms Campaigns Create Sms Campaign · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `content` (`string`, required): Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS.
- `name` (`string`, required): Name of the campaign
- `sender` (`string`, required): Name of the sender. The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters
- `organisationPrefix` (`string`, optional): A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.
- `recipients` (`string`, optional): No description.
- `scheduledAt` (`string`, optional): UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `unicodeEnabled` (`string`, optional): Format of the message. It indicates whether the content should be treated as unicode or not.
- `unsubscribeInstruction` (`string`, optional): Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include STOP keyword. This will be added as instructions after the end of message content. Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.

Example input: `{"content":"<content>","name":"<name>","sender":"<sender>"}`

### `brevomcp_sms_campaigns_request_sms_recipient_export`

Sms Campaigns Request Sms Recipient Export · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): id of the campaign
- `recipientsType` (`string`, required): Filter the recipients based on how they interacted with the campaign. One of: `all`, `delivered`, `answered`, `softBounces`, `hardBounces`, `unsubscribed`.
- `notifyURL` (`string`, optional): URL that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479

Example input: `{"campaignId":1,"recipientsType":"all"}`

### `brevomcp_sms_campaigns_send_sms_campaign_now`

Sms Campaigns Send Sms Campaign Now · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): id of the campaign

Example input: `{"campaignId":1}`

### `brevomcp_sms_campaigns_send_sms_report`

Sms Campaigns Send Sms Report · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): id of the campaign
- `email` (`string`, required): Custom attributes for the report email.
- `language` (`string`, optional): Language of email content for campaign report sending.

Example input: `{"campaignId":1,"email":"<email>"}`

### `brevomcp_sms_campaigns_send_test_sms`

Sms Campaigns Send Test Sms · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaignId` (`integer`, required): Id of the SMS campaign
- `phoneNumber` (`string`, required): Mobile number of the recipient with the country code. This number must belong to one of your contacts in Brevo account and must not be blacklisted. The number must contain between 6 and 18 digits including the country code (e.g. 33689965433).

Example input: `{"campaignId":1,"phoneNumber":"<phoneNumber>"}`

### `brevomcp_sms_campaigns_update_sms_campaign`

Sms Campaigns Update Sms Campaign · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the SMS campaign
- `content` (`string`, optional): Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS
- `name` (`string`, optional): Name of the campaign
- `organisationPrefix` (`string`, optional): A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.
- `recipients` (`string`, optional): No description.
- `scheduledAt` (`string`, optional): UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `sender` (`string`, optional): Name of the sender. The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters
- `unicodeEnabled` (`string`, optional): Format of the message. It indicates whether the content should be treated as unicode or not.
- `unsubscribeInstruction` (`string`, optional): Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include STOP keyword. This will be added as instructions after the end of message content. Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.

Example input: `{"campaignId":1}`

### `brevomcp_sms_campaigns_update_sms_campaign_status`

Sms Campaigns Update Sms Campaign Status · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the campaign
- `status` (`string`, optional): Note:- replicateTemplate status will be available only for template type campaigns.

Example input: `{"campaignId":1}`

### `brevomcp_tasks_patch_crm_tasks_by_id`

Tasks Patch Crm Tasks By Id · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Task ID
- `assignToId` (`string`, optional): To assign a task to a user you can use either the account email or ID.
- `companiesIds` (`string`, optional): Companies ids for companies a task is linked to
- `contactsIds` (`string`, optional): Contact ids for contacts linked to this task
- `date` (`string`, optional): Task date/time
- `dealsIds` (`string`, optional): Deal ids for deals a task is linked to
- `done` (`string`, optional): Task marked as done
- `duration` (`string`, optional): Duration of task in milliseconds [1 minute = 60000 ms]
- `name` (`string`, optional): Name of task
- `notes` (`string`, optional): Notes added to a task
- `reminder` (`string`, optional): Task reminder date/time for a task
- `taskTypeId` (`string`, optional): Id for type of task e.g Call / Email / Meeting etc.

Example input: `{"id":"<id>"}`

### `brevomcp_tasks_post_crm_tasks`

Tasks Post Crm Tasks · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `date` (`string`, required): Task due date and time
- `name` (`string`, required): Name of task
- `taskTypeId` (`string`, required): Id for type of task e.g Call / Email / Meeting etc.
- `assignToId` (`string`, optional): To assign a task to a user you can use either the account email or ID.
- `companiesIds` (`string`, optional): Companies ids for companies a task is linked to
- `contactsIds` (`string`, optional): Contact ids for contacts linked to this task
- `dealsIds` (`string`, optional): Deal ids for deals a task is linked to
- `done` (`string`, optional): Task marked as done
- `duration` (`string`, optional): Duration of task in milliseconds [1 minute = 60000 ms]
- `notes` (`string`, optional): Notes added to a task
- `reminder` (`string`, optional): Task reminder date/time for a task

Example input: `{"date":"<date>","name":"<name>","taskTypeId":"<taskTypeId>"}`

### `brevomcp_templates_create_smtp_template`

Templates Create Smtp Template · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `sender` (`string`, required): Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: {"name":"xyz", "email":"example@abc.com"} {"name":"xyz", "id":123}
- `subject` (`string`, required): Subject of the template
- `templateName` (`string`, required): Name of the template
- `attachmentUrl` (`string`, optional): Absolute url of the attachment (no local file). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'
- `htmlContent` (`string`, optional): Body of the message (HTML version). The field must have more than 10 characters. REQUIRED if htmlUrl is empty
- `htmlUrl` (`string`, optional): Url which contents the body of the email message. REQUIRED if htmlContent is empty
- `isActive` (`string`, optional): Status of template. isActive = true means template is active and isActive = false means template is inactive
- `replyTo` (`string`, optional): Email on which campaign recipients will be able to reply to
- `tag` (`string`, optional): Tag of the template
- `toField` (`string`, optional): To personalize the To Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your Brevo account. If input parameter params used please use {{contact.FNAME}} {{contact.LNAME}} for personalization

Example input: `{"sender":"<sender>","subject":"<subject>","templateName":"<templateName>"}`

### `brevomcp_templates_post_preview_smtp_email_templates`

Templates Post Preview Smtp Email Templates · Write

Generate a fully rendered preview of a transactional email template by resolving dynamic variables.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `templateId` (`integer`, required): Id of the template.
- `email` (`string`, optional): Email of the contact.(Required if params not provided)
- `params` (`string`, optional): Key-value pairs of dynamic parameters for template rendering.(Required if email not provided) For example: {"Firstname":"John", "Lastname":"Doe"}

Example input: `{"templateId":1}`

### `brevomcp_templates_send_test_template`

Templates Send Test Template · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `templateId` (`integer`, required): ID of the transactional template to send as a test. Must be a valid positive integer.
- `emailTo` (`string`, optional): List of the email addresses of the recipients whom you wish to send the test mail. _If left empty, the test mail will be sent to your entire test list. You can not send more than 50 test emails per day_.

Example input: `{"templateId":1}`

### `brevomcp_templates_update_smtp_template`

Templates Update Smtp Template · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `templateId` (`string`, required): ID of the template. Can be a numeric template ID or a custom template identifier string.
- `attachmentUrl` (`string`, optional): Absolute url of the attachment (no local file). Extensions allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps
- `htmlContent` (`string`, optional): Required if htmlUrl is empty. If the template is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that template. Body of the message (HTML must have more than 10 characters)
- `htmlUrl` (`string`, optional): Required if htmlContent is empty. URL to the body of the email (HTML)
- `isActive` (`string`, optional): Status of the template. isActive = false means template is inactive, isActive = true means template is active
- `replyTo` (`string`, optional): Email on which campaign recipients will be able to reply to
- `sender` (`string`, optional): Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: {"name":"xyz", "email":"example@abc.com"} {"name":"xyz", "id":123}
- `subject` (`string`, optional): Subject of the email
- `tag` (`string`, optional): Tag of the template
- `templateName` (`string`, optional): Name of the template
- `toField` (`string`, optional): To personalize the To Field. If you want to include the first name and last name of your recipient, add {FNAME} {LNAME}. These contact attributes must already exist in your Brevo account. If input parameter params used please use {{contact.FNAME}} {{contact.LNAME}} for personalization

Example input: `{"templateId":"<templateId>"}`

### `brevomcp_transac_templates_block_new_domain`

Transac Templates Block New Domain · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `domain` (`string`, required): name of the domain to be blocked

Example input: `{"domain":"<domain>"}`

### `brevomcp_transac_templates_delete_hardbounces`

Transac Templates Delete Hardbounces · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contactEmail` (`string`, optional): Target a specific email address
- `endDate` (`string`, optional): Ending date (YYYY-MM-DD) of the time period for deletion. The hardbounces until this date will be deleted. Must be greater than or equal to the startDate
- `startDate` (`string`, optional): Starting date (YYYY-MM-DD) of the time period for deletion. The hardbounces occurred after this date will be deleted. Must be less than or equal to the endDate

Example input: `{}`

### `brevomcp_transac_templates_send_async_transactional_sms`

Transac Templates Send Async Transactional Sms · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `recipient` (`string`, required): Mobile number to send SMS with the country code. Must contain between 6 and 15 digits, optionally prefixed with '+'.
- `sender` (`string`, required): Name of the sender. The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters. Alphanumeric sender names (up to 11 characters) must contain only letters and digits. Numeric sender names (12-15 characters) must contain only digits.
- `content` (`string`, optional): Content of the message. If more than 160 characters long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
- `organisationPrefix` (`string`, optional): A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.
- `params` (`string`, optional): Pass the set of attributes to customize the template. For example, {"FNAME":"Joe", "LNAME":"Doe"}. These are the placeholder variables in the template that will be replaced with the corresponding values passed in the params object. Applicable only if `templateId` is used.
- `tag` (`string`, optional): Tag of the message. Can be a single string or an array of strings (maximum 10 tags). Each tag must be a non-empty string.
- `templateId` (`string`, optional): Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
- `type` (`string`, optional): Type of the SMS. Marketing SMS messages are those sent typically with marketing content. Transactional SMS messages are sent to individuals and are triggered in response to some action, such as a sign-up, purchase, etc.
- `unicodeEnabled` (`string`, optional): Format of the message. It indicates whether the content should be treated as unicode or not.
- `webUrl` (`string`, optional): Webhook to call for each event triggered by the message (delivered etc.)

Example input: `{"recipient":"<recipient>","sender":"<sender>"}`

### `brevomcp_transac_templates_send_transac_email`

Transac Templates Send Transac Email · Write

Send a transactional email to one or more recipients, either using inline HTML content or a pre-built template via `templateId`.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attachment` (`string`, optional): Array of attachment objects. Each attachment must include either an absolute URL (no local file paths) or base64-encoded content, along with the attachment filename. The `name` field is required when `content` is provided. Supported file extensions: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub, eps, odt, mp3, m4a, m4v, wma, ogg, flac, wav, aif, aifc, aiff, mp4, mov, avi, mkv, mpeg, mpg, wmv, pkpass, xlsm. When `templateId` is specified: if the template uses the New Template Language format, both `url` and `content` attachment types are supported; if the template uses the Old Template Language format, the `attachment` parameter is ignored.
- `batchId` (`string`, optional): UUIDv4 identifier for the scheduled batch of transactional emails. If omitted, a valid UUIDv4 batch identifier is automatically generated.
- `bcc` (`string`, optional): Array of BCC recipient objects. Each object contains an email address and an optional name.
- `cc` (`string`, optional): Array of CC recipient objects. Each object contains an email address and an optional name.
- `headers` (`string`, optional): Custom email headers (non-standard headers) to include in the email. The `sender.ip` header can be set to specify the IP address used for sending transactional emails (dedicated IP users only). Header names must use Title-Case-Format (words separated by hyphens with the first letter of each word capitalized). Headers not in this format are automatically converted. Standard email headers are not supported. Example: `{"sender.ip":"1.2.3.4", "X-Mailin-custom":"some_custom_value", "Idempotency-Key":"abc-123"}`
- `htmlContent` (`string`, optional): HTML body content of the email. Required when `templateId` is not provided. Ignored when `templateId` is provided.
- `messageVersions` (`string`, optional): Array of message version objects for sending customized email variants. The `templateId` can be customized per version only if a global `templateId` is provided. The `htmlContent` and `textContent` can be customized per version only if at least one of these is present in the global parameters. Global parameters such as `to` (required), `bcc`, `cc`, `replyTo`, and `subject` can be customized per version. Maximum total recipients per API request is 2000. Maximum recipients per message version is 99. Individual `params` objects must not exceed 100 KB. Cumulative `params` across all versions must not exceed 1000 KB. See https://developers.brevo.com/docs/batch-send-transactional-emails for detailed usage instructions.
- `params` (`string`, optional): Key-value pairs for template variable substitution. Only applicable when the template uses the New Template Language format.
- `replyTo` (`string`, optional): Reply-to email address (required) and optional display name. Recipients will use this address when replying to the email.
- `scheduledAt` (`string`, optional): UTC date-time when the email should be sent (format: YYYY-MM-DDTHH:mm:ss.SSSZ). Include timezone information in the date-time value. Scheduled emails may be delayed by up to 5 minutes.
- `sender` (`string`, optional): Sender information. Required when `templateId` is not provided. Specify either an email address (with optional name) or a sender ID. The `name` field is ignored when `id` is provided.
- `subject` (`string`, optional): Email subject line. Required when `templateId` is not provided.
- `tags` (`string`, optional): Array of tags for categorizing and filtering emails
- `templateId` (`string`, optional): Template identifier
- `textContent` (`string`, optional): Plain text body content of the email. Ignored when `templateId` is provided.
- `to` (`string`, optional): Array of recipient objects. Each object contains an email address and an optional display name. Required when `messageVersions` is not provided. Ignored when `messageVersions` is provided. Example: `[{"name":"Jimmy", "email":"jimmy@example.com"}, {"name":"Joe", "email":"joe@example.com"}]`

Example input: `{}`

### `brevomcp_transac_templates_send_transac_sms`

Transac Templates Send Transac Sms · Write

Send a transactional SMS message to a single mobile number. The `sender`, `recipient`, and either `content` or `templateId` fields are required.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `recipient` (`string`, required): Mobile number to send SMS with the country code. Must contain between 6 and 15 digits, optionally prefixed with '+'.
- `sender` (`string`, required): Name of the sender. The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters. Alphanumeric sender names (up to 11 characters) must contain only letters and digits. Numeric sender names (12-15 characters) must contain only digits.
- `content` (`string`, optional): Content of the message. If more than 160 characters long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
- `organisationPrefix` (`string`, optional): A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.
- `params` (`string`, optional): Pass the set of attributes to customize the template. For example, {"FNAME":"Joe", "LNAME":"Doe"}. These are the placeholder variables in the template that will be replaced with the corresponding values passed in the params object. Applicable only if `templateId` is used.
- `tag` (`string`, optional): Tag of the message. Can be a single string or an array of strings (maximum 10 tags). Each tag must be a non-empty string.
- `templateId` (`string`, optional): Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
- `type` (`string`, optional): Type of the SMS. Marketing SMS messages are those sent typically with marketing content. Transactional SMS messages are sent to individuals and are triggered in response to some action, such as a sign-up, purchase, etc.
- `unicodeEnabled` (`string`, optional): Format of the message. It indicates whether the content should be treated as unicode or not.
- `webUrl` (`string`, optional): Webhook to call for each event triggered by the message (delivered etc.)

Example input: `{"recipient":"<recipient>","sender":"<sender>"}`

### `brevomcp_users_edit_user_permission`

Users Edit User Permission · Write

Updates the feature-level permissions for an existing user in the organization.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `all_features_access` (`string`, required): All access to the features
- `email` (`string`, required): Email address for the organization
- `privileges` (`string`, required): No description.

Example input: `{"all_features_access":"<all_features_access>","email":"<email>","privileges":"<privileges>"}`

### `brevomcp_users_inviteuser`

Users Inviteuser · Write

Invite a new user to the organization with specified feature permissions.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `all_features_access` (`string`, required): All access to the features
- `email` (`string`, required): Email address for the organization
- `privileges` (`string`, required): No description.

Example input: `{"all_features_access":"<all_features_access>","email":"<email>","privileges":"<privileges>"}`

### `brevomcp_users_put_revoke_user_permission`

Users Put Revoke User Permission · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Email of the invited user.

Example input: `{"email":"<email>"}`

### `brevomcp_users_putresendcancelinvitation`

Users Putresendcancelinvitation · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action` (`string`, required): action. One of: `resend`, `cancel`.
- `email` (`string`, required): Email of the invited user.

Example input: `{"action":"resend","email":"<email>"}`

### `brevomcp_webhooks_management_create_webhook`

Webhooks Management Create Webhook · Write

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).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `url` (`string`, required): URL of the webhook
- `auth` (`string`, optional): Add authentication on webhook url
- `batched` (`string`, optional): To send batched webhooks
- `channel` (`string`, optional): Channel of the webhook
- `description` (`string`, optional): Description of the webhook
- `domain` (`string`, optional): Inbound domain of webhook, required in case of event type `inbound`
- `events` (`string`, optional): Events triggering the webhook. Required for transactional and marketing types, optional for inbound type (defaults to `inboundEmailProcessed`). Possible values for Transactional type webhook: `sent` OR `request`, `delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and `unsubscribed`. Possible values for Marketing type webhook: `spam`, `opened`, `click`, `hardBounce`, `softBounce`, `unsubscribed`, `listAddition`, `delivered`, `contactUpdated` & `contactDeleted`. Possible values for Inbound type webhook: `inboundEmailProcessed`.
- `headers` (`string`, optional): Custom headers to be send with webhooks
- `type` (`string`, optional): Type of the webhook

Example input: `{"url":"<url>"}`

### `brevomcp_webhooks_management_export_webhooks_history`

Webhooks Management Export Webhooks History · Write

Exports webhook event history to CSV format for analysis and reporting.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `event` (`string`, required): Filter the history for a specific event type. One of: `invalid_parameter`, `missing_parameter`, `hardBounce`, `softBounce`, `delivered`, `spam`, `request`, `opened`, `click`, `invalid`, `deferred`, `blocked`, `unsubscribed`, `error`, `uniqueOpened`, `loadedByProxy`, `allEvents`.
- `notifyURL` (`string`, required): Webhook URL to receive CSV file link
- `type` (`string`, required): Filter the history based on webhook type. One of: `transactional`, `marketing`.
- `days` (`string`, optional): Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate'.
- `email` (`string`, optional): Filter the history for a specific email
- `endDate` (`string`, optional): Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than or equal to startDate.
- `messageId` (`string`, optional): Filter the history for a specific message id. Applicable only for transactional webhooks.
- `sort` (`string`, optional): Sorting order of records (asc or desc)
- `startDate` (`string`, optional): Mandatory if endDate is used. Starting date of the history (YYYY-MM-DD). Must be lower than or equal to endDate.
- `webhookId` (`string`, optional): Filter the history for a specific webhook id

Example input: `{"event":"invalid_parameter","notifyURL":"<notifyURL>","type":"transactional"}`

### `brevomcp_webhooks_management_update_webhook`

Webhooks Management Update Webhook · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `webhookId` (`integer`, required): Id of the webhook
- `auth` (`string`, optional): Add authentication on webhook url
- `batched` (`string`, optional): To send batched webhooks
- `description` (`string`, optional): Description of the webhook
- `domain` (`string`, optional): Inbound domain of webhook, used in case of event type `inbound`
- `events` (`string`, optional): - Events triggering the webhook. Possible values for Transactional type webhook: `sent` OR `request`, `delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and `unsubscribed`. Possible values for Marketing type webhook: `spam`, `opened`, `click`, `hardBounce`, `softBounce`, `unsubscribed`, `listAddition`, `delivered`, `contactUpdated` and `contactDeleted`. Possible values for Inbound type webhook: `inboundEmailProcessed`.
- `headers` (`string`, optional): Custom headers to be send with webhooks
- `url` (`string`, optional): URL of the webhook

Example input: `{"webhookId":1}`

### `brevomcp_whatsapp_campaigns_create_whats_app_campaign`

Whatsapp Campaigns Create Whats App Campaign · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the WhatsApp campaign creation
- `recipients` (`string`, required): Segment ids and List ids to include/exclude from campaign
- `scheduledAt` (`string`, required): Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.For example: 2017-06-01T12:30:00+02:00
- `templateId` (`integer`, required): Id of the WhatsApp template in approved state

Example input: `{"name":"<name>","recipients":"<recipients>","scheduledAt":"<scheduledAt>","templateId":1}`

### `brevomcp_whatsapp_campaigns_send_whats_app_template_approval`

Whatsapp Campaigns Send Whats App Template Approval · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `templateId` (`integer`, required): id of the template

Example input: `{"templateId":1}`

### `brevomcp_whatsapp_campaigns_update_whats_app_campaign`

Whatsapp Campaigns Update Whats App Campaign · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the campaign
- `campaignName` (`string`, optional): Name of the campaign
- `campaignStatus` (`string`, optional): Status of the campaign
- `recipients` (`string`, optional): Segment ids and List ids to include/exclude from campaign
- `rescheduleFor` (`string`, optional): Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. Prefer to pass your timezone in date-time format for accurate result.For example: 2017-06-01T12:30:00+02:00 Use this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.

Example input: `{"campaignId":1}`

### `brevomcp_whatsapp_management_create_whats_app_template`

Whatsapp Management Create Whats App Template · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `bodyText` (`string`, required): Body of the template. Maximum allowed characters are 1024
- `category` (`string`, required): Category of the template. One of: `MARKETING`, `UTILITY`.
- `language` (`string`, required): Language of the template. For Example : en for English
- `name` (`string`, required): Name of the template
- `headerText` (`string`, optional): Text content of the header in the template.  Maximum allowed characters are 45 Use this field to add text content in template header and if mediaUrl is empty
- `mediaUrl` (`string`, optional): Absolute url of the media file (no local file) for the header. Use this field in you want to add media in Template header and headerText is empty Allowed extensions for media files are: #### jpeg | png | mp4 | pdf
- `source` (`string`, optional): source of the template

Example input: `{"bodyText":"<bodyText>","category":"MARKETING","language":"<language>","name":"<name>"}`

### `brevomcp_whatsapp_management_send_whatsapp_message`

Whatsapp Management Send Whatsapp Message · Write

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.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contactNumbers` (`string`, required): List of phone numbers of the contacts
- `senderNumber` (`string`, required): WhatsApp Number with country code. Example, 85264318721
- `params` (`string`, optional): Pass the set of attributes to customize the template. For example, {"FNAME":"Joe", "LNAME":"Doe"}.
- `templateId` (`string`, optional): ID of the template to send
- `text` (`string`, optional): Text to be sent as message body (will be overridden if templateId is passed in the same request)

Example input: `{"contactNumbers":"<contactNumbers>","senderNumber":"<senderNumber>"}`

### `brevomcp_accounts_delete_corporate_sub_account_by_id`

Accounts Delete Corporate Sub Account By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`integer`, required): Id of the sub-account organization to be deleted

Example input: `{"id":1}`

### `brevomcp_accounts_delete_corporate_user_revoke_by_email`

Accounts Delete Corporate User Revoke By Email · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Email of the invited user

Example input: `{"email":"<email>"}`

### `brevomcp_attributes_delete_attribute`

Attributes Delete Attribute · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `attributeCategory` (`string`, required): Category of the attribute. One of: `normal`, `transactional`, `category`, `calculated`, `global`.
- `attributeName` (`string`, required): Name of the existing attribute

Example input: `{"attributeCategory":"normal","attributeName":"<attributeName>"}`

### `brevomcp_attributes_delete_crm_attributes_by_id`

Attributes Delete Crm Attributes By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Attribute ID

Example input: `{"id":"<id>"}`

### `brevomcp_attributes_delete_multi_attribute_options`

Attributes Delete Multi Attribute Options · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `attributeType` (`string`, required): Type of the attribute
- `multipleChoiceAttribute` (`string`, required): Name of the existing multiple-choice attribute
- `multipleChoiceAttributeOption` (`string`, required): Name of the existing multiple-choice attribute option that you want to delete

Example input: `{"attributeType":"<attributeType>","multipleChoiceAttribute":"<multipleChoiceAttribute>","multipleChoiceAttributeOption":"<multipleChoiceAttributeOption>"}`

### `brevomcp_companies_delete_by_id`

Companies Delete By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Company ID to delete

Example input: `{"id":"<id>"}`

### `brevomcp_contacts_delete_contact`

Contacts Delete Contact · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded)
- `identifierType` (`string`, optional): email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_conversations_delete_messages_by_id`

Conversations Delete Messages By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message

Example input: `{"id":"<id>"}`

### `brevomcp_conversations_delete_pushed_messages_by_id`

Conversations Delete Pushed Messages By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the message

Example input: `{"id":"<id>"}`

### `brevomcp_deals_delete_crm_deals_by_id`

Deals Delete Crm Deals By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `brevomcp_domains_delete_domain`

Domains Delete Domain · Destructive

Deletes a domain from Brevo.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `domainName` (`string`, required): Domain name

Example input: `{"domainName":"<domainName>"}`

### `brevomcp_email_campaign_management_delete_email_campaign`

Email Campaign Management Delete Email Campaign · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the campaign

Example input: `{"campaignId":1}`

### `brevomcp_external_feeds_delete_external_feed`

External Feeds Delete External Feed · Destructive

Deletes an external feed from your Brevo account.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): UUID of the feed to delete

Example input: `{"uuid":"<uuid>"}`

### `brevomcp_files_delete_crm_files_by_id`

Files Delete Crm Files By Id · Destructive

Permanently delete a CRM file by its identifier. This removes the file from storage and unlinks it from any associated contacts, companies, or deals.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): File id to delete.

Example input: `{"id":"<id>"}`

### `brevomcp_folders_delete_folder`

Folders Delete Folder · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `folderId` (`integer`, required): Id of the folder

Example input: `{"folderId":1}`

### `brevomcp_groups_delete_corporate_group_by_id`

Groups Delete Corporate Group By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the group

Example input: `{"id":"<id>"}`

### `brevomcp_lists_delete_list`

Lists Delete List · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `listId` (`integer`, required): Id of the list

Example input: `{"listId":1}`

### `brevomcp_loyalty_delete_balance_definition`

Loyalty Delete Balance Definition · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `pid` (`string`, required): Loyalty Program Id

Example input: `{"bdid":"<bdid>","pid":"<pid>"}`

### `brevomcp_loyalty_delete_balance_limit`

Loyalty Delete Balance Limit · Destructive

Permanently deletes a balance limit from a balance definition. Once deleted, the limit constraint is no longer enforced on transactions.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `bdid` (`string`, required): Balance Definition Id
- `blid` (`string`, required): Balance Limit Id
- `pid` (`string`, required): Loyalty Program Id

Example input: `{"bdid":"<bdid>","blid":"<blid>","pid":"<pid>"}`

### `brevomcp_loyalty_delete_contact_members`

Loyalty Delete Contact Members · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `memberContactIds` (`string`, required): Comma-separated list of member contact IDs to delete from the subscription.
- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.

Example input: `{"memberContactIds":"<memberContactIds>","pid":"<pid>"}`

### `brevomcp_loyalty_delete_contact_subscription`

Loyalty Delete Contact Subscription · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `cid` (`integer`, required): Contact ID.
- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.

Example input: `{"cid":1,"pid":"<pid>"}`

### `brevomcp_loyalty_delete_program`

Loyalty Delete Program · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID. A unique identifier for the loyalty program.

Example input: `{"pid":"<pid>"}`

### `brevomcp_loyalty_delete_tier`

Loyalty Delete Tier · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `tid` (`string`, required): Tier ID

Example input: `{"pid":"<pid>","tid":"<tid>"}`

### `brevomcp_loyalty_delete_tier_group`

Loyalty Delete Tier Group · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `gid` (`string`, required): Tier group ID
- `pid` (`string`, required): Loyalty Program ID

Example input: `{"gid":"<gid>","pid":"<pid>"}`

### `brevomcp_loyalty_revoke_vouchers`

Loyalty Revoke Vouchers · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `pid` (`string`, required): Loyalty Program ID
- `attributedRewardIds` (`string`, optional): Reward Attribution IDs (comma seperated)

Example input: `{"pid":"<pid>"}`

### `brevomcp_notes_delete_crm_notes_by_id`

Notes Delete Crm Notes By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Note ID to delete

Example input: `{"id":"<id>"}`

### `brevomcp_payments_delete_payment_request`

Payments Delete Payment Request · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ID of the payment request.

Example input: `{"id":"<id>"}`

### `brevomcp_senders_delete_sender`

Senders Delete Sender · Destructive

Deletes an email sender from your Brevo account. The sender ID must be a valid positive integer.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `senderId` (`integer`, required): Id of the sender

Example input: `{"senderId":1}`

### `brevomcp_sms_campaigns_delete_sms_campaign`

Sms Campaigns Delete Sms Campaign · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the SMS campaign

Example input: `{"campaignId":1}`

### `brevomcp_tasks_delete_crm_tasks_by_id`

Tasks Delete Crm Tasks By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Task ID

Example input: `{"id":"<id>"}`

### `brevomcp_templates_delete_smtp_template`

Templates Delete Smtp Template · Destructive

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`.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `templateId` (`integer`, required): id of the template

Example input: `{"templateId":1}`

### `brevomcp_transac_templates_delete_blocked_domain`

Transac Templates Delete Blocked Domain · Destructive

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`).

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): The name of the domain to be deleted

Example input: `{"domain":"<domain>"}`

### `brevomcp_transac_templates_delete_scheduled_email_by_id`

Transac Templates Delete Scheduled Email By Id · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): The `batchId` of scheduled emails batch (must be a valid UUIDv4) or the `messageId` of scheduled email (enclosed in angle brackets with @ sign, e.g. `<...@domain>`).

Example input: `{"identifier":"<...@domain>"}`

### `brevomcp_transac_templates_delete_smtp_blocked_contacts_by_email`

Transac Templates Delete Smtp Blocked Contacts By Email · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Email address (URL-encoded) of the contact to unblock. Must be a valid email format.

Example input: `{"email":"<email>"}`

### `brevomcp_transac_templates_delete_smtp_log_by_identifier`

Transac Templates Delete Smtp Log By Identifier · Destructive

Delete SMTP transactional log entries by message ID or email address.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `identifier` (`string`, required): Message ID or email address of the transactional log(s) to delete. A message ID must be enclosed in angle brackets with an @ sign (e.g. `<abc123@domain.com>`). Alternatively, provide a valid email address to delete all logs associated with that address.
- `from_date` (`string`, optional): Starting date (YYYY-MM-DD format) to narrow down logs for deletion
- `to_date` (`string`, optional): Ending date (YYYY-MM-DD format) to narrow down logs for deletion

Example input: `{"identifier":"<abc123@domain.com>"}`

### `brevomcp_webhooks_management_delete_webhook`

Webhooks Management Delete Webhook · Destructive

Permanently deletes a webhook and stops all event notifications.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `webhookId` (`integer`, required): Id of the webhook

Example input: `{"webhookId":1}`

### `brevomcp_whatsapp_campaigns_delete_whats_app_campaign`

Whatsapp Campaigns Delete Whats App Campaign · Destructive

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.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `campaignId` (`integer`, required): id of the campaign

Example input: `{"campaignId":1}`

## Related

Other Marketing connectors ([all 59](/agentkit/connectors/?category=marketing)):

- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Mailchimp](/agentkit/connectors/mailchimp/): Scalekit connector, OAuth, 73 tools
- [Twitter / X](/agentkit/connectors/twitteroauth/): Scalekit connector, OAuth, 92 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
