Brevo · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Contact Management Contacts API
30 actions
30 updates
phrasing
extends
openapi/brevo-contacts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Brevo's API. It is a proposal applied on top of the contract, not a document Brevo publishes.
What the actions change
x-apievangelist-phrasing
Targets 30 · first 16 shown; the file carries all of them
$.info
$.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].put
$.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].post
$.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].delete
$.paths['/contacts/attributes'].get
$.paths['/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}'].delete
$.paths['/contacts/lists'].get
$.paths['/contacts/lists'].post
$.paths['/contacts/lists/{listId}'].get
$.paths['/contacts/lists/{listId}'].put
$.paths['/contacts/lists/{listId}'].delete
$.paths['/contacts/lists/{listId}/contacts'].get
$.paths['/contacts/lists/{listId}/contacts/remove'].post
$.paths['/contacts/lists/{listId}/contacts/add'].post
$.paths['/contacts/folders'].get
$.paths['/contacts/folders'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Contact Management Contacts API
version: 1.0.0
extends: openapi/brevo-contacts-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 29
- target: $.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].put
update:
x-apievangelist-phrasing:
intent: Update a contact attribute
effect: write
questions:
- 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?
instructions:
- text: Update the enumeration values of the {name} attribute in the {category} category.
slots:
name: path.attributeName
category: path.attributeCategory
- text: Change the formula of the calculated contact attribute {name} to {value}.
slots:
name: path.attributeName
value: requestBody.value
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].post
update:
x-apievangelist-phrasing:
intent: Create a new contact attribute
effect: write
questions:
- 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?
instructions:
- text: Create a new {type} contact attribute called {name} in the {category} category.
slots:
type: requestBody.type
name: path.attributeName
category: path.attributeCategory
- text: Add a new calculated contact field {name} with formula {value}.
slots:
name: path.attributeName
value: requestBody.value
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/attributes/{attributeCategory}/{attributeName}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact attribute
effect: destructive
questions:
- 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?
instructions:
- text: Delete the contact attribute {name} from the {category} category.
slots:
name: path.attributeName
category: path.attributeCategory
- text: Permanently remove the {name} field from my contact attributes in {category}.
slots:
name: path.attributeName
category: path.attributeCategory
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/attributes'].get
update:
x-apievangelist-phrasing:
intent: List all contact attributes
effect: read
questions:
- What custom fields are defined on the contacts in my account?
- Which contact attributes are calculated versus transactional or global?
instructions:
- text: List every contact attribute in my account grouped by category.
- text: Show all the contact fields and their types for the account with API key {api_key}.
slots:
api_key: header.api-key
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}'].delete
update:
x-apievangelist-phrasing:
intent: Remove an option from a multiple-choice attribute
effect: destructive
questions:
- 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?
instructions:
- text: Remove the option {option} from the multiple-choice attribute {attribute}.
slots:
option: path.multipleChoiceAttributeOption
attribute: path.multipleChoiceAttribute
- text: Delete choice {option} from {attribute} of attribute type {type}.
slots:
option: path.multipleChoiceAttributeOption
attribute: path.multipleChoiceAttribute
type: path.attributeType
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists'].get
update:
x-apievangelist-phrasing:
intent: List all contact lists
effect: read
questions:
- What contact lists do I have in my Brevo account?
- Can I page through my contact lists sorted oldest first?
instructions:
- text: List all my contact lists.
- text: Show {limit} contact lists starting at offset {offset}.
slots:
limit: query.limit
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists'].post
update:
x-apievangelist-phrasing:
intent: Create a contact list
effect: write
questions:
- How do I create a new mailing list inside one of my folders?
- Does a newly created contact list start out empty?
instructions:
- text: Create a contact list named {name} in folder {folderId}.
slots:
name: requestBody.name
folderId: requestBody.folderId
- text: Make a new empty list called {name} under folder {folderId}.
slots:
name: requestBody.name
folderId: requestBody.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}'].get
update:
x-apievangelist-phrasing:
intent: Get a contact list's details
effect: read
questions:
- 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?
instructions:
- text: Show the details of contact list {listId}.
slots:
listId: path.listId
- text: Get campaign stats for list {listId} between {startDate} and {endDate}.
slots:
listId: path.listId
startDate: query.startDate
endDate: query.endDate
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}'].put
update:
x-apievangelist-phrasing:
intent: Rename or move a contact list
effect: write
questions:
- Can I rename an existing contact list?
- Is it possible to move a list into a different folder?
instructions:
- text: Rename contact list {listId} to {name}.
slots:
listId: path.listId
name: requestBody.name
- text: Move list {listId} into folder {folderId}.
slots:
listId: path.listId
folderId: requestBody.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact list
effect: destructive
questions:
- If I delete a list, are the contacts in it deleted too?
- Can I permanently remove a contact list I no longer need?
instructions:
- text: Delete contact list {listId}.
slots:
listId: path.listId
- text: Permanently remove list {listId} but keep its contacts.
slots:
listId: path.listId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}/contacts'].get
update:
x-apievangelist-phrasing:
intent: List the contacts in a list
effect: read
questions:
- Who is subscribed to a particular contact list?
- Can I get only the list members modified since a certain date?
- What is the maximum number of list members returned per page?
instructions:
- text: Show the contacts in list {listId}.
slots:
listId: path.listId
- text: List members of list {listId} modified since {modifiedSince}.
slots:
listId: path.listId
modifiedSince: query.modifiedSince
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}/contacts/remove'].post
update:
x-apievangelist-phrasing:
intent: Remove contacts from a list
effect: write
questions:
- 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?
instructions:
- text: Remove contacts from list {listId}.
slots:
listId: path.listId
- text: Take the selected contacts off list {listId}.
slots:
listId: path.listId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/lists/{listId}/contacts/add'].post
update:
x-apievangelist-phrasing:
intent: Add existing contacts to a list
effect: write
questions:
- 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?
instructions:
- text: Add existing contacts to list {listId}.
slots:
listId: path.listId
- text: Put the selected contacts into list {listId}.
slots:
listId: path.listId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders'].get
update:
x-apievangelist-phrasing:
intent: List all contact folders
effect: read
questions:
- What folders do I use to organize my contact lists?
- Can I page through all my list folders?
instructions:
- text: List all my contact folders.
- text: Show {limit} folders starting at offset {offset}.
slots:
limit: query.limit
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders'].post
update:
x-apievangelist-phrasing:
intent: Create a folder for contact lists
effect: write
questions:
- How can I create a folder to group related contact lists?
- Is a name the only thing needed to create a list folder?
instructions:
- text: Create a contact folder named {name}.
slots:
name: requestBody.name
- text: Make a new folder called {name} to hold my lists.
slots:
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders/{folderId}'].get
update:
x-apievangelist-phrasing:
intent: Get a folder's details
effect: read
questions:
- What are the details of one of my contact folders?
- Can I look up a single folder by its ID?
instructions:
- text: Show the details of folder {folderId}.
slots:
folderId: path.folderId
- text: Get folder {folderId}.
slots:
folderId: path.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders/{folderId}'].put
update:
x-apievangelist-phrasing:
intent: Rename a contact folder
effect: write
questions:
- Can I rename one of my contact folders?
- What error do I get when renaming a folder that doesn't exist?
instructions:
- text: Rename folder {folderId} to {name}.
slots:
folderId: path.folderId
name: requestBody.name
- text: Change the name of contact folder {folderId} to {name}.
slots:
folderId: path.folderId
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders/{folderId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a folder and all its lists
effect: destructive
questions:
- Does deleting a folder also delete the lists inside it?
- Can a deleted contact folder be recovered?
instructions:
- text: Delete folder {folderId} along with all its lists.
slots:
folderId: path.folderId
- text: Permanently remove contact folder {folderId}.
slots:
folderId: path.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/folders/{folderId}/lists'].get
update:
x-apievangelist-phrasing:
intent: List the lists inside a folder
effect: read
questions:
- Which contact lists live inside a given folder?
- Can I page through the lists in one folder?
instructions:
- text: Show the lists in folder {folderId}.
slots:
folderId: path.folderId
- text: List {limit} lists from folder {folderId}.
slots:
limit: query.limit
folderId: path.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].get
update:
x-apievangelist-phrasing:
intent: List and filter contacts
effect: read
questions:
- 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?
- What is the maximum number of contacts per page when listing them?
instructions:
- text: List all my contacts.
- text: List contacts created since {createdSince}.
slots:
createdSince: query.createdSince
- text: Show the contacts in segment {segmentId}.
slots:
segmentId: query.segmentId
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create a contact
effect: write
questions:
- 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?
- Is it possible to update the contact instead if the email already exists?
instructions:
- text: Create a contact with email {email}.
slots:
email: requestBody.email
- text: Add {email} as a new contact and put them in lists {listIds}.
slots:
email: requestBody.email
listIds: requestBody.listIds
- text: Create contact {email} with external ID {ext_id}.
slots:
email: requestBody.email
ext_id: requestBody.ext_id
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/doubleOptinConfirmation'].post
update:
x-apievangelist-phrasing:
intent: Add a contact through double opt-in
effect: write
questions:
- 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?
instructions:
- text: Send a double opt-in email to {email} using template {templateId} and add them to lists {includeListIds} once confirmed.
slots:
email: requestBody.email
templateId: requestBody.templateId
includeListIds: requestBody.includeListIds
- text: Start DOI for {email} with template {templateId}, lists {includeListIds}, redirecting to {redirectionUrl}.
slots:
email: requestBody.email
templateId: requestBody.templateId
includeListIds: requestBody.includeListIds
redirectionUrl: requestBody.redirectionUrl
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a contact's details
effect: read
questions:
- Can I look up a single contact by email, phone number or external ID?
- What attributes and list memberships does a particular contact have?
instructions:
- text: Show the details of contact {identifier}.
slots:
identifier: path.identifier
- text: Look up contact {identifier} by {identifierType}.
slots:
identifier: path.identifier
identifierType: query.identifierType
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{identifier}'].put
update:
x-apievangelist-phrasing:
intent: Update a contact
effect: write
questions:
- 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?
instructions:
- text: Update contact {identifier} with attributes {attributes}.
slots:
identifier: path.identifier
attributes: requestBody.attributes
- text: Unlink contact {identifier} from lists {unlinkListIds}.
slots:
identifier: path.identifier
unlinkListIds: requestBody.unlinkListIds
- text: Blocklist contact {identifier} from email.
slots:
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{identifier}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact
effect: destructive
questions:
- Can I delete a contact using their email or external ID?
- Is deleting a contact from my account permanent?
instructions:
- text: Delete contact {identifier}.
slots:
identifier: path.identifier
- text: Delete the contact identified by {identifier} as {identifierType}.
slots:
identifier: path.identifier
identifierType: query.identifierType
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/{identifier}/campaignStats'].get
update:
x-apievangelist-phrasing:
intent: Get a contact's email campaign stats
effect: read
questions:
- Which of my campaigns has a specific contact opened or clicked?
- Can I see bounces and unsubscribes for one contact over a date range?
instructions:
- text: Show email campaign statistics for contact {identifier}.
slots:
identifier: path.identifier
- text: Get opens and clicks for {identifier} from {startDate} to {endDate}.
slots:
identifier: path.identifier
startDate: query.startDate
endDate: query.endDate
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/segments'].get
update:
x-apievangelist-phrasing:
intent: List contact segments
effect: read
questions:
- What segments have I defined for my contacts?
- How many segments can be returned per page at most?
instructions:
- text: List all my contact segments.
- text: Show {limit} segments sorted {sort}.
slots:
limit: query.limit
sort: query.sort
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/export'].post
update:
x-apievangelist-phrasing:
intent: Export contacts to CSV
effect: write
questions:
- Can I export a filtered set of my contacts to a CSV file?
- How will I know when my contact export file is ready?
instructions:
- text: Export contacts matching {customContactFilter} to CSV.
slots:
customContactFilter: requestBody.customContactFilter
- text: Export contacts matching {customContactFilter} and notify {notifyUrl} when done.
slots:
customContactFilter: requestBody.customContactFilter
notifyUrl: requestBody.notifyUrl
method: generated
generated: '2026-09-26'
- target: $.paths['/contacts/import'].post
update:
x-apievangelist-phrasing:
intent: Import contacts in bulk
effect: write
questions:
- Can I bulk import contacts from a CSV file URL?
- What happens to attributes in my import that don't exist in the account?
- Is it possible to import contacts into a brand-new list?
instructions:
- text: Import contacts from {fileUrl} into lists {listIds}.
slots:
fileUrl: requestBody.fileUrl
listIds: requestBody.listIds
- text: Import these contacts {jsonBody} and update existing ones.
slots:
jsonBody: requestBody.jsonBody
method: generated
generated: '2026-09-26'