Brevo

Email marketing and transactional email platform

developers.brevo.com ↗
Version
3.0.0
OpenAPI
3.0.1
Endpoints
227
Schemas
264
76
Quality
Updated
3 days ago
Email email marketing communications
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.brevo.com/v3

Endpoints

Clear filters

Companies 1 endpoints

POST /companies
operationId: Companies_createCompany

Request Body

required

Company create data.

application/json
schema CompaniesCreateCompanyRequest
Property Type Required
name string required
attributes object optional
countryCode integer optional

Responses

200

Created new Company

400

Returned when invalid data posted

POST /companies

Contacts 10 endpoints

POST /contacts
operationId: Contacts_createNewContact

Request Body

required

Values to create a contact

application/json
schema createContact
Property Type Required
email string optional
ext_id string optional
listIds array optional
attributes object optional
updateEnabled boolean optional
smsBlacklisted boolean optional
emailBlacklisted boolean optional
smtpBlacklistSender array optional

Responses

201

Contact created

204

Contact updated

400

bad request

POST /contacts
POST /contacts/attributes/{attributeCategory}/{attributeName}
operationId: Contacts_createAttribute

Parameters

Name In Required Type Description
attributeCategory path required string

Category of the attribute

attributeName path required string

Name of the attribute

Request Body

required

Values to create an attribute

application/json
schema createAttribute
Property Type Required
type string optional
value string optional
enumeration array optional
label string required
value integer required
isRecurring boolean optional

Responses

201

Attribute created

400

bad request

POST /contacts/attributes/{attributeCategory}/{attributeName}
POST /contacts/batch
operationId: Contacts_updateMultiple

Request Body

required

Values to update multiple contacts

application/json
schema updateBatchContacts
Property Type Required
contacts array optional
id integer optional
sms string optional
email string optional
ext_id string optional
listIds array optional
attributes object optional
unlinkListIds array optional
smsBlacklisted boolean optional
emailBlacklisted boolean optional
smtpBlacklistSender array optional

Responses

204

All contacts updated

400

bad request

POST /contacts/batch
POST /contacts/doubleOptinConfirmation
operationId: Contacts_createDoubleOptInContact

Request Body

required

Values to create the Double opt-in (DOI) contact

application/json
schema createDoiContact
Property Type Required
email string required
attributes object optional
templateId integer required
excludeListIds array optional
includeListIds array required
redirectionUrl string required

Responses

201

DOI Contact created

204

DOI Contact updated

400

bad request

POST /contacts/doubleOptinConfirmation
POST /contacts/export

It returns the background process ID which on completion calls the notify URL that you have set in the input. File will be available in csv.

operationId: Contacts_exportProcessId

Request Body

required

Values to request a contact export

application/json
schema requestContactExport
Property Type Required
notifyUrl string optional
exportAttributes array optional
customContactFilter object required
listId integer optional
smsCampaignId integer optional
emailCampaignId integer optional
actionForContacts string optional
actionForSmsCampaigns string optional
actionForEmailCampaigns string optional

Responses

202
400

bad request

POST /contacts/export
POST /contacts/folders
operationId: Contacts_createFolder

Request Body

required

Name of the folder

application/json
schema createUpdateFolder
Property Type Required
name string optional

Responses

201
400

bad request

POST /contacts/folders
POST /contacts/import

It returns the background process ID which on completion calls
the notify URL that you have set in the input.

Note:

  • Any contact attribute that doesn’t exist in your account will be ignored at import end.
operationId: Contacts_importContactsProcess

Request Body

required

Values to import contacts in Brevo. To know more about the expected format, please have a look at https://help.brevo.com/hc/en-us/articles/209499265-Build-contacts-lists-for-your-email-marketing-campaigns

application/json
schema requestContactImport
Property Type Required
fileUrl string optional
listIds array optional
newList object optional
folderId integer optional
listName string optional
fileBody string optional
jsonBody array optional
email string optional
attributes object optional
notifyUrl string optional
smsBlacklist boolean optional
emailBlacklist boolean optional
disableNotification boolean optional
updateExistingContacts boolean optional
emptyContactsAttributes boolean optional

Responses

202
400

bad request

POST /contacts/import
POST /contacts/lists
operationId: Contacts_createList

Request Body

required

Values to create a list

application/json
schema createList
Property Type Required
name string required
folderId integer required

Responses

201
400

bad request

POST /contacts/lists
POST /contacts/lists/{listId}/contacts/add
operationId: Contacts_addToList

Parameters

Name In Required Type Description
listId path required integer

Id of the list

Request Body

required

Emails addresses OR IDs of the contacts

application/json
schema ContactsAddToListRequest

Responses

201

All contacts have been added successfully to the list with details of failed ones

400

bad request

404

List ID not found

POST /contacts/lists/{listId}/contacts/add
POST /contacts/lists/{listId}/contacts/remove
operationId: Contacts_removeContactFromList

Parameters

Name In Required Type Description
listId path required integer

Id of the list

Request Body

required

Emails adresses OR IDs of the contacts OR ‘all’ true

application/json
schema ContactsRemoveContactFromListRequest

Responses

201

All contacts have been removed successfully from the list with details of failed ones

400

bad request

404

List ID not found

POST /contacts/lists/{listId}/contacts/remove

Conversations 3 endpoints

POST /conversations/agentOnlinePing

We recommend pinging this endpoint every minute for as long as the agent has to be considered online.

operationId: Conversations_setAgentOnlineStatus

Request Body

required
application/json
schema ConversationsSetAgentOnlineStatusRequest
Property Type Required
agentId object optional
agentName object optional
agentEmail object optional
receivedFrom object optional

Responses

201

Status of the agent was set successfully. Response body will be empty.

400

Returned when invalid data posted

POST /conversations/agentOnlinePing
POST /conversations/messages
operationId: Conversations_sendMessageAsAgent

Request Body

required
application/json
schema ConversationsSendMessageAsAgentRequest
Property Type Required
text object required
agentId object optional
agentName object optional
visitorId object required
agentEmail object optional
receivedFrom object optional

Responses

200

Newly created message is returned as a response

400

Returned when invalid data posted

POST /conversations/messages
POST /conversations/pushedMessages

Example of automated messages: order status, announce new features in your web app, etc.

operationId: Conversations_sendAutomatedMessage

Request Body

required
application/json
schema ConversationsSendAutomatedMessageRequest
Property Type Required
text object required
agentId object optional
groupId object optional
visitorId object required

Responses

200

Newly created message is returned as a response

400

Returned when invalid data posted

POST /conversations/pushedMessages

Coupons 2 endpoints

POST /coupons
operationId: Coupons_createCouponCollection

Request Body

required

Values to create coupons

application/json
schema CouponsCreateCouponCollectionRequest
Property Type Required
coupons array required
collectionId string required

Responses

204

Coupons creation in progress

400

bad request

401

unauthorized

404

Coupon collection not found

POST /coupons
POST /couponCollections
operationId: Coupons_createCollection

Request Body

required

Values to create a coupon collection

application/json
schema CouponsCreateCollectionRequest
Property Type Required
name string required
defaultCoupon string required
expirationDate string optional
remainingDaysAlert integer optional
remainingCouponsAlert integer optional

Responses

201

Coupon collection created

400

bad request

401

unauthorized

POST /couponCollections

Deals 1 endpoints

POST /crm/deals
operationId: Deals_createNewDeal

Request Body

required

Deal create data.

application/json
schema DealsCreateNewDealRequest
Property Type Required
name string required
attributes object optional

Responses

201

Created new Deal

400

Returned when invalid data posted

POST /crm/deals

Domains 1 endpoints

POST /senders/domains
operationId: Domains_createNewDomain

Request Body

domain’s name

application/json
schema createDomain
Property Type Required
name string required

Responses

200

domain created

400

bad request

POST /senders/domains

Ecommerce 7 endpoints

POST /ecommerce/activate

Getting access to Brevo eCommerce.

operationId: Ecommerce_activateApp

Responses

200

eCommerce activation is in process, please wait for 5 minutes.

401

unauthorized

404

api-key not found

POST /ecommerce/activate
POST /categories
operationId: Ecommerce_createCategory

Request Body

required

Values to create/update a category

application/json
schema createUpdateCategory
Property Type Required
id string required
url string optional
name string optional
deletedAt string optional
updateEnabled boolean optional

Responses

201

Category created

204

Category updated

400

bad request

POST /categories
POST /categories/batch
operationId: Ecommerce_createCategoriesBatch

Request Body

required

Values to create a batch of categories

application/json
schema createUpdateBatchCategory
Property Type Required
categories array required
id string required
url string optional
name string optional
deletedAt string optional
updateEnabled boolean optional

Responses

201

Category created and updated

400

bad request

POST /categories/batch
POST /orders/status

Manages the transactional status of the order

operationId: Ecommerce_manageOrderStatus

Request Body

required
application/json
schema order
Property Type Required
id string required
email string optional
amount number required
status string required
billing object optional
city string optional
phone string optional
region string optional
address string optional
postCode string optional
countryCode string optional
paymentMethod string optional
coupons array optional
products array required
price number required
quantity number required
productId string required
variantId string optional
createdAt string required
updatedAt string required

Responses

204

Order Event posted

400

bad request

POST /orders/status
POST /orders/status/batch

Create multiple orders at one time instead of one order at a time

operationId: Ecommerce_createOrderBatch

Request Body

required
application/json
schema orderBatch
Property Type Required
orders array required
id string required
email string optional
amount number required
status string required
billing object optional
city string optional
phone string optional
region string optional
address string optional
postCode string optional
countryCode string optional
paymentMethod string optional
coupons array optional
products array required
price number required
quantity number required
productId string required
variantId string optional
createdAt string required
updatedAt string required
notifyUrl string optional
historical boolean optional

Responses

202
400

bad request

POST /orders/status/batch
POST /products
operationId: Ecommerce_createProduct

Request Body

required

Values to create/update a product

application/json
schema createUpdateProduct
Property Type Required
id string required
sku string optional
url string optional
name string required
price number optional
imageUrl string optional
metaInfo object optional
parentId string optional
deletedAt string optional
categories array optional
updateEnabled boolean optional

Responses

201

Product created

204

Product updated

400

bad request

POST /products
POST /products/batch
operationId: Ecommerce_createProductsBatch

Request Body

required

Values to create a batch of products

application/json
schema createUpdateBatchProducts
Property Type Required
products array required
id string required
sku string optional
url string optional
name string required
price number optional
imageUrl string optional
metaInfo object optional
parentId string optional
deletedAt string optional
categories array optional
updateEnabled boolean optional

Responses

201

Products created and updated

400

bad request

POST /products/batch

Emailcampaigns 6 endpoints

POST /emailCampaigns
operationId: EmailCampaigns_createCampaign

Request Body

required

Values to create a campaign

application/json
schema createEmailCampaign
Property Type Required
tag string optional
name string required
footer string optional
header string optional
params object optional
sender object required
id integer optional
name string optional
email string optional
htmlUrl string optional
replyTo string optional
subject string optional
toField string optional
subjectA string optional
subjectB string optional
abTesting boolean optional
splitRule integer optional
recipients object optional
listIds array optional
segmentIds array optional
exclusionListIds array optional
templateId integer optional
htmlContent string optional
previewText string optional
scheduledAt string optional
utmCampaign string optional
…11 more object optional

Responses

201
400

bad request

POST /emailCampaigns
POST /emailCampaigns/images
operationId: EmailCampaigns_uploadImageToGallery

Request Body

required

Parameters to upload an image

application/json
schema uploadImageToGallery
Property Type Required
name string optional
imageUrl string required

Responses

201

Image has been successfully uploaded

400

bad request

POST /emailCampaigns/images
POST /emailCampaigns/{campaignId}/exportRecipients
operationId: EmailCampaigns_exportRecipientsPost

Parameters

Name In Required Type Description
campaignId path required integer

Id of the campaign

Request Body

Values to send for a recipient export request

application/json
schema emailExportRecipients
Property Type Required
notifyURL string optional
recipientsType string required

Responses

202
400

bad request

404

Campaign ID not found

POST /emailCampaigns/{campaignId}/exportRecipients
POST /emailCampaigns/{campaignId}/sendNow
operationId: EmailCampaigns_sendImmediate

Parameters

Name In Required Type Description
campaignId path required integer

Id of the campaign

Responses

204

Email campaign has been scheduled

400

Campaign could not be sent

402

You don’t have enough credit to send your campaign. Please update your plan

404

Campaign ID not found

POST /emailCampaigns/{campaignId}/sendNow
POST /emailCampaigns/{campaignId}/sendReport

A PDF will be sent to the specified email addresses

operationId: EmailCampaigns_sendReport

Parameters

Name In Required Type Description
campaignId path required integer

Id of the campaign

Request Body

required

Values for send a report

application/json
schema sendReport
Property Type Required
email object required
to array required
body string required
language string optional

Responses

204

Report has been successfully sent to the defined recipients

400

bad request

404

Campaign ID not found

POST /emailCampaigns/{campaignId}/sendReport
POST /emailCampaigns/{campaignId}/sendTest
operationId: EmailCampaigns_sendTestToTestList

Parameters

Name In Required Type Description
campaignId path required integer

Id of the campaign

Request Body

required
application/json
schema sendTestEmail
Property Type Required
emailTo array optional

Responses

204

Test email has been sent successfully to all recipients

400

Test email could not be sent to the following email addresses

404

Campaign ID not found

POST /emailCampaigns/{campaignId}/sendTest

Event 1 endpoints

POST /events

Create an event to track a contact’s interaction.

operationId: Event_trackInteraction

Request Body

required
application/json
schema event
Property Type Required
event_date string optional
event_name string required
identifiers object required
sms string optional
ext_id string optional
email_id string optional
whatsapp string optional
landline_number string optional
event_properties object optional
contact_properties object optional

Responses

204

An event posted

400

bad request

401

unauthorized

POST /events

Externalfeeds 1 endpoints

POST /feeds

This endpoint will create an external feed.

operationId: ExternalFeeds_createFeed

Request Body

required

Values to create a feed

application/json
schema createExternalFeed
Property Type Required
url string required
name string required
cache boolean optional
token string optional
headers array optional
name string optional
value string optional
authType string optional
password string optional
username string optional
maxRetries integer optional

Responses

201

successfully created

400

bad request

POST /feeds

Files 1 endpoints

POST /crm/files
operationId: Files_uploadFile

Request Body

required
multipart/form-data
schema FilesUploadFileRequest
Property Type Required
file string required
dealId string optional
companyId string optional
contactId integer optional

Responses

201

Returns the created File with additional details

400

Returned when invalid data posted

POST /crm/files

Masteraccount 6 endpoints

POST /corporate/group

This endpoint allows to create a group of sub-accounts

operationId: MasterAccount_createGroupOfSubAccounts

Request Body

application/json
schema MasterAccountCreateGroupOfSubAccountsRequest
Property Type Required
groupName string required
subAccountIds array optional

Responses

201

Group ID

400

Bad request

POST /corporate/group
POST /corporate/ssoToken

This endpoint generates an SSO token to authenticate and access the admin account using the endpoint https://account-app.brevo.com/account/login/corporate/sso/[token], where [token] will be replaced by the actual token.

operationId: MasterAccount_generateSsoToken

Request Body

application/json
schema MasterAccountGenerateSsoTokenRequest
Property Type Required
email string required

Responses

200

Session token

400

bad request

403

Current account is not an admin account

POST /corporate/ssoToken
POST /corporate/subAccount

This endpoint will create a new sub-account under a master account

operationId: MasterAccount_createSubAccount

Request Body

required

Request body with sub-account organization name

application/json
schema createSubAccount
Property Type Required
email string required
language string optional
timezone string optional
companyName string required

Responses

201

Created sub-account ID

400

Bad request

POST /corporate/subAccount
POST /corporate/subAccount/key

This endpoint will generate an API v3 key for a sub account

operationId: MasterAccount_createSubAccountKey

Request Body

application/json
schema MasterAccountCreateSubAccountKeyRequest
Property Type Required
id integer required
name string required

Responses

201

API key

400

bad request

POST /corporate/subAccount/key
POST /corporate/subAccount/ssoToken

This endpoint generates an sso token to authenticate and access a sub-account of the master using the account endpoint https://account-app.brevo.com/account/login/sub-account/sso/[token], where [token] will be replaced by the actual token.

operationId: MasterAccount_generateSsoToken

Request Body

application/json
schema MasterAccountGenerateSsoTokenRequest1
Property Type Required
id integer required
url string optional
email string optional
target string optional

Responses

200

Session token

400

bad request

403

Current account is not a master account

POST /corporate/subAccount/ssoToken
POST /corporate/user/invitation/send

`This endpoint allows you to invite a member to manage the Admin account

Features and their respective permissions are as below:

  • my_plan:
    • “all”
  • api:
    • “none”
  • user_management:
    • “all”
  • app_management Not available in ENTv2:
    • “all”

Note:

  • If all_features_access: false then only privileges are required otherwise if true then it’s assumed that all permissions will be there for the invited admin user.
operationId: MasterAccount_sendInvitationToAdminUser

Request Body

required

Payload to send an invitation

application/json
schema inviteAdminUser
Property Type Required
email string required
groupIds array optional
privileges array required
feature string optional
permissions array optional
all_features_access boolean required

Responses

201

Invitation ID

400

Bad request

POST /corporate/user/invitation/send

Notes 1 endpoints

POST /crm/notes
operationId: Notes_createNewNote

Request Body

required

Note data to create a note.

application/json
schema NoteData
Property Type Required
text string required
dealIds array optional
companyIds array optional
contactIds array optional

Responses

200

Created new note

400

Returned when invalid data posted

415

Format is not supported

POST /crm/notes

Payments 1 endpoints

POST /payments/requests
operationId: Payments_createPaymentRequest

Request Body

required

Create a payment request

application/json
schema createPaymentRequest
Property Type Required
cart object required
currency string required
specificAmount integer required
contactId integer required
reference string required
notification object optional
text string required
channel string required
configuration object required
customSuccessUrl string required

Responses

201

Payment request created.

400

Bad request.

401

Unauthorized.

403

Permission denied. Either you don’t have access to Brevo Payments or your Brevo Payments account is not validated.

POST /payments/requests

Reseller 6 endpoints

POST /reseller/children
operationId: Reseller_createChild

Request Body

reseller child to add

application/json
schema createChild
Property Type Required
email string required
language string optional
lastName string required
password string required
firstName string required
companyName string required

Responses

201

child created

400

Bad request

403

Current account is not a reseller

POST /reseller/children
POST /reseller/children/{childIdentifier}/credits/add
operationId: Reseller_addChildCredits

Parameters

Name In Required Type Description
childIdentifier path required string

Either auth key or id of reseller’s child

Request Body

required

Values to post to add credit to a specific child account

application/json
schema addCredits
Property Type Required
sms integer optional
email integer optional

Responses

200

Credits added

400

bad request

403

Current account is not a reseller

404

Child auth key or child id not found

POST /reseller/children/{childIdentifier}/credits/add
POST /reseller/children/{childIdentifier}/credits/remove
operationId: Reseller_removeCreditsFromChild

Parameters

Name In Required Type Description
childIdentifier path required string

Either auth key or id of reseller’s child

Request Body

required

Values to post to remove email or SMS credits from a specific child account

application/json
schema removeCredits
Property Type Required
sms integer optional
email integer optional

Responses

200

Credits removed

400

bad request

403

Current account is not a reseller

404

Child auth key or child id not found

POST /reseller/children/{childIdentifier}/credits/remove
POST /reseller/children/{childIdentifier}/domains
operationId: Reseller_createChildDomain

Parameters

Name In Required Type Description
childIdentifier path required string

Either auth key or id of reseller’s child

Request Body

required

Sender domain to add for a specific child account. This will not be displayed to the parent account.

application/json
schema addChildDomain
Property Type Required
domain string optional

Responses

201

Domain added

400

bad request

403

Current account is not a reseller

404

Child auth key or child id not found

POST /reseller/children/{childIdentifier}/domains
POST /reseller/children/{childIdentifier}/ips/associate
operationId: Reseller_associateDedicatedIpToChild

Parameters

Name In Required Type Description
childIdentifier path required string

Either auth key or id of reseller’s child

Request Body

required

IP to associate

application/json
schema manageIp
Property Type Required
ip string optional

Responses

204

Dedicated IP is associated to the child

400

bad request

404

Child auth key or child id not found

POST /reseller/children/{childIdentifier}/ips/associate
POST /reseller/children/{childIdentifier}/ips/dissociate
operationId: Reseller_dissociateIpToChild

Parameters

Name In Required Type Description
childIdentifier path required string

Either auth key or id of reseller’s child

Request Body

required

IP to dissociate

application/json
schema manageIp
Property Type Required
ip string optional

Responses

204

Dedicated IP is dissociated from the child

400

bad request

404

Child auth key or child id not found

POST /reseller/children/{childIdentifier}/ips/dissociate

Smscampaigns 5 endpoints

POST /smsCampaigns
operationId: SmsCampaigns_createCampaign

Request Body

required

Values to create an SMS Campaign

application/json
schema createSmsCampaign
Property Type Required
name string required
sender string required
content string required
recipients object optional
listIds array required
exclusionListIds array optional
scheduledAt string optional
unicodeEnabled boolean optional
organisationPrefix string optional
unsubscribeInstruction string optional

Responses

201
400

bad request

POST /smsCampaigns
POST /smsCampaigns/{campaignId}/exportRecipients

It returns the background process ID which on completion calls the notify URL that you have set in the input.

operationId: SmsCampaigns_exportRecipientsProcess

Parameters

Name In Required Type Description
campaignId path required integer

id of the campaign

Request Body

Values to send for a recipient export request

application/json
schema requestSmsRecipientExport
Property Type Required
notifyURL string optional
recipientsType string required

Responses

202
400

bad request

404

Campaign ID not found

POST /smsCampaigns/{campaignId}/exportRecipients
POST /smsCampaigns/{campaignId}/sendNow
operationId: SmsCampaigns_sendImmediately

Parameters

Name In Required Type Description
campaignId path required integer

id of the campaign

Responses

204

SMS campaign has been scheduled

400

SMS Campaign could not be sent

402

You don’t have enough credit to send your campaign. Please update your plan

404

Campaign ID not found

POST /smsCampaigns/{campaignId}/sendNow
POST /smsCampaigns/{campaignId}/sendReport

Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.

operationId: SmsCampaigns_sendCampaignReport

Parameters

Name In Required Type Description
campaignId path required integer

id of the campaign

Request Body

required

Values for send a report

application/json
schema sendReport
Property Type Required
email object required
to array required
body string required
language string optional

Responses

204

Report has been successfully sent to the defined recipients

400

bad request

404

Campaign ID not found

POST /smsCampaigns/{campaignId}/sendReport
POST /smsCampaigns/{campaignId}/sendTest
operationId: SmsCampaigns_sendTestSms

Parameters

Name In Required Type Description
campaignId path required integer

Id of the SMS campaign

Request Body

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

application/json
schema sendTestSms
Property Type Required
phoneNumber string optional

Responses

204

Test SMS has been sent successfully to the recipient

400

Test SMS could not be sent to the following email addresses

404

Campaign ID not found

POST /smsCampaigns/{campaignId}/sendTest

Senders 1 endpoints

POST /senders
operationId: Senders_createNewSender

Request Body

sender’s name

application/json
schema createSender
Property Type Required
ips array optional
ip string required
domain string required
weight integer optional
name string required
email string required

Responses

201

sender created

400

bad request

POST /senders

Tasks 1 endpoints

POST /crm/tasks
operationId: Tasks_createNewTask

Request Body

required

Task name.

application/json
schema TasksCreateNewTaskRequest
Property Type Required
date string required
done boolean optional
name string required
notes string optional
dealsIds array optional
duration integer optional
reminder object optional
unit string required
types array required
value integer required
assignToId string optional
taskTypeId string required
contactsIds array optional
companiesIds array optional

Responses

201

Created new task

400

Returned when invalid data posted

POST /crm/tasks

Transactionalemails 5 endpoints

POST /smtp/blockedDomains

Blocks a new domain in order to avoid messages being sent to the same

operationId: TransactionalEmails_addBlockedDomain

Request Body

required

Name of the domain to be blocked

application/json
schema blockDomain
Property Type Required
domain string required

Responses

201

Domain is successfully blocked

400

bad request

POST /smtp/blockedDomains
POST /smtp/deleteHardbounces

Delete hardbounces. To use carefully (e.g. in case of temporary ISP failures)

operationId: TransactionalEmails_removeHardbounces

Request Body

values to delete hardbounces

application/json
schema deleteHardbounces
Property Type Required
endDate string optional
startDate string optional
contactEmail string optional

Responses

204

Hardbounces deleted

400

bad request

POST /smtp/deleteHardbounces
POST /smtp/email
operationId: TransactionalEmails_sendTransactionalEmail

Request Body

required

Values to send a transactional email

application/json
schema sendSmtpEmail
Property Type Required
cc array optional
name string optional
email string required
to array optional
name string optional
email string required
bcc array optional
name string optional
email string required
tags array optional
params object optional
sender object optional
id integer optional
name string optional
email string optional
batchId string optional
headers object optional
replyTo object optional
name string optional
email string required
subject string optional
attachment array optional
url string optional
name string optional
content string optional
templateId integer optional
htmlContent string optional
scheduledAt string optional
textContent string optional
messageVersions array optional
cc array optional
name string optional
email string required
to array required
name string optional
email string required
bcc array optional
name string optional
email string required
params object optional
replyTo object optional
name string optional
email string required
subject string optional
htmlContent string optional
textContent string optional

Responses

201

transactional email sent

202

transactional email scheduled

400

bad request

POST /smtp/email
POST /smtp/templates
operationId: TransactionalEmails_createTemplate

Request Body

required

values to update in transactional email template

application/json
schema createSmtpTemplate
Property Type Required
tag string optional
sender object required
id integer optional
name string optional
email string optional
htmlUrl string optional
replyTo string optional
subject string required
toField string optional
isActive boolean optional
htmlContent string optional
templateName string required
attachmentUrl string optional

Responses

201
400

bad request

POST /smtp/templates
POST /smtp/templates/{templateId}/sendTest
operationId: TransactionalEmails_sendTestTemplate

Parameters

Name In Required Type Description
templateId path required integer

Id of the template

Request Body

required
application/json
schema sendTestEmail
Property Type Required
emailTo array optional

Responses

204

Test email has been sent successfully to all recipients

400

Test email could not be sent to the following email addresses

404

Template ID not found

POST /smtp/templates/{templateId}/sendTest

Transactionalsms 1 endpoints

POST /transactionalSMS/sms
operationId: TransactionalSms_sendSmsMessageToMobile

Request Body

required

Values to send a transactional SMS

application/json
schema sendTransacSms
Property Type Required
tag string optional
type string optional
sender string required
webUrl string optional
content string required
recipient string required
unicodeEnabled boolean optional
organisationPrefix string optional

Responses

201

SMS has been sent successfully to the recipient

400

bad request

402

You don’t have enough credit to send your SMS. Please update your plan

POST /transactionalSMS/sms

Transactionalwhatsapp 1 endpoints

POST /whatsapp/sendMessage

This endpoint is used to send a WhatsApp message.
(The first message you send using the API must contain a Template ID. You must create a template on WhatsApp on the Brevo platform to fetch the Template ID.)

operationId: TransactionalWhatsApp_sendMessage

Request Body

required

Values to send WhatsApp message

application/json
schema TransactionalWhatsAppSendMessageRequest

Responses

201

successfully created

400

bad request

POST /whatsapp/sendMessage

User 2 endpoints

POST /organization/user/invitation/send

Feature - A Feature represents a specific functionality like Email campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user, determine which feature you want to manage access to. You must specify the feature accurately to avoid errors.

Permission - A Permission defines the level of access or control a user has over a specific feature. While inviting user, decide on the permission level required for the selected feature. Make sure the chosen permission is related to the selected feature.

Features and their respective permissions are as below:

  • email_campaigns:
    • “create_edit_delete”
    • “send_schedule_suspend”
  • sms_campaigns:
    • “create_edit_delete”
    • “send_schedule_suspend”
  • contacts:
    • “view”
    • “create_edit_delete”
    • “import”
    • “export”
    • “list_and_attributes”
    • “forms”
  • templates:
    • “create_edit_delete”
    • “activate_deactivate”
  • workflows:
    • “create_edit_delete”
    • “activate_deactivate_pause”
    • “settings”
  • facebook_ads:
    • “create_edit_delete”
    • “schedule_pause”
  • landing_pages:
    • “all”
  • transactional_emails:
    • “settings”
    • “logs”
  • smtp_api:
    • “smtp”
    • “api_keys”
    • “authorized_ips”
  • user_management:
    • “all”
  • sales_platform:
    • “manage_owned_deals_tasks_companies”
    • “manage_others_deals_tasks_companies”
    • “reports”
    • “settings”
  • phone:
    • “all”
  • conversations:
    • “access”
    • “assign”
    • “configure”
  • senders_domains_dedicated_ips:
    • “senders_management”
    • “domains_management”
    • “dedicated_ips_management”
  • push_notifications:
    • “view”
    • “create_edit_delete”
    • “send”
    • “settings”

Note:

  • If all_features_access: false then only privileges are required otherwise if true then it’s assumed that all permissions will be there for the invited user.
  • The availability of feature and its permission depends on your current plan. Please select the features and permissions accordingly.
operationId: User_sendInvitation

Request Body

required

Values to create an invitation

application/json
schema inviteuser
Property Type Required
email string required
privileges array required
feature string optional
permissions array optional
all_features_access boolean required

Responses

200

Success

400

Bad request

POST /organization/user/invitation/send
POST /organization/user/update/permissions

Feature - A Feature represents a specific functionality like Email campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user, determine which feature you want to manage access to. You must specify the feature accurately to avoid errors.

Permission - A Permission defines the level of access or control a user has over a specific feature. While inviting user, decide on the permission level required for the selected feature. Make sure the chosen permission is related to the selected feature.

Features and their respective permissions are as below:

  • email_campaigns:
    • “create_edit_delete”
    • “send_schedule_suspend”
  • sms_campaigns:
    • “create_edit_delete”
    • “send_schedule_suspend”
  • contacts:
    • “view”
    • “create_edit_delete”
    • “import”
    • “export”
    • “list_and_attributes”
    • “forms”
  • templates:
    • “create_edit_delete”
    • “activate_deactivate”
  • workflows:
    • “create_edit_delete”
    • “activate_deactivate_pause”
    • “settings”
  • facebook_ads:
    • “create_edit_delete”
    • “schedule_pause”
  • landing_pages:
    • “all”
  • transactional_emails:
    • “settings”
    • “logs”
  • smtp_api:
    • “smtp”
    • “api_keys”
    • “authorized_ips”
  • user_management:
    • “all”
  • sales_platform:
    • “manage_owned_deals_tasks_companies”
    • “manage_others_deals_tasks_companies”
    • “reports”
    • “settings”
  • phone:
    • “all”
  • conversations:
    • “access”
    • “assign”
    • “configure”
  • senders_domains_dedicated_ips:
    • “senders_management”
    • “domains_management”
    • “dedicated_ips_management”
  • push_notifications:
    • “view”
    • “create_edit_delete”
    • “send”
    • “settings”

Note:

  • The privileges array remains the same as in the send invitation; the user simply needs to provide the permissions that need to be updated.
  • The availability of feature and its permission depends on your current plan. Please select the features and permissions accordingly.
operationId: User_updatePermissions

Request Body

required

Values to create an invitation

application/json
schema inviteuser
Property Type Required
email string required
privileges array required
feature string optional
permissions array optional
all_features_access boolean required

Responses

200

Success

400

Bad request

POST /organization/user/update/permissions

Webhooks 2 endpoints

POST /webhooks
operationId: Webhooks_createHook

Request Body

required

Values to create a webhook

application/json
schema createWebhook
Property Type Required
url string required
auth object optional
type string optional
domain string optional
events array required
batched boolean optional
headers array optional
description string optional

Responses

201
400

bad request

POST /webhooks
POST /webhooks/export

This endpoint will submit a request to get the history of webhooks in the CSV file. The link to download the CSV file will be sent to the webhook that was provided in the notifyURL.

operationId: Webhooks_exportAllEvents

Request Body

required

Values to submit for webhooks history

application/json
schema WebhooksExportAllEventsRequest

Responses

202

Request accepted

400

bad request

POST /webhooks/export

Whatsappcampaigns 3 endpoints

POST /whatsappCampaigns
operationId: WhatsAppCampaigns_createAndSend

Request Body

required

Values to create a WhatsApp Campaign

application/json
schema createWhatsAppCampaign
Property Type Required
name string required
recipients object required
listIds array optional
segments array optional
excludedListIds array optional
templateId integer required
scheduledAt string required

Responses

201
400

bad request

POST /whatsappCampaigns
POST /whatsappCampaigns/template
operationId: WhatsAppCampaigns_createTemplate

Request Body

required

Values to create a WhatsApp template

application/json
schema createWhatsAppTemplate
Property Type Required
name string required
source string optional
bodyText string required
category string required
language string required
mediaUrl string optional
headerText string optional

Responses

201
400

bad request

POST /whatsappCampaigns/template
POST /whatsappCampaigns/template/approval/{templateId}
operationId: WhatsAppCampaigns_sendTemplateForApproval

Parameters

Name In Required Type Description
templateId path required integer

id of the template

Responses

200

WhatsApp template sent for approval

400

bad request

POST /whatsappCampaigns/template/approval/{templateId}

Schemas

object CompaniesCreateCompanyRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "company",
      "description": "Name of company"
    },
    "attributes": {
      "type": "object",
      "example": {
        "owner": "60e68d60582a3b006f524197",
        "domain": "https://example.com",
        "industry": "Fabric"
      },
      "description": "Attributes for company creation"
    },
    "countryCode": {
      "type": "integer",
      "format": "int64",
      "example": 91,
      "description": "Country code if phone_number is passed in attributes."
    }
  }
}
object CompaniesCreateCompanyResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad06",
      "description": "Unique company id"
    }
  },
  "description": "Created company id"
}
object CompaniesLinkUnlinkWithContactDealRequest
{
  "type": "object",
  "properties": {
    "linkDealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Deal ids for deals to be linked with company"
    },
    "linkContactIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts to be linked with company"
    },
    "unlinkDealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045994",
        "61a5ce58c5d479576104595",
        "61a5ce58c5d4795761045996"
      ],
      "description": "Deal ids for deals to be unlinked from company"
    },
    "unlinkContactIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        4,
        5,
        6
      ],
      "description": "Contact ids for contacts to be unlinked from company"
    }
  }
}
object CompaniesList
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Company"
      },
      "description": "List of compaies"
    }
  },
  "description": "List of companies"
}
object CompaniesUpdateCompanyRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "company",
      "description": "Name of company"
    },
    "attributes": {
      "type": "object",
      "example": {
        "date": "2022-05-04T00:00:00+05:30",
        "owner": "5b1a17d914b73d35a76ca0c7",
        "domain": "xyz",
        "revenue": 10000.34222,
        "category": "label_2",
        "industry": "flipkart",
        "phone_number": "81718441912",
        "number_of_contacts": 1,
        "number_of_employees": 100
      },
      "description": "Attributes for company update"
    },
    "countryCode": {
      "type": "integer",
      "format": "int64",
      "example": 91,
      "description": "Country code if phone_number is passed in attributes."
    }
  }
}
object Company
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "629475917295261d9b1f4403",
      "description": "Unique comoany id"
    },
    "attributes": {
      "type": "object",
      "example": {
        "name": "text",
        "owner": "62260474111b1101704a9d85",
        "domain": "xyz",
        "revenue": 10,
        "created_at": "2022-01-13T19:04:24.376+05:30",
        "phone_number": 8171844192,
        "last_updated_at": "2022-04-01T18:47:48.283+05:30",
        "owner_assign_date": "2022-04-01T18:21:13.379+05:30",
        "number_of_contacts": 0
      },
      "description": "Company attributes with values"
    },
    "linkedDealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "format": "objectID",
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Deals ids for companies linked to this company"
    },
    "linkedContactsIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "format": "in64",
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts linked to this company"
    }
  },
  "description": "Company Details"
}
array CompanyAttributes
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "label": {
        "type": "string",
        "example": "Company Name"
      },
      "isRequired": {
        "type": "boolean",
        "example": true
      },
      "internalName": {
        "type": "string",
        "example": "name"
      },
      "attributeOptions": {
        "type": "array",
        "items": {
          "type": "object",
          "example": {
            "key": "custom key",
            "value": "custom label"
          }
        }
      },
      "attributeTypeName": {
        "type": "string",
        "example": "text"
      }
    },
    "description": "List of attributes"
  },
  "description": "List of company attributes"
}
object ContactsAddToListRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/addContactToListByEmails"
    },
    {
      "$ref": "#/components/schemas/addContactToListByIDs"
    }
  ]
}
object ContactsRemoveContactFromListRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/removeContactFromListByEmails"
    },
    {
      "$ref": "#/components/schemas/removeContactFromListByIDs"
    },
    {
      "$ref": "#/components/schemas/removeContactFromListByAll"
    }
  ]
}
object ConversationsMessage
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "eYBEm3gq3zc5ayE2g",
      "description": "Message ID. It can be used for further manipulations with the message."
    },
    "file": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "url",
          "example": "https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/",
          "description": "URL of the file"
        },
        "size": {
          "type": "integer",
          "format": "int64",
          "example": 15538,
          "minimum": 0,
          "description": "Size in bytes"
        },
        "isImage": {
          "type": "boolean",
          "example": true,
          "description": "Whether the file is an image"
        },
        "filename": {
          "type": "string",
          "example": "conversations.png",
          "description": "Name of the file"
        },
        "imageInfo": {
          "type": "object",
          "properties": {
            "width": {
              "type": "integer",
              "format": "int64",
              "example": 1129,
              "minimum": 0,
              "description": "Width of the image"
            },
            "height": {
              "type": "integer",
              "format": "int64",
              "example": 525,
              "minimum": 0,
              "description": "height of the image"
            },
            "previewUrl": {
              "type": "string",
              "format": "url",
              "example": "https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/",
              "description": "URL of the preview"
            }
          },
          "description": "image info is passed in case the file is an image"
        }
      }
    },
    "text": {
      "type": "string",
      "example": "Good morning! How can I help you?",
      "description": "Message text or name of the attached file"
    },
    "type": {
      "enum": [
        "agent",
        "visitor"
      ],
      "type": "string",
      "example": "agent",
      "description": "`\"agent\"` for agents’ messages, `\"visitor\"` for visitors’ messages."
    },
    "agentId": {
      "type": "string",
      "example": "d9nKoegKSjmCtyK78",
      "description": "ID of the agent on whose behalf the message was sent (only in messages sent by an agent)."
    },
    "isPushed": {
      "type": "boolean",
      "example": true,
      "description": "`true` for pushed messages"
    },
    "agentName": {
      "type": "string",
      "example": "Liz",
      "description": "Agent’s name as displayed to the visitor. Only in the messages sent by an agent."
    },
    "createdAt": {
      "type": "integer",
      "format": "int64",
      "example": 1470222622433,
      "minimum": 0,
      "description": "Timestamp in milliseconds."
    },
    "visitorId": {
      "type": "string",
      "example": "kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg",
      "description": "visitor’s ID"
    },
    "receivedFrom": {
      "type": "string",
      "example": "SuperAwesomeHelpdesk",
      "description": "In two-way integrations, messages sent via REST API can be marked with receivedFrom property and then filtered out when received in a webhook to avoid infinite loop."
    }
  },
  "description": "a Conversations message"
}
object ConversationsSendAutomatedMessageRequest
{
  "type": "object",
  "required": [
    "visitorId",
    "text"
  ],
  "properties": {
    "text": {
      "description": "message text"
    },
    "agentId": {
      "description": "agent ID. It can be found on agent’s page or received <a href=\"https://developers.brevo.com/docs/conversations-webhooks\">from a webhook</a>."
    },
    "groupId": {
      "description": "group ID. It can be found on group’s page."
    },
    "visitorId": {
      "description": "visitor’s ID received <a href=\"https://developers.brevo.com/docs/conversations-webhooks\">from a webhook</a> or generated by you to <a href=\"https://developers.brevo.com/docs/customize-the-widget#identifying-existing-users\">bind existing user account to Conversations</a>"
    }
  }
}
object ConversationsSendMessageAsAgentRequest
{
  "type": "object",
  "required": [
    "visitorId",
    "text"
  ],
  "properties": {
    "text": {
      "description": "message text"
    },
    "agentId": {
      "description": "agent ID. It can be found on agent’s page or received <a href=\"https://developers.brevo.com/docs/conversations-webhooks\">from a webhook</a>. Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required)."
    },
    "agentName": {
      "description": "agent name"
    },
    "visitorId": {
      "description": "visitor’s ID received <a href=\"https://developers.brevo.com/docs/conversations-webhooks\">from a webhook</a> or generated by you to <a href=\"https://developers.brevo.com/docs/customize-the-widget#identifying-existing-users\">bind existing user account to Conversations</a>"
    },
    "agentEmail": {
      "description": "agent email. 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."
    },
    "receivedFrom": {
      "description": "mark your messages to distinguish messages created by you from the others."
    }
  }
}
object ConversationsSetAgentOnlineStatusRequest
{
  "type": "object",
  "properties": {
    "agentId": {
      "description": "agent ID. It can be found on agent’s page or received <a href=\"https://developers.brevo.com/docs/conversations-webhooks\">from a webhook</a>. Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required)."
    },
    "agentName": {
      "description": "agent name"
    },
    "agentEmail": {
      "description": "agent email. 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."
    },
    "receivedFrom": {
      "description": "mark your messages to distinguish messages created by you from the others."
    }
  }
}
object ConversationsUpdateAgentMessageRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "edited message text"
    }
  }
}
object ConversationsUpdatePushedMessageRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "edited message text"
    }
  }
}
object ConversionSourceMetrics
{
  "type": "object",
  "required": [
    "id",
    "conversionSource",
    "ordersCount",
    "revenue",
    "averageBasket"
  ],
  "properties": {
    "id": {
      "type": "number",
      "format": "integer"
    },
    "revenue": {
      "type": "number",
      "format": "float"
    },
    "ordersCount": {
      "type": "number",
      "format": "integer"
    },
    "averageBasket": {
      "type": "number",
      "format": "float"
    },
    "conversionSource": {
      "enum": [
        "email_campaign"
      ],
      "type": "string"
    }
  }
}
object ConversionSourceProduct
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1"
    },
    "sku": {
      "type": "string",
      "example": "sku-1"
    },
    "url": {
      "type": "string",
      "example": "https://mydomain.com/products/alpina-panoma-classic"
    },
    "name": {
      "type": "string",
      "example": "Milky Way Galaxy"
    },
    "price": {
      "type": "number",
      "format": "float",
      "example": 1000
    },
    "revenue": {
      "type": "number",
      "format": "float",
      "example": 999.99
    },
    "imageUrl": {
      "type": "string",
      "example": "http://mydomain.com/product-absoulte-url/img.jpeg"
    },
    "ordersCount": {
      "type": "integer",
      "example": 200
    }
  }
}
object CouponsCreateCollectionRequest
{
  "type": "object",
  "required": [
    "name",
    "defaultCoupon"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "10%OFF",
      "description": "Name of the coupons collection"
    },
    "defaultCoupon": {
      "type": "string",
      "example": "Winter",
      "description": "Default coupons collection name"
    },
    "expirationDate": {
      "type": "string",
      "format": "date-time",
      "example": "2022-01-02T00:00:00Z",
      "description": "Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date."
    },
    "remainingDaysAlert": {
      "type": "integer",
      "example": 5,
      "description": "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."
    },
    "remainingCouponsAlert": {
      "type": "integer",
      "example": 5,
      "description": "Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts."
    }
  }
}
object CouponsCreateCollectionResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuidv4",
      "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "description": "The id of the created collection"
    }
  }
}
object CouponsCreateCouponCollectionRequest
{
  "type": "object",
  "required": [
    "collectionId",
    "coupons"
  ],
  "properties": {
    "coupons": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "Uf12AF",
        "description": "Name of the coupon"
      },
      "maxItems": 1000,
      "minItems": 1,
      "uniqueItems": true
    },
    "collectionId": {
      "type": "string",
      "format": "uuidv4",
      "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "description": "The id of the coupon collection for which the coupons will be created"
    }
  }
}
object CouponsUpdateCouponCollectionByIdRequest
{
  "type": "object",
  "properties": {
    "defaultCoupon": {
      "type": "string",
      "example": "10 OFF",
      "description": "A default coupon to be used in case there are no coupons left"
    },
    "expirationDate": {
      "type": "string",
      "format": "date-time",
      "example": "2024-01-01T00:00:00Z",
      "description": "Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date."
    },
    "remainingDaysAlert": {
      "type": "integer",
      "example": 5,
      "description": "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."
    },
    "remainingCouponsAlert": {
      "type": "integer",
      "example": 5,
      "description": "Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts."
    }
  }
}
object CouponsUpdateCouponCollectionByIdResponse
{
  "type": "object",
  "required": [
    "id",
    "name",
    "defaultCoupon"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuidv4",
      "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "description": "The id of the collection"
    },
    "name": {
      "type": "string",
      "format": "uuidv4",
      "example": "SummerPromotions",
      "description": "The name of the collection"
    },
    "defaultCoupon": {
      "type": "string",
      "example": "10 OFF",
      "description": "The default coupon of the collection"
    }
  }
}
object Deal
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "629475917295261d9b1f4403",
      "description": "Unique deal id"
    },
    "attributes": {
      "type": "object",
      "example": {
        "amount": 12,
        "pipeline": "6093d296ad1e9c5cf2140a58",
        "deal_name": "testname",
        "created_at": "2022-05-30T07:42:05.671Z",
        "deal_owner": "6093d2425a9b436e9519d034",
        "deal_stage": "9e577ff7-8e42-4ab3-be26-2b5e01b42518",
        "stage_updated_at": "2022-05-30T07:42:05.671Z",
        "last_updated_date": "2022-06-06T08:38:36.761Z",
        "last_activity_date": "2022-06-06T08:38:36.000Z",
        "next_activity_date": null,
        "number_of_contacts": 1,
        "number_of_activities": 0
      },
      "description": "Deal attributes with values"
    },
    "linkedContactsIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts linked to this deal"
    },
    "linkedCompaniesIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Companies ids for companies linked to this deal"
    }
  },
  "description": "Deal Details"
}
array DealAttributes
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "label": {
        "type": "string",
        "example": "Deal Name"
      },
      "isRequired": {
        "type": "boolean",
        "example": true
      },
      "internalName": {
        "type": "string",
        "example": "deal_name"
      },
      "attributeOptions": {
        "type": "array",
        "items": {
          "type": "object",
          "example": {
            "key": "custom key",
            "value": "custom label"
          }
        }
      },
      "attributeTypeName": {
        "type": "string",
        "example": "text"
      }
    },
    "description": "List of attributes"
  },
  "description": "List of deal attributes"
}
object DealsCreateNewDealRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Deal: Connect with company",
      "description": "Name of deal"
    },
    "attributes": {
      "type": "object",
      "example": {
        "amount": 12,
        "deal_owner": "6093d2425a9b436e9519d034"
      },
      "description": "Attributes for deal creation\n\nTo assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID.\n\nIf you want to create a deal on a specific pipeline and stage you can use the following attributes `pipeline` and `deal_stage`.\n\nPipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`\n"
    }
  }
}
object DealsCreateNewDealResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad06",
      "description": "Unique deal id"
    }
  },
  "description": "Created deal id"
}
object DealsLinkUnlinkPatchRequest
{
  "type": "object",
  "properties": {
    "linkCompanyIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Company ids to be linked with deal"
    },
    "linkContactIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts to be linked with deal"
    },
    "unlinkCompanyIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045994",
        "61a5ce58c5d479576104595",
        "61a5ce58c5d4795761045996"
      ],
      "description": "Company ids to be unlinked from deal"
    },
    "unlinkContactIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        4,
        5,
        6
      ],
      "description": "Contact ids for contacts to be unlinked from deal"
    }
  }
}
object DealsList
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Deal"
      },
      "description": "List of deals"
    }
  },
  "description": "List of Deals"
}
object DealsUpdateDealByIdRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Deal: Connect with client",
      "description": "Name of deal"
    },
    "attributes": {
      "type": "object",
      "example": {
        "amount": 12,
        "deal_owner": "6093d2425a9b436e9519d034"
      },
      "description": "Attributes for deal update\n\nTo assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID.\n\nIf you wish to update the pipeline of a deal you need to provide the `pipeline` and the `deal_stage`\n\nPipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`\n"
    }
  }
}
object EcommerceGetAttributedProductSalesResponse
{
  "type": "object",
  "required": [
    "products"
  ],
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConversionSourceProduct",
        "type": "object"
      },
      "description": "List of attributed products"
    }
  }
}
object EcommerceGetAttributionMetrics200Response
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConversionSourceMetrics"
    },
    {
      "type": "object",
      "required": [
        "newCustomersCount"
      ],
      "properties": {
        "newCustomersCount": {
          "type": "number",
          "format": "integer"
        }
      }
    }
  ]
}
object EcommerceGetAttributionMetricsResponse
{
  "type": "object",
  "required": [
    "results",
    "totals"
  ],
  "properties": {
    "totals": {
      "type": "object",
      "example": {
        "revenue": 1700,
        "ordersCount": 500,
        "averageBasket": 3.4
      },
      "required": [
        "ordersCount",
        "revenue",
        "averageBasket"
      ],
      "properties": {
        "revenue": {
          "type": "number",
          "format": "float"
        },
        "ordersCount": {
          "type": "number",
          "format": "integer"
        },
        "averageBasket": {
          "type": "number",
          "format": "float"
        }
      },
      "description": "Attribution list aggregated totals"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConversionSourceMetrics",
        "type": "object"
      },
      "example": [
        {
          "id": 2,
          "revenue": 900,
          "ordersCount": 300,
          "averageBasket": 3,
          "conversionSource": "email_campaign"
        },
        {
          "id": 1,
          "revenue": 800,
          "ordersCount": 200,
          "averageBasket": 4,
          "conversionSource": "email_campaign"
        }
      ],
      "description": "List of conversion attribution metrics"
    }
  }
}
object EcommerceGetOrdersResponse
{
  "type": "object",
  "example": {
    "count": 1,
    "orders": [
      {
        "id": "order1803X",
        "email": "testvisitor@sendinblue.com",
        "amount": 2000,
        "status": "complete",
        "billing": {
          "city": "Noida",
          "phone": 9238283982,
          "region": "North India",
          "address": "Sec 62, Noida",
          "postCode": 110001,
          "countryCode": "IN",
          "paymentMethod": "Net banking"
        },
        "coupons": [
          "flat50",
          "flat40"
        ],
        "products": [
          {
            "price": 100,
            "quantity": 2,
            "productId": 21,
            "variantId": "P100"
          },
          {
            "price": 100,
            "quantity": 2,
            "productId": 21,
            "variantId": "P15756"
          }
        ],
        "createdAt": "2021-12-31T11:42:35.638Z",
        "updatedAt": "2022-03-03T14:48:31.867Z",
        "contact_id": 2
      }
    ]
  },
  "properties": {
    "count": {
      "type": "number",
      "example": 1
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "order1803"
          },
          "email": {
            "type": "string",
            "example": "testvisitor@sendinblue.com"
          },
          "amount": {
            "type": "number",
            "example": 2000
          },
          "status": {
            "type": "string",
            "example": "complete"
          },
          "billing": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "example": "Noida"
              },
              "phone": {
                "type": "number",
                "example": 9238283982
              },
              "region": {
                "type": "string",
                "example": "North India"
              },
              "address": {
                "type": "string",
                "example": "Sec 62, Noida"
              },
              "postCode": {
                "type": "number",
                "example": 110001
              },
              "countryCode": {
                "type": "string",
                "example": "IN"
              },
              "paymentMethod": {
                "type": "string",
                "example": "Net banking"
              }
            }
          },
          "coupons": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "flat50"
            }
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "price": {
                  "type": "number",
                  "example": 100
                },
                "quantity": {
                  "type": "number",
                  "example": 2
                },
                "productId": {
                  "type": "number",
                  "example": 21
                },
                "variantId": {
                  "type": "string",
                  "example": "P100"
                }
              }
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-12-31T11:42:35.638Z"
          },
          "updatedAt": {
            "type": "string",
            "example": "2022-03-03T14:48:31.867Z"
          },
          "contact_id": {
            "type": "number",
            "example": 2
          }
        }
      }
    }
  }
}
object ExternalFeedsCreateFeedResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuidv4",
      "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "description": "ID of the object created"
    }
  }
}
object FileData
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "example.png",
      "description": "Name of uploaded file"
    },
    "size": {
      "type": "integer",
      "format": "int64",
      "example": 10,
      "description": "Size of file in bytes"
    },
    "dealId": {
      "type": "string",
      "example": "61a5ce58c5d4795761045991",
      "description": "Deal id linked to a file"
    },
    "authorId": {
      "type": "string",
      "example": "61a5ce58y5d4795761045991",
      "description": "Account id of user which created the file"
    },
    "companyId": {
      "type": "string",
      "example": "61a5ce58c5d4795761045991",
      "description": "Company id linked to a file"
    },
    "contactId": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Contact id of contact on which file is uploaded"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "example": "2017-05-01T17:05:03.000Z",
      "description": "File created date/time"
    }
  },
  "description": "File data that is uploaded"
}
object FileDownloadableLink
{
  "type": "object",
  "properties": {
    "fileUrl": {
      "type": "string",
      "example": "https://storage.googleapis.com/brevo-app-crm.......-sample.pdf",
      "description": "A unique link to download the requested file."
    }
  },
  "description": "Downloadable file link"
}
array FileList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/FileData"
  },
  "description": "List of files"
}
object FilesUploadFileRequest
{
  "type": "object",
  "required": [
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "description": "File data to create a file."
    },
    "dealId": {
      "type": "string"
    },
    "companyId": {
      "type": "string"
    },
    "contactId": {
      "type": "integer",
      "format": "int64"
    }
  }
}
string InboundParsingGetAttachmentByTokenResponse
{
  "type": "string",
  "format": "binary"
}
object MasterAccountCreateGroupOfSubAccountsRequest
{
  "type": "object",
  "required": [
    "groupName"
  ],
  "properties": {
    "groupName": {
      "type": "string",
      "example": "My group",
      "description": "The name of the group of sub-accounts"
    },
    "subAccountIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        234322,
        325553,
        893432
      ],
      "description": "Pass the list of sub-account Ids to be included in the group"
    }
  }
}
object MasterAccountCreateGroupOfSubAccountsResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
object MasterAccountCreateSubAccountKeyRequest
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 3232323,
      "description": "Id of the sub-account organization"
    },
    "name": {
      "type": "string",
      "example": "My Api Key",
      "description": "Name of the API key"
    }
  }
}
object MasterAccountGenerateSsoTokenRequest
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "vipin+ent-user@brevo.com",
      "description": "User email of admin account"
    }
  }
}
object MasterAccountGenerateSsoTokenRequest1
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 3232323,
      "description": "Id of the sub-account organization"
    },
    "url": {
      "type": "string",
      "example": "https://app.brevo.com/senders/domain/list",
      "description": "Set the full target URL after login success. The user will land directly on this target URL after login"
    },
    "email": {
      "type": "string",
      "example": "vipin+subaccount@brevo.com",
      "description": "User email of sub-account organization"
    },
    "target": {
      "enum": [
        "automation",
        "email_campaign",
        "contacts",
        "landing_pages",
        "email_transactional",
        "senders",
        "sms_campaign",
        "sms_transactional"
      ],
      "type": "string",
      "example": "contacts",
      "description": "**Set target after login success**\n* **automation** - Redirect to Automation after login\n* **email_campaign** - Redirect to Email Campaign after login\n* **contacts** - Redirect to Contacts after login\n* **landing_pages** - Redirect to Landing Pages after login\n* **email_transactional** - Redirect to Email Transactional after login\n* **senders** - Redirect to Senders after login\n* **sms_campaign** - Redirect to Sms Campaign after login\n* **sms_transactional** - Redirect to Sms Transactional after login\n"
    }
  }
}
array MasterAccountListGroupsResponse
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "Unique id of the group"
      },
      "groupName": {
        "type": "string",
        "description": "The name of the group of sub-accounts"
      }
    }
  }
}
object MasterAccountResendCancelAdminUserInvitationResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Action success message"
    }
  }
}
object MasterAccountSendInvitationToAdminUserResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
object MasterAccountUnlinkSubAccountFromGroupRequest
{
  "type": "object",
  "required": [
    "subAccountIds"
  ],
  "properties": {
    "subAccountIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        423432,
        234323,
        87678
      ],
      "description": "List of sub-account ids"
    }
  }
}
object MasterAccountUpdateGroupSubAccountsRequest
{
  "type": "object",
  "properties": {
    "groupName": {
      "type": "string",
      "example": "My group",
      "description": "The name of the group of sub-accounts"
    },
    "subAccountIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "example": [
        234322,
        325553,
        893432
      ],
      "description": "Pass the list of sub-account Ids to be included in the group"
    }
  }
}
object Note
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad09",
      "description": "Unique note Id"
    },
    "text": {
      "type": "string",
      "example": "In communication with client for resolution of queries.",
      "maxLength": 3000,
      "minLength": 1,
      "description": "Text content of a note"
    },
    "dealIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991"
      ],
      "description": "Deal ids linked to a note"
    },
    "authorId": {
      "type": "object",
      "example": {
        "id": "61a5ce58y5d4795761045991",
        "name": {
          "fullName": "John Doe"
        },
        "email": "johndoe@example.com",
        "locale": "en_GB",
        "timezone": "Asia/Kolkata"
      },
      "description": "Account details of user which created the note"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "example": "2017-05-01T17:05:03.000Z",
      "description": "Note created date/time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "example": "2017-05-01T17:05:03.000Z",
      "description": "Note updated date/time"
    },
    "contactIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        247,
        1,
        2
      ],
      "description": "Contact ids linked to a note"
    }
  },
  "description": "Note Details"
}