Brevo Consent Groups API

The consentGroups API from Brevo — 2 operation(s) for consentgroups.

Operations 5

GET /contacts/consent-groups List all consent groups #
POST /contacts/consent-groups Create a consent group #
GET /contacts/consent-groups/{id} Get a consent group #
PUT /contacts/consent-groups/{id} Update a consent group #
DELETE /contacts/consent-groups/{id} Delete a consent group #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brevo-consentgroups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

brevo-consentgroups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Contact Management Consent Groups API
  version: 1.0.0
servers:
- url: https://api.brevo.com/v3
  description: https://api.brevo.com/v3
tags:
- name: consentGroups
paths:
  /contacts/consent-groups:
    get:
      operationId: getConsentGroups
      summary: List all consent groups
      description: 'Returns a paginated list of consent groups for the account.


        <Note>This endpoint is only available when the Consent Groups feature is enabled for your account. Returns `403` if the feature is not activated.</Note>'
      tags:
      - consentGroups
      parameters:
      - name: limit
        in: query
        description: Maximum number of results to return (default 10, max 50)
        required: false
        schema:
          type: integer
          format: int64
          default: 10
      - name: offset
        in: query
        description: Number of results to skip (default 0)
        required: false
        schema:
          type: integer
          format: int64
          default: 0
      - name: id
        in: query
        description: Filter by consent group ID
        required: false
        schema:
          type: integer
          format: int64
      - name: name
        in: query
        description: Filter by name (case-insensitive partial match)
        required: false
        schema:
          type: string
      - name: signupMode
        in: query
        description: Filter by signup mode
        required: false
        schema:
          $ref: '#/components/schemas/ContactsConsentGroupsGetParametersSignupMode'
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of consent groups
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentGroupsListResponse'
        '400':
          description: 'Bad request. Possible error codes: `INVALID_ID` (invalid id filter value), `INVALID_SIGNUP_MODE` (invalid signupMode value).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '403':
          description: 'Consent Groups feature not enabled for this account. Error code: `CONSENT_GROUP_NOT_ENABLED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
    post:
      operationId: createConsentGroup
      summary: Create a consent group
      description: 'Creates a new consent group for the account.


        <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>'
      tags:
      - consentGroups
      parameters:
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Consent group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentGroup'
        '400':
          description: 'Bad request. Possible error codes: `MISSING_REQUIRED_FIELD` (name or signupMode missing), `INVALID_SIGNUP_MODE` (invalid signupMode value), `FIELD_TOO_LONG` (name exceeds 255 or description exceeds 500 characters), `INVALID_LIST_ID` (one or more listIds are invalid).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '403':
          description: 'Consent Groups feature not enabled for this account. Error code: `CONSENT_GROUP_NOT_ENABLED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '409':
          description: 'A consent group with this name already exists. Error code: `NAME_ALREADY_EXISTS`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConsentGroupRequest'
  /contacts/consent-groups/{id}:
    get:
      operationId: getConsentGroup
      summary: Get a consent group
      description: 'Returns a single consent group by ID for the account.


        <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>'
      tags:
      - consentGroups
      parameters:
      - name: id
        in: path
        description: ID of the consent group
        required: true
        schema:
          type: integer
          format: int64
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Consent group details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentGroup'
        '400':
          description: 'Bad request. Error code: `INVALID_ID` (id must be a positive integer).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '403':
          description: 'Consent Groups feature not enabled for this account. Error code: `CONSENT_GROUP_NOT_ENABLED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '404':
          description: 'Consent group not found. Error code: `CONSENT_GROUP_NOT_FOUND`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
    put:
      operationId: updateConsentGroup
      summary: Update a consent group
      description: 'Updates name, description, or signupMode of a consent group. At least one field must be provided.


        <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>'
      tags:
      - consentGroups
      parameters:
      - name: id
        in: path
        description: ID of the consent group to update
        required: true
        schema:
          type: integer
          format: int64
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Updated consent group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentGroup'
        '400':
          description: 'Bad request. Possible error codes: `INVALID_ID` (id must be a positive integer), `NO_FIELDS_TO_UPDATE` (no fields provided in request body), `INVALID_SIGNUP_MODE` (invalid signupMode value), `FIELD_TOO_LONG` (name exceeds 255 or description exceeds 500 characters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '403':
          description: 'Consent Groups feature not enabled for this account. Error code: `CONSENT_GROUP_NOT_ENABLED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '404':
          description: 'Consent group not found. Error code: `CONSENT_GROUP_NOT_FOUND`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '409':
          description: 'A consent group with this name already exists. Error code: `NAME_ALREADY_EXISTS`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConsentGroupRequest'
    delete:
      operationId: deleteConsentGroup
      summary: Delete a consent group
      description: 'Deletes a consent group by ID and removes it from all associated contacts.


        <Note>This endpoint is only available when the Consent Groups feature is enabled for your account.</Note>'
      tags:
      - consentGroups
      parameters:
      - name: id
        in: path
        description: ID of the consent group to delete
        required: true
        schema:
          type: integer
          format: int64
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Consent group deleted successfully
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: 'Bad request. Error code: `INVALID_ID` (id must be a positive integer).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '403':
          description: 'Consent Groups feature not enabled for this account. Error code: `CONSENT_GROUP_NOT_ENABLED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
        '404':
          description: 'Consent group not found. Error code: `CONSENT_GROUP_NOT_FOUND`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorModel'
components:
  schemas:
    ContactsConsentGroupsGetParametersSignupMode:
      type: string
      enum:
      - manual
      - automatic
      title: ContactsConsentGroupsGetParametersSignupMode
    ConsentGroupsListResponse:
      type: object
      properties:
        consentGroups:
          type: array
          items:
            $ref: '#/components/schemas/ConsentGroup'
          description: List of consent groups matching the filter
        total:
          type: integer
          format: int64
          description: Total number of consent groups matching the filter
        limit:
          type: integer
          format: int64
          description: Maximum number of results returned
        offset:
          type: integer
          format: int64
          description: Number of results skipped
      required:
      - consentGroups
      - total
      - limit
      - offset
      description: Paginated list of consent groups.
      title: ConsentGroupsListResponse
    ConsentGroup:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the consent group
        name:
          type: string
          description: Display name of the consent group
        description:
          type: string
          description: Optional description of the consent group
        signupMode:
          $ref: '#/components/schemas/ConsentGroupSignupMode'
          description: Controls how contacts are added to the group. `manual` — contacts are added explicitly via the API. `automatic` — contacts are added automatically at signup.
        contactsCount:
          type: integer
          format: int64
          description: Number of contacts currently in this consent group
        isDefault:
          type: boolean
          description: Whether this is a system-created default consent group
        createdAt:
          type: string
          format: date-time
          description: UTC date-time when the consent group was created (YYYY-MM-DDTHH:mm:ss.SSSZ)
        updatedAt:
          type: string
          format: date-time
          description: UTC date-time when the consent group was last updated (YYYY-MM-DDTHH:mm:ss.SSSZ)
      required:
      - id
      - name
      - signupMode
      - contactsCount
      - isDefault
      - createdAt
      - updatedAt
      description: A consent group representing a category of contact opt-in/opt-out preferences.
      title: ConsentGroup
    UpdateConsentGroupRequest:
      type: object
      properties:
        name:
          type: string
          description: New name for the consent group (max 255 characters)
        description:
          type: string
          description: New description (max 500 characters)
        signupMode:
          $ref: '#/components/schemas/UpdateConsentGroupRequestSignupMode'
          description: New signup mode
      description: Request body for updating a consent group. At least one field must be provided.
      title: UpdateConsentGroupRequest
    UpdateConsentGroupRequestSignupMode:
      type: string
      enum:
      - manual
      - automatic
      description: New signup mode
      title: UpdateConsentGroupRequestSignupMode
    errorModel:
      type: object
      properties:
        code:
          type: string
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - message
      title: errorModel
    ConsentGroupSignupMode:
      type: string
      enum:
      - manual
      - automatic
      description: Controls how contacts are added to the group. `manual` — contacts are added explicitly via the API. `automatic` — contacts are added automatically at signup.
      title: ConsentGroupSignupMode
    CreateConsentGroupRequestSignupMode:
      type: string
      enum:
      - manual
      - automatic
      description: Controls how contacts are added to the group. `manual` — contacts are added explicitly via the API. `automatic` — contacts are added automatically at signup.
      title: CreateConsentGroupRequestSignupMode
    CreateConsentGroupRequest:
      type: object
      properties:
        name:
          type: string
          description: Unique name for the consent group (max 255 characters)
        description:
          type: string
          description: Optional description (max 500 characters)
        signupMode:
          $ref: '#/components/schemas/CreateConsentGroupRequestSignupMode'
          description: Controls how contacts are added to the group. `manual` — contacts are added explicitly via the API. `automatic` — contacts are added automatically at signup.
        listIds:
          type: array
          items:
            type: integer
            format: int64
          description: Optional list of contact list IDs. Contacts from these lists will be copied once into this consent group at creation time.
      required:
      - name
      - signupMode
      description: Request body for creating a consent group.
      title: CreateConsentGroupRequest
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: The API key should be passed in the request headers as `api-key` for authentication.