brevo Contacts API

Create, retrieve, update, and delete individual contacts.

Business capability
Customer Data Management BC-420.10

Operations 29

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

POST /contacts/attributes/{attributeCategory}/{attributeName} Create a new contact attribute · Create contact attribute #
Ask an LLM
“How do I add a custom field like a birthday or loyalty tier to my Brevo contacts?”
“Which attribute types can I choose when defining a brand-new contact field?”
Tell an agent
Create a new {type} contact attribute called {name} in the {category} category.
Add a new calculated contact field {name} with formula {value}.
PUT /contacts/attributes/{attributeCategory}/{attributeName} Update a contact attribute · Update contact attribute #
Ask an LLM
“Can I change the dropdown values of a category attribute that already exists on my contacts?”
“What can be edited on a calculated or global contact attribute after it is created?”
Tell an agent
Update the enumeration values of the {name} attribute in the {category} category.
Change the formula of the calculated contact attribute {name} to {value}.
DELETE /contacts/attributes/{attributeCategory}/{attributeName} Delete a contact attribute · Delete an attribute #
Ask an LLM
“Can I permanently remove a contact field I no longer use?”
“What happens if I try to delete an attribute that isn't in the category I name?”
Tell an agent destructive · confirm first
Delete the contact attribute {name} from the {category} category.
Permanently remove the {name} field from my contact attributes in {category}.
GET /contacts/attributes List all contact attributes · List all attributes #
Ask an LLM
“What custom fields are defined on the contacts in my account?”
“Which contact attributes are calculated versus transactional or global?”
Tell an agent
List every contact attribute in my account grouped by category.
Show all the contact fields and their types for the account with API key {api_key}.
DELETE /contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption} Remove an option from a multiple-choice attribute · Delete a multiple-choice attribute option #
Ask an LLM
“Can I delete one choice from a multiple-choice contact field without deleting the whole field?”
“What is required to drop a single option from a multi-select contact attribute?”
Tell an agent destructive · confirm first
Remove the option {option} from the multiple-choice attribute {attribute}.
Delete choice {option} from {attribute} of attribute type {type}.
POST /contacts/lists Create a contact list · Create a list #
Ask an LLM
“How do I create a new mailing list inside one of my folders?”
“Does a newly created contact list start out empty?”
Tell an agent
Create a contact list named {name} in folder {folderId}.
Make a new empty list called {name} under folder {folderId}.
GET /contacts/lists List all contact lists · Get all the lists #
Ask an LLM
“What contact lists do I have in my Brevo account?”
“Can I page through my contact lists sorted oldest first?”
Tell an agent
List all my contact lists.
Show {limit} contact lists starting at offset {offset}.
GET /contacts/lists/{listId} Get a contact list's details · Get a list's details #
Ask an LLM
“How many subscribers does a specific list have and when was it created?”
“Can I see campaign statistics for one list over a date range?”
Tell an agent
Show the details of contact list {listId}.
Get campaign stats for list {listId} between {startDate} and {endDate}.
PUT /contacts/lists/{listId} Rename or move a contact list · Update a list #
Ask an LLM
“Can I rename an existing contact list?”
“Is it possible to move a list into a different folder?”
Tell an agent
Rename contact list {listId} to {name}.
Move list {listId} into folder {folderId}.
DELETE /contacts/lists/{listId} Delete a contact list · Delete a list #
Ask an LLM
“If I delete a list, are the contacts in it deleted too?”
“Can I permanently remove a contact list I no longer need?”
Tell an agent destructive · confirm first
Delete contact list {listId}.
Permanently remove list {listId} but keep its contacts.
GET /contacts/lists/{listId}/contacts List the contacts in a list · Get contacts in a list #
Ask an LLM
“Who is subscribed to a particular contact list?”
“Can I get only the list members modified since a certain date?”
Tell an agent
Show the contacts in list {listId}.
List members of list {listId} modified since {modifiedSince}.
POST /contacts/lists/{listId}/contacts/remove Remove contacts from a list · Delete a contact from a list #
Ask an LLM
“How do I unsubscribe existing contacts from one list without deleting them?”
“Can I take contacts off a list but keep them in my account?”
Tell an agent
Remove contacts from list {listId}.
Take the selected contacts off list {listId}.
POST /contacts/lists/{listId}/contacts/add Add existing contacts to a list · Add existing contacts to a list #
Ask an LLM
“Can I add contacts who already exist in my account to another list?”
“What's the way to put existing contacts into a list in bulk?”
Tell an agent
Add existing contacts to list {listId}.
Put the selected contacts into list {listId}.
POST /contacts/folders Create a folder for contact lists · Create a folder #
Ask an LLM
“How can I create a folder to group related contact lists?”
“Is a name the only thing needed to create a list folder?”
Tell an agent
Create a contact folder named {name}.
Make a new folder called {name} to hold my lists.
GET /contacts/folders List all contact folders · Get all folders #
Ask an LLM
“What folders do I use to organize my contact lists?”
“Can I page through all my list folders?”
Tell an agent
List all my contact folders.
Show {limit} folders starting at offset {offset}.
GET /contacts/folders/{folderId} Get a folder's details · Returns a folder's details #
Ask an LLM
“What are the details of one of my contact folders?”
“Can I look up a single folder by its ID?”
Tell an agent
Show the details of folder {folderId}.
Get folder {folderId}.
PUT /contacts/folders/{folderId} Rename a contact folder · Update a folder #
Ask an LLM
“Can I rename one of my contact folders?”
“What error do I get when renaming a folder that doesn't exist?”
Tell an agent
Rename folder {folderId} to {name}.
Change the name of contact folder {folderId} to {name}.
DELETE /contacts/folders/{folderId} Delete a folder and all its lists · Delete a folder (and all its lists) #
Ask an LLM
“Does deleting a folder also delete the lists inside it?”
“Can a deleted contact folder be recovered?”
Tell an agent destructive · confirm first
Delete folder {folderId} along with all its lists.
Permanently remove contact folder {folderId}.
GET /contacts/folders/{folderId}/lists List the lists inside a folder · Get lists in a folder #
Ask an LLM
“Which contact lists live inside a given folder?”
“Can I page through the lists in one folder?”
Tell an agent
Show the lists in folder {folderId}.
List {limit} lists from folder {folderId}.
GET /contacts List and filter contacts · Get all the contacts #
Ask an LLM
“How do I pull all contacts from my Brevo account?”
“Can I list only contacts created since a certain date or in a specific segment?”
Tell an agent
List all my contacts.
List contacts created since {createdSince}.
POST /contacts Create a contact · Create a contact #
Ask an LLM
“Can I add a new contact with an email and assign them to lists at the same time?”
“What phone format is accepted for the SMS attribute when creating a contact?”
Tell an agent
Create a contact with email {email}.
Add {email} as a new contact and put them in lists {listIds}.
POST /contacts/doubleOptinConfirmation Add a contact through double opt-in · Create Contact via DOI (Double-Opt-In) Flow #
Ask an LLM
“How do I send a double opt-in confirmation email before adding someone to my list?”
“Where does the subscriber land after confirming a double opt-in?”
Tell an agent
Send a double opt-in email to {email} using template {templateId} and add them to lists {includeListIds} once confirmed.
Start DOI for {email} with template {templateId}, lists {includeListIds}, redirecting to {redirectionUrl}.
GET /contacts/{identifier} Get a contact's details · Get a contact's details #
Ask an LLM
“Can I look up a single contact by email, phone number or external ID?”
“What attributes and list memberships does a particular contact have?”
Tell an agent
Show the details of contact {identifier}.
Look up contact {identifier} by {identifierType}.
DELETE /contacts/{identifier} Delete a contact · Delete a contact #
Ask an LLM
“Can I delete a contact using their email or external ID?”
“Is deleting a contact from my account permanent?”
Tell an agent destructive · confirm first
Delete contact {identifier}.
Delete the contact identified by {identifier} as {identifierType}.
PUT /contacts/{identifier} Update a contact · Update a contact #
Ask an LLM
“How do I change the attributes of an existing contact?”
“Can I blocklist a contact from emails or remove them from certain lists when editing them?”
Tell an agent
Update contact {identifier} with attributes {attributes}.
Unlink contact {identifier} from lists {unlinkListIds}.
GET /contacts/{identifier}/campaignStats Get a contact's email campaign stats · Get email campaigns' statistics for a contact #
Ask an LLM
“Which of my campaigns has a specific contact opened or clicked?”
“Can I see bounces and unsubscribes for one contact over a date range?”
Tell an agent
Show email campaign statistics for contact {identifier}.
Get opens and clicks for {identifier} from {startDate} to {endDate}.
GET /contacts/segments List contact segments · Get all the segments #
Ask an LLM
“What segments have I defined for my contacts?”
“How many segments can be returned per page at most?”
Tell an agent
List all my contact segments.
Show {limit} segments sorted {sort}.
POST /contacts/export Export contacts to CSV · Export contacts #
Ask an LLM
“Can I export a filtered set of my contacts to a CSV file?”
“How will I know when my contact export file is ready?”
Tell an agent
Export contacts matching {customContactFilter} to CSV.
Export contacts matching {customContactFilter} and notify {notifyUrl} when done.
POST /contacts/import Import contacts in bulk · Import contacts #
Ask an LLM
“Can I bulk import contacts from a CSV file URL?”
“What happens to attributes in my import that don't exist in the account?”
Tell an agent
Import contacts from {fileUrl} into lists {listIds}.
Import these contacts {jsonBody} and update existing ones.

Documentation

Specifications

Schemas & Data

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-contacts-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-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Contact Management Contacts API
  version: 1.0.0
servers:
- url: https://api.brevo.com/v3
  description: https://api.brevo.com/v3
tags:


# --- truncated at 32 KB (175 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/openapi/brevo-contacts-api-openapi.yml