Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.brevo.com/v3
/account
account informations
GET /account
/organization/activities
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Enter start date in UTC date (YYYY-MM-DD) format to filter the activity in your account. Maximum time period that can be selected is one month. Additionally, you can retrieve activity logs from the past 12 months from the date of your search. |
| endDate | query | optional | string | Mandatory if startDate is used. Enter end date in UTC date (YYYY-MM-DD) format to filter the activity in your account. Maximum time period that can be selected is one month. |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page. |
list of user activity logs
bad request
GET /organization/activities
/companies
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filters | query | optional | string | Filter by attrbutes. If you have filter for owner on your side please send it as {“attributes.owner”:”6299dcf3874a14eacbc65c46”} |
| linkedContactsIds | query | optional | integer | Filter by linked contacts ids |
| linkedDealsIds | query | optional | string | Filter by linked Deals ids |
| page | query | optional | integer | Index of the first document of the page |
| limit | query | optional | integer | Number of documents per page |
| sort | query | optional | string | Sort the results in the ascending/descending order. Default order is descending by creation if |
| sortBy | query | optional | string | The field used to sort field names. |
Returns companies list with filters
Returned when query params are invalid
GET /companies
/companies/attributes
Returns list of company attributes
GET /companies/attributes
/companies/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Get Company Details |
Returns the Company
Returned when invalid data posted
Returned when item not found
GET /companies/{id}
/contacts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document of the page |
| modifiedSince | query | optional | string | Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| createdSince | query | optional | string | Filter (urlencoded) the contacts created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| segmentId | query | optional | integer | Id of the segment. Either listIds or segmentId can be passed. |
| listIds | query | optional | array | Ids of the list. Either listIds or segmentId can be passed. |
All contacts listed
bad request
GET /contacts
/contacts/attributes
Attributes listed
GET /contacts/attributes
/contacts/folders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | required | integer | Number of documents per page |
| offset | query | required | integer | Index of the first document of the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Folders informations
bad request
GET /contacts/folders
/contacts/folders/{folderId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| folderId | path | required | integer | id of the folder |
Folder details
bad request
Folder ID not found
GET /contacts/folders/{folderId}
/contacts/folders/{folderId}/lists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| folderId | path | required | integer | Id of the folder |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document of the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Folder’s Lists details
bad request
Folder ID not found
GET /contacts/folders/{folderId}/lists
/contacts/lists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document of the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Lists informations
bad request
GET /contacts/lists
/contacts/lists/{listId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| listId | path | required | integer | Id of the list |
| startDate | query | optional | string | Mandatory if endDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. |
List informations
bad request
List ID not found
GET /contacts/lists/{listId}
/contacts/lists/{listId}/contacts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| listId | path | required | integer | Id of the list |
| modifiedSince | query | optional | string | Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document of the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Contact informations
bad request
List ID not found
GET /contacts/lists/{listId}/contacts
/contacts/segments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document of the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Segments informations
bad request
GET /contacts/segments
/contacts/{identifier}
Along with the contact details, this endpoint will show the statistics of contact for the recent 90 days by default. To fetch the earlier statistics, please use Get contact campaign stats https://developers.brevo.com/reference/contacts-7#getcontactstats endpoint with the appropriate date ranges.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| identifier | path | required | Email (urlencoded) OR ID of the contact OR its SMS attribute value |
|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. |
Contact informations
bad request
Contact’s email not found
GET /contacts/{identifier}
/contacts/{identifier}/campaignStats
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| identifier | path | required | Email (urlencoded) OR ID of the contact |
|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Maximum difference between startDate and endDate should not be greater than 90 days |
Contact campaign statistics informations
bad request
Contact’s email not found
GET /contacts/{identifier}/campaignStats
/conversations/messages/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the message |
Requested message is returned as a response
Returned when invalid data posted
Returned when item not found
GET /conversations/messages/{id}
/conversations/pushedMessages/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the message sent previously |
Requested message is returned as a response
Returned when invalid data posted
Returned when item not found
GET /conversations/pushedMessages/{id}
/couponCollections
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document on the page |
| sort | query | optional | string | Sort the results by creation time in ascending/descending order |
| sortBy | query | optional | string | The field used to sort coupon collections |
Coupon collections
bad request
unauthorized
GET /couponCollections
/couponCollections/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Id of the collection to return |
Coupon collection
bad request
unauthorized
Coupon collection not found
GET /couponCollections/{id}
/crm/attributes/deals
Returns list of deal attributes
GET /crm/attributes/deals
/crm/deals
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filters[attributes.deal_name] | query | optional | string | Filter by attributes. If you have a filter for the owner on your end, please send it as filters[attributes.deal_owner] and utilize the account email for the filtering. |
| filters[linkedCompaniesIds] | query | optional | string | Filter by linked companies ids |
| filters[linkedContactsIds] | query | optional | string | Filter by linked companies ids |
| offset | query | optional | integer | Index of the first document of the page |
| limit | query | optional | integer | Number of documents per page |
| sort | query | optional | string | Sort the results in the ascending/descending order. Default order is descending by creation if |
Returns deals list with filters
Returned when query params are invalid
GET /crm/deals
/crm/deals/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
Returns the deal by id
Returned when task id is invalid
Returned when item not found
GET /crm/deals/{id}
/crm/pipeline/details/all
Returns list of pipeline and its details
Returned when pipeline id is invalid or does not exist
GET /crm/pipeline/details/all
/crm/pipeline/details/{pipelineID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| pipelineID | path | required | string | — |
Returns pipeline and its details
Returned when pipeline id is invalid or does not exist
GET /crm/pipeline/details/{pipelineID}
/senders/domains
list of domains
bad request
GET /senders/domains
/senders/domains/{domainName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| domainName | path | required | string | Domain name |
domain configuration
bad request
Domain does not exist
GET /senders/domains/{domainName}
/ecommerce/attribution/metrics
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| periodFrom | query | optional | string | When getting metrics for a specific period, define the starting datetime in RFC3339 format |
| periodTo | query | optional | string | When getting metrics for a specific period, define the end datetime in RFC3339 format |
| emailCampaignId[] | query | optional | array | The email campaign id(s) to get metrics for |
OK
bad request
GET /ecommerce/attribution/metrics
/ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| conversionSource | path | required | string | The Brevo campaign type for which data will be retrieved |
| conversionSourceId | path | required | number | The Brevo campaign id for which data will be retrieved |
OK
bad request
GET /ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}
/ecommerce/attribution/products/{conversionSource}/{conversionSourceId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| conversionSource | path | required | string | The Brevo campaign type for which data will be retrieved |
| conversionSourceId | path | required | number | The Brevo campaign id for which data will be retrieved |
OK
bad request
GET /ecommerce/attribution/products/{conversionSource}/{conversionSourceId}
/categories
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| ids | query | optional | array | Filter by category ids |
| name | query | optional | string | Filter by category name |
| modifiedSince | query | optional | string | Filter (urlencoded) the categories modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| createdSince | query | optional | string | Filter (urlencoded) the categories created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
All categories listed
bad request
GET /categories
/categories/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Category ID |
Category informations
bad request
Category id not found
GET /categories/{id}
/orders
Get all the orders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| modifiedSince | query | optional | string | Filter (urlencoded) the orders modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| createdSince | query | optional | string | Filter (urlencoded) the orders created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
orders fetched successfully
bad request
GET /orders
/products
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| ids | query | optional | array | Filter by product ids |
| name | query | optional | string | Filter by product name, minimum 3 characters should be present for search |
| price[lte] | query | optional | number | Price filter for products less than and equals to particular amount |
| price[gte] | query | optional | number | Price filter for products greater than and equals to particular amount |
| price[lt] | query | optional | number | Price filter for products less than particular amount |
| price[gt] | query | optional | number | Price filter for products greater than particular amount |
| price[eq] | query | optional | number | Price filter for products equals to particular amount |
| price[ne] | query | optional | number | Price filter for products not equals to particular amount |
| categories | query | optional | array | Filter by product categories |
| modifiedSince | query | optional | string | Filter (urlencoded) the orders modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
| createdSince | query | optional | string | Filter (urlencoded) the orders created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result. |
All products listed
bad request
GET /products
/products/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Product ID |
Product informations
bad request
Product’s id not found
GET /products/{id}
/emailCampaigns
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| type | query | optional | string | Filter on the type of the campaigns |
| status | query | optional | string | Filter on the status of the campaign |
| statistics | query | optional | string | Filter on the type of statistics required. Example globalStats value will only fetch globalStats info of the campaign in returned response. |
| startDate | query | optional | string | Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| excludeHtmlContent | query | optional | boolean | Use this flag to exclude htmlContent from the response body. If set to true, htmlContent field will be returned as empty string in the response body |
Email campaigns informations
bad request
GET /emailCampaigns
/emailCampaigns/{campaignId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaignId | path | required | integer | Id of the campaign |
| statistics | query | optional | string | Filter on the type of statistics required. Example globalStats value will only fetch globalStats info of the campaign in returned response. |
Email campaign informations
bad request
Campaign ID not found
GET /emailCampaigns/{campaignId}
/emailCampaigns/{campaignId}/abTestCampaignResult
Obtain winning version of an A/B test email campaign
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaignId | path | required | integer | Id of the A/B test campaign |
A/B test email campaign Result
bad request
A/B test Email Campaign not found
GET /emailCampaigns/{campaignId}/abTestCampaignResult
/emailCampaigns/{campaignId}/sharedUrl
Get a unique URL to share & import an email template from one Brevo account to another.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaignId | path | required | integer | Id of the campaign or template |
Shared template URL information
bad request
Campaign/Template ID not found
Only email campaigns or templates are allowed
GET /emailCampaigns/{campaignId}/sharedUrl
/feeds
This endpoint can fetch all created external feeds.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| search | query | optional | string | Can be used to filter records by search keyword on feed name |
| startDate | query | optional | string | Mandatory if |
| endDate | query | optional | string | Mandatory if |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| authType | query | optional | string | Filter the records by |
| limit | query | optional | integer | Number of documents returned per page. |
| offset | query | optional | integer | Index of the first document on the page. |
External feeds
Invalid parameters passed
Record not found
GET /feeds
/feeds/{uuid}
This endpoint will update an external feed.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| uuid | path | required | string | UUID of the feed to fetch |
External feed
bad request
Feed not found
GET /feeds/{uuid}
/crm/files
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| entity | query | optional | string | Filter by file entity type |
| entityIds | query | optional | string | Filter by file entity IDs |
| dateFrom | query | optional | integer | dateFrom to date range filter type (timestamp in milliseconds) |
| dateTo | query | optional | integer | dateTo to date range filter type (timestamp in milliseconds) |
| offset | query | optional | integer | Index of the first document of the page |
| limit | query | optional | integer | Number of documents per page |
| sort | query | optional | string | Sort the results in the ascending/descending order. Default order is descending by creation if |
Returns files list with filters
Returned when query params are invalid
GET /crm/files
/crm/files/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | File id to download. |
Returns downloadable file link. Valid for next 5 minutes only.
Returned when invalid data posted
Returned when item not found
GET /crm/files/{id}
/crm/files/{id}/data
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | File id to get file data. |
Returned when file is found.
Returned when invalid data posted
Returned when item not found
GET /crm/files/{id}/data
/inbound/attachments/{downloadToken}
This endpoint will retrieve inbound attachment with download token.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| downloadToken | path | required | string | Token to fetch a particular attachment |
Attachment information
bad request
attachment not found
GET /inbound/attachments/{downloadToken}
/inbound/events
This endpoint will show the list of all the events for the received emails.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sender | query | optional | string | Email address of the sender. |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) from which you want to fetch the list. Maximum time period that can be selected is one month. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) till which you want to fetch the list. Maximum time period that can be selected is one month. |
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document on the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation |
List of events for received emails.
bad request
GET /inbound/events
/inbound/events/{uuid}
This endpoint will show the list of all events history for one particular received email.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| uuid | path | required | string | UUID to fetch events specific to recieved email |
Email campaign informations
bad request
GET /inbound/events/{uuid}
/corporate/group/{id}
This endpoint allows you to retrieve a specific group’s information such as the list of sub-organizations and the user associated with the group.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Id of the group of sub-organization |
Group details
GET /corporate/group/{id}
/corporate/groups
This endpoint allows you to list all groups created on your Admin account.
list of all the sub-account groups
GET /corporate/groups
/corporate/invited/users
This endpoint allows you to list all Admin users of your Admin account
list of all admin users
GET /corporate/invited/users
/corporate/masterAccount
This endpoint will provide the details of the master account.
Master account details
bad request
GET /corporate/masterAccount
/corporate/subAccount
This endpoint will provide the list all the sub-accounts of the master account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| offset | query | required | integer | Index of the first sub-account in the page |
| limit | query | required | integer | Number of sub-accounts to be displayed on each page |
Sub-accounts list
bad request
GET /corporate/subAccount
/corporate/subAccount/{id}
This endpoint will provide the details for the specified sub-account company
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | Id of the sub-account organization |
Sub-account organization details
bad request
GET /corporate/subAccount/{id}
/corporate/user/{email}/permissions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | Email of the invited user. |
List of user’s permissions
bad request
GET /corporate/user/{email}/permissions
/crm/notes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| entity | query | optional | string | Filter by note entity type |
| entityIds | query | optional | string | Filter by note entity IDs |
| dateFrom | query | optional | integer | dateFrom to date range filter type (timestamp in milliseconds) |
| dateTo | query | optional | integer | dateTo to date range filter type (timestamp in milliseconds) |
| offset | query | optional | integer | Index of the first document of the page |
| limit | query | optional | integer | Number of documents per page |
| sort | query | optional | string | Sort the results in the ascending/descending order. Default order is descending by creation if |
Returns notes list with filters
Returned when query params are invalid
GET /crm/notes
/crm/notes/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Note ID to get |
Returns the Note by id
Returned when invalid data posted
Returned when item not found
GET /crm/notes/{id}
/payments/requests/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | Id of the payment Request |
Payment request details
Bad request.
Unauthorized.
Permission denied. Either you don’t have access to Brevo Payments or your Brevo Payments account is not validated.
Payment request not found.
GET /payments/requests/{id}
/processes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number limitation for the result returned |
| offset | query | optional | integer | Beginning point in the list to retrieve from. |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
processes informations
bad request
GET /processes
/processes/{processId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| processId | path | required | integer | Id of the process |
process informations
bad request
Process ID not found
GET /processes/{processId}
/reseller/children
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents for child accounts information per page |
| offset | query | optional | integer | Index of the first document in the page |
list of children
Current account is not a reseller
GET /reseller/children
/reseller/children/{childIdentifier}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| childIdentifier | path | required | string | Either auth key or id of reseller’s child |
Information for the child
bad request
Current account is not a reseller
Child auth key or child id not found
GET /reseller/children/{childIdentifier}
/reseller/children/{childIdentifier}/accountCreationStatus
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| childIdentifier | path | required | string | Either auth key or id of reseller’s child |
status of reseller’s child account
bad request
Current account is not a reseller
Child auth key or child id not found
GET /reseller/children/{childIdentifier}/accountCreationStatus
/reseller/children/{childIdentifier}/auth
It returns a session [token] which will remain valid for a short period of time. A child account will be able to access a white-labeled section by using the following url pattern => https:/email.mydomain.com/login/sso?token=[token]
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| childIdentifier | path | required | string | Either auth key or id of reseller’s child |
Session token
bad request
Current account is not a reseller
Child auth key or child id not found
GET /reseller/children/{childIdentifier}/auth
/reseller/children/{childIdentifier}/domains
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| childIdentifier | path | required | string | Either auth key or id of reseller’s child |
Sender domains of the child
bad request
Current account is not a reseller
Child auth key or child id not found
GET /reseller/children/{childIdentifier}/domains
/smsCampaigns
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| status | query | optional | string | Status of campaign. |
| startDate | query | optional | string | Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either ‘status’ not passed and if passed is set to ‘sent’ ) |
| endDate | query | optional | string | Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. Prefer to pass your timezone in date-time format for accurate result ( only available if either ‘status’ not passed and if passed is set to ‘sent’ ) |
| limit | query | optional | integer | Number limitation for the result returned |
| offset | query | optional | integer | Beginning point in the list to retrieve from. |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
SMS campaigns informations
bad request
GET /smsCampaigns
/smsCampaigns/{campaignId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaignId | path | required | integer | id of the SMS campaign |
SMS campaign informations
bad request
Campaign ID not found
GET /smsCampaigns/{campaignId}
/senders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ip | query | optional | string | Filter your senders for a specific ip. Available for dedicated IP usage only |
| domain | query | optional | string | Filter your senders for a specific domain |
list of senders
bad request
GET /senders
/senders/ips
list of dedicated IPs
GET /senders/ips
/senders/{senderId}/ips
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| senderId | path | required | integer | Id of the sender |
list of dedicated IPs
bad request
Sender ID not found
GET /senders/{senderId}/ips
/crm/tasks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filter[type] | query | optional | string | Filter by task type (ID) |
| filter[status] | query | optional | string | Filter by task status |
| filter[date] | query | optional | string | Filter by date |
| filter[assignTo] | query | optional | string | Filter by the “assignTo” ID. You can utilize account emails for the “assignTo” attribute. |
| filter[contacts] | query | optional | string | Filter by contact ids |
| filter[deals] | query | optional | string | Filter by deals ids |
| filter[companies] | query | optional | string | Filter by companies ids |
| dateFrom | query | optional | integer | dateFrom to date range filter type (timestamp in milliseconds) |
| dateTo | query | optional | integer | dateTo to date range filter type (timestamp in milliseconds) |
| offset | query | optional | integer | Index of the first document of the page |
| limit | query | optional | integer | Number of documents per page |
| sort | query | optional | string | Sort the results in the ascending/descending order. Default order is descending by creation if |
| sortBy | query | optional | string | The field used to sort field names. |
Returns task list with filters
Returned when query params are invalid
GET /crm/tasks
/crm/tasks/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
Returns the Task by id
Returned when task id is invalid
Returned when item not found
GET /crm/tasks/{id}
/crm/tasktypes
Returns all the Task types
GET /crm/tasktypes
/smtp/blockedContacts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts |
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document on the page |
| senders | query | optional | array | Comma separated list of emails of the senders from which contacts are blocked or unsubscribed |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
List of blocked or unsubscribed transactional contacts
bad request
GET /smtp/blockedContacts
/smtp/blockedDomains
Get the list of blocked domains
List of blocked domains
GET /smtp/blockedDomains
/smtp/emailStatus/{identifier}
Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| identifier | path | required | string | The |
| startDate | query | optional | string | Mandatory if |
| endDate | query | optional | string | Mandatory if |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| status | query | optional | string | Filter the records by |
| limit | query | optional | integer | Number of documents returned per page. Not valid when identifier is |
| offset | query | optional | integer | Index of the first document on the page. Not valid when identifier is |
Scheduled email batches
Invalid parameters passed
Record(s) for identifier not found
GET /smtp/emailStatus/{identifier}
/smtp/emails
This endpoint will show the list of emails for past 30 days by default. To retrieve emails before that time, please pass startDate and endDate in query filters.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | optional | string | Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. |
|
| templateId | query | optional | integer | Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. |
| messageId | query | optional | string | Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document in the page |
List of transactional emails
bad request
GET /smtp/emails
/smtp/emails/{uuid}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| uuid | path | required | string | Unique id of the transactional email that has been sent to a particular contact |
Transactional email content
GET /smtp/emails/{uuid}
/smtp/statistics/aggregatedReport
This endpoint will show the aggregated stats for past 90 days by default if startDate and endDate OR days is not passed. The date range can not exceed 90 days
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| tag | query | optional | string | Tag of the emails |
Aggregated report informations
bad request
GET /smtp/statistics/aggregatedReport
/smtp/statistics/events
This endpoint will show the aggregated stats for past 30 days by default if startDate and endDate OR days is not passed. The date range can not exceed 90 days
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number limitation for the result returned |
| offset | query | optional | integer | Beginning point in the list to retrieve from. |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| query | optional | string | Filter the report for a specific email addresses |
|
| event | query | optional | string | Filter the report for a specific event type |
| tags | query | optional | string | Filter the report for tags (serialized and urlencoded array) |
| messageId | query | optional | string | Filter on a specific message id |
| templateId | query | optional | integer | Filter on a specific template id |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Email events report informations
bad request
GET /smtp/statistics/events
/smtp/statistics/reports
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document on the page |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| tag | query | optional | string | Tag of the emails |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Aggregated report informations
bad request
GET /smtp/statistics/reports
/smtp/templates
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| templateStatus | query | optional | boolean | Filter on the status of the template. Active = true, inactive = false |
| limit | query | optional | integer | Number of documents returned per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
transactional email templates informations
bad request
GET /smtp/templates
/smtp/templates/{templateId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| templateId | path | required | integer | id of the template |
Email template informations
bad request
Template ID not found
GET /smtp/templates/{templateId}
/transactionalSMS/statistics/aggregatedReport
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with startDate and endDate |
| tag | query | optional | string | Filter on a tag |
Aggregated SMS report informations
bad request
GET /transactionalSMS/statistics/aggregatedReport
/transactionalSMS/statistics/events
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of documents per page |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report |
| offset | query | optional | integer | Index of the first document of the page |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| phoneNumber | query | optional | string | Filter the report for a specific phone number |
| event | query | optional | string | Filter the report for specific events |
| tags | query | optional | string | Filter the report for specific tags passed as a serialized urlencoded array |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Sms events report informations
bad request
GET /transactionalSMS/statistics/events
/transactionalSMS/statistics/reports
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the report |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the report |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| tag | query | optional | string | Filter on a tag |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
Aggregated SMS report informations
bad request
GET /transactionalSMS/statistics/reports
/whatsapp/statistics/events
This endpoint will show the unaggregated statistics for WhatsApp activity (30 days by default if startDate and endDate or days is not passed. The date range can not exceed 90 days)
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number limitation for the result returned |
| offset | query | optional | integer | Beginning point in the list to retrieve from |
| startDate | query | optional | string | Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate |
| endDate | query | optional | string | Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate |
| days | query | optional | integer | Number of days in the past including today (positive integer). Not compatible with ‘startDate’ and ‘endDate’ |
| contactNumber | query | optional | string | Filter results for specific contact (WhatsApp Number with country code. Example, 85264318721) |
| event | query | optional | string | Filter the report for a specific event type |
| sort | query | optional | string | Sort the results in the ascending/descending order of record creation. Default order is descending if |
WhatsApp events report
bad request
GET /whatsapp/statistics/events
/organization/invited/users
list of all your users
bad request
GET /organization/invited/users
/organization/user/{email}/permissions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | Email of the invited user. |
list of all the user’s permissions
bad request
GET /organization/user/{email}/permissions
/webhooks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| type | query | optional | string | Filter on webhook type |
| sort | query | optional | string | Sort the results in the ascending/descending order of webhook creation |
Webhooks informations
bad request
GET /webhooks
/webhooks/{webhookId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webhookId | path | required | integer | Id of the webhook |
Webhook informations
bad request
Webhook ID not found
GET /webhooks/{webhookId}
/whatsappCampaigns
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record modification. Default order is descending if |
WhatsApp campaigns information
bad request
GET /whatsappCampaigns
/whatsappCampaigns/config
Get all the information of your WhatsApp API account
bad request
GET /whatsappCampaigns/config
/whatsappCampaigns/template-list
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| startDate | query | optional | string | Mandatory if endDate is used. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. |
| endDate | query | optional | string | Mandatory if startDate is used. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. |
| limit | query | optional | integer | Number of documents per page |
| offset | query | optional | integer | Index of the first document in the page |
| sort | query | optional | string | Sort the results in the ascending/descending order of record modification. Default order is descending if |
| source | query | optional | string | source of the template |
WhatsApp templates informations
bad request
GET /whatsappCampaigns/template-list
/whatsappCampaigns/{campaignId}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaignId | path | required | integer | Id of the campaign |
Get WhatsApp campaign information on the basis of campaignId
bad request
Campaign Id not found
GET /whatsappCampaigns/{campaignId}
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."
}
}
}
CompaniesCreateCompanyResponse
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "61a5cd07ca1347c82306ad06",
"description": "Unique company id"
}
},
"description": "Created company id"
}
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"
}
}
}
CompaniesList
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Company"
},
"description": "List of compaies"
}
},
"description": "List of companies"
}
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."
}
}
}
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"
}
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"
}
ContactsAddToListRequest
{
"oneOf": [
{
"$ref": "#/components/schemas/addContactToListByEmails"
},
{
"$ref": "#/components/schemas/addContactToListByIDs"
}
]
}
ContactsRemoveContactFromListRequest
{
"oneOf": [
{
"$ref": "#/components/schemas/removeContactFromListByEmails"
},
{
"$ref": "#/components/schemas/removeContactFromListByIDs"
},
{
"$ref": "#/components/schemas/removeContactFromListByAll"
}
]
}
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"
}
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>"
}
}
}
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."
}
}
}
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."
}
}
}
ConversationsUpdateAgentMessageRequest
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "edited message text"
}
}
}
ConversationsUpdatePushedMessageRequest
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "edited message text"
}
}
}
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"
}
}
}
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
}
}
}
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."
}
}
}
CouponsCreateCollectionResponse
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuidv4",
"example": "23befbae-1505-47a8-bd27-e30ef739f32c",
"description": "The id of the created collection"
}
}
}
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"
}
}
}
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."
}
}
}
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"
}
}
}
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"
}
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"
}
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"
}
}
}
DealsCreateNewDealResponse
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "61a5cd07ca1347c82306ad06",
"description": "Unique deal id"
}
},
"description": "Created deal id"
}
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"
}
}
}
DealsList
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Deal"
},
"description": "List of deals"
}
},
"description": "List of Deals"
}
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"
}
}
}
EcommerceGetAttributedProductSalesResponse
{
"type": "object",
"required": [
"products"
],
"properties": {
"products": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversionSourceProduct",
"type": "object"
},
"description": "List of attributed products"
}
}
}
EcommerceGetAttributionMetrics200Response
{
"allOf": [
{
"$ref": "#/components/schemas/ConversionSourceMetrics"
},
{
"type": "object",
"required": [
"newCustomersCount"
],
"properties": {
"newCustomersCount": {
"type": "number",
"format": "integer"
}
}
}
]
}
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"
}
}
}
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
}
}
}
}
}
}
ExternalFeedsCreateFeedResponse
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuidv4",
"example": "23befbae-1505-47a8-bd27-e30ef739f32c",
"description": "ID of the object created"
}
}
}
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"
}
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"
}
FileList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/FileData"
},
"description": "List of files"
}
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"
}
}
}
InboundParsingGetAttachmentByTokenResponse
{
"type": "string",
"format": "binary"
}
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"
}
}
}
MasterAccountCreateGroupOfSubAccountsResponse
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
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"
}
}
}
MasterAccountGenerateSsoTokenRequest
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "vipin+ent-user@brevo.com",
"description": "User email of admin account"
}
}
}
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"
}
}
}
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"
}
}
}
}
MasterAccountResendCancelAdminUserInvitationResponse
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Action success message"
}
}
}
MasterAccountSendInvitationToAdminUserResponse
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
MasterAccountUnlinkSubAccountFromGroupRequest
{
"type": "object",
"required": [
"subAccountIds"
],
"properties": {
"subAccountIds": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
423432,
234323,
87678
],
"description": "List of sub-account ids"
}
}
}
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"
}
}
}
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"
}