Brevo Consent Groups API

The Consent Groups API from Brevo — 2 operation(s) for consent groups.

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /contacts/consent-groups List consent groups · List all consent groups #
Ask an LLM
“Which consent groups have I set up for my contacts?”
“Can I filter consent groups by their signup mode?”
Tell an agent
List my consent groups.
Find consent groups named {name} with signup mode {signupMode}.
POST /contacts/consent-groups Create a consent group · Create a consent group #
Ask an LLM
“How do I create a consent group to track marketing opt-ins?”
“Can a new consent group be tied to specific contact lists?”
Tell an agent
Create a consent group {name} with signup mode {signupMode}.
Create consent group {name}, signup mode {signupMode}, covering lists {listIds}.
GET /contacts/consent-groups/{id} Get a consent group · Get a consent group #
Ask an LLM
“What signup mode and description does one consent group have?”
“Can I look up a single consent group by ID?”
Tell an agent
Get consent group {id}.
Show the settings of consent group {id}.
PUT /contacts/consent-groups/{id} Update a consent group · Update a consent group #
Ask an LLM
“Can I rename a consent group or change its description?”
“How do I switch a consent group's signup mode?”
Tell an agent
Rename consent group {id} to {name}.
Change the signup mode of consent group {id} to {signupMode}.
DELETE /contacts/consent-groups/{id} Delete a consent group · Delete a consent group #
Ask an LLM
“What happens to contacts when I delete their consent group?”
“How do I remove a consent group I no longer need?”
Tell an agent destructive · confirm first
Delete consent group {id}.
Remove consent group {id} from all contacts.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-consent-group-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-create-consent-group-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-consent-groups-list-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-update-consent-group-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-custom-objects-upsertrecords-response-202-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-objects-object-type-batch-delete-post-request-body-content-application-json-schema-identifiers-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-custom-objects-getrecords-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-custom-objects-batch-delete-object-records-response-202-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-objects-object-type-batch-upsert-post-request-body-content-application-json-schema-records-items-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-get-email-campaign-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-get-ab-test-campaign-result-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-campaign-id-put-request-body-content-application-json-schema-recipients-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-post-request-body-content-application-json-schema-sender-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-campaign-id-put-request-body-content-application-json-schema-sender-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-email-campaigns-post-request-body-content-application-json-schema-recipients-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-external-feeds-get-external-feed-by-uuid-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-external-feeds-get-all-external-feeds-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-feeds-uuid-put-request-body-content-application-json-schema-headers-items-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-feeds-post-request-body-content-application-json-schema-headers-items-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-feeds-post-request-body-content-application-json-schema-auth-type-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-external-feeds-create-external-feed-response-201-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-master-account-get-the-details-of-requested-master-account-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-corporate-sub-account-id-plan-put-request-body-content-application-json-schema-credits-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-corporate-sub-accounts-plan-put-request-body-content-application-json-schema-credits-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-corporate-sub-account-sso-token-post-request-body-content-application-json-schema-target-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-master-account-get-corporate-user-permission-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-master-account-get-sub-account-details-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-sms-campaigns-get-sms-campaign-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-sms-campaigns-campaign-id-put-request-body-content-application-json-schema-recipients-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-sms-campaigns-post-request-body-content-application-json-schema-recipients-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-send-report-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-sms-campaigns-get-sms-campaigns-response-200-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/json-schema/brevo-sms-campaigns-campaign-id-export-recipients-post-request-body-content-application-json-schema-recipients-type-schema.json

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:brevo-consent-groups-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

brevo-consent-groups-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: Consent Groups
paths:
  /contacts/consent-groups:
    get:
      operationId: getConsentGroups
      summary: List all consent groups
      description: 'Returns a paginated list of consent groups for the account.


        This endpoint is only available when the Consent Groups feature is enabled for your account. Returns `403` if the feature is not activated.'
      tags:
      - Consent Groups
      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.


        This endpoint is only available when the Consent Groups feature is enabled for your account.'
      tags:
      - Consent Groups
      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.


        This endpoint is only available when the Consent Groups feature is enabled for your account.'
      tags:
      - Consent Groups
      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.


        This endpoint is only available when the Consent Groups feature is enabled for your account.'
      tags:
      - Consent Groups
      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.


        This endpoint is only available when the Consent Groups feature is enabled for your account.'
      tags:
      - Consent Groups
      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:
    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
    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
    ContactsConsentGroupsGetParametersSignupMode:
      type: string
      enum:
      - manual
      - automatic
      title: ContactsConsentGroupsGetParametersSignupMode
    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
    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
    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
    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
    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
  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.