Brevo

Email marketing and transactional email platform

developers.brevo.com ↗
Version
3.0.0
OpenAPI
3.0.1
Endpoints
227
Schemas
264
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

Authentication

apiKey

Endpoints

Clear filters

Account 2 endpoints

GET /account
operationId: Account_informationDetails

Responses

200 account informations
GET /account
GET /organization/activities
operationId: Account_getUserActivityLogs

Parameters

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.

Responses

200 list of user activity logs
400 bad request
GET /organization/activities

Companies 3 endpoints

GET /companies
operationId: Companies_getAll

Parameters

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 `sort` is not passed
sortBy query optional string The field used to sort field names.

Responses

200 Returns companies list with filters
400 Returned when query params are invalid
GET /companies
GET /companies/attributes
operationId: Companies_getAttributes

Responses

200 Returns list of company attributes
GET /companies/attributes
GET /companies/{id}
operationId: Companies_getCompanyById

Parameters

Name In Required Type Description
id path required string Get Company Details

Responses

200 Returns the Company
400 Returned when invalid data posted
404 Returned when item not found
GET /companies/{id}

Contacts 11 endpoints

GET /contacts
operationId: Contacts_getAllContacts

Parameters

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 `sort` is not passed
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.**

Responses

200 All contacts listed
400 bad request
GET /contacts
GET /contacts/attributes
operationId: Contacts_listAttributes

Responses

200 Attributes listed
GET /contacts/attributes
GET /contacts/folders
operationId: Contacts_getAllFolders

Parameters

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 `sort` is not passed

Responses

200 Folders informations
400 bad request
GET /contacts/folders
GET /contacts/folders/{folderId}
operationId: Contacts_getFolderDetails

Parameters

Name In Required Type Description
folderId path required integer id of the folder

Responses

200 Folder details
400 bad request
404 Folder ID not found
GET /contacts/folders/{folderId}
GET /contacts/folders/{folderId}/lists
operationId: Contacts_getFolderLists

Parameters

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 `sort` is not passed

Responses

200 Folder's Lists details
400 bad request
404 Folder ID not found
GET /contacts/folders/{folderId}/lists
GET /contacts/lists
operationId: Contacts_getAllLists

Parameters

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 `sort` is not passed

Responses

200 Lists informations
400 bad request
GET /contacts/lists
GET /contacts/lists/{listId}
operationId: Contacts_getListDetails

Parameters

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. **Prefer to pass your timezone in date-time format for accurate result**
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. **Prefer to pass your timezone in date-time format for accurate result**

Responses

200 List informations
400 bad request
404 List ID not found
GET /contacts/lists/{listId}
GET /contacts/lists/{listId}/contacts
operationId: Contacts_getListContacts

Parameters

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 `sort` is not passed

Responses

200 Contact informations
400 bad request
404 List ID not found
GET /contacts/lists/{listId}/contacts
GET /contacts/segments
operationId: Contacts_getAllSegments

Parameters

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 `sort` is not passed

Responses

200 Segments informations
400 bad request
GET /contacts/segments
GET /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.

operationId: Contacts_getDetails

Parameters

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.

Responses

200 Contact informations
400 bad request
404 Contact's email not found
GET /contacts/{identifier}
GET /contacts/{identifier}/campaignStats
operationId: Contacts_getEmailCampaignStats

Parameters

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

Responses

200 Contact campaign statistics informations
400 bad request
404 Contact's email not found
GET /contacts/{identifier}/campaignStats

Conversations 2 endpoints

GET /conversations/messages/{id}
operationId: Conversations_getMessageById

Parameters

Name In Required Type Description
id path required string ID of the message

Responses

200 Requested message is returned as a response
400 Returned when invalid data posted
404 Returned when item not found
GET /conversations/messages/{id}
GET /conversations/pushedMessages/{id}
operationId: Conversations_getAutomatedMessage

Parameters

Name In Required Type Description
id path required string ID of the message sent previously

Responses

200 Requested message is returned as a response
400 Returned when invalid data posted
404 Returned when item not found
GET /conversations/pushedMessages/{id}

Coupons 2 endpoints

GET /couponCollections
operationId: Coupons_listCouponCollections

Parameters

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

Responses

200 Coupon collections
400 bad request
401 unauthorized
GET /couponCollections
GET /couponCollections/{id}
operationId: Coupons_getById

Parameters

Name In Required Type Description
id path required string Id of the collection to return

Responses

200 Coupon collection
400 bad request
401 unauthorized
404 Coupon collection not found
GET /couponCollections/{id}

Deals 5 endpoints

GET /crm/attributes/deals
operationId: Deals_getAttributes

Responses

200 Returns list of deal attributes
GET /crm/attributes/deals
GET /crm/deals
operationId: Deals_getAllDeals

Parameters

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 `sort` is not passed

Responses

200 Returns deals list with filters
400 Returned when query params are invalid
GET /crm/deals
GET /crm/deals/{id}
operationId: Deals_getById

Parameters

Name In Required Type Description
id path required string

Responses

200 Returns the deal by id
400 Returned when task id is invalid
404 Returned when item not found
GET /crm/deals/{id}
GET /crm/pipeline/details/all
operationId: Deals_getAllPipelines

Responses

200 Returns list of pipeline and its details
400 Returned when pipeline id is invalid or does not exist
GET /crm/pipeline/details/all
GET /crm/pipeline/details/{pipelineID}
operationId: Deals_getDetails

Parameters

Name In Required Type Description
pipelineID path required string

Responses

200 Returns pipeline and its details
400 Returned when pipeline id is invalid or does not exist
GET /crm/pipeline/details/{pipelineID}

Domains 2 endpoints

GET /senders/domains
operationId: Domains_getAll

Responses

200 list of domains
400 bad request
GET /senders/domains
GET /senders/domains/{domainName}
operationId: Domains_validateConfiguration

Parameters

Name In Required Type Description
domainName path required string Domain name

Responses

200 domain configuration
400 bad request
404 Domain does not exist
GET /senders/domains/{domainName}

Ecommerce 8 endpoints

GET /categories
operationId: Ecommerce_getAllCategories

Parameters

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 `sort` is not passed
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.**

Responses

200 All categories listed
400 bad request
GET /categories
GET /categories/{id}
operationId: Ecommerce_getCategoryDetails

Parameters

Name In Required Type Description
id path required string Category ID

Responses

200 Category informations
400 bad request
404 Category id not found
GET /categories/{id}
GET /ecommerce/attribution/metrics
operationId: Ecommerce_getAttributionMetrics

Parameters

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

Responses

200 OK
400 bad request
GET /ecommerce/attribution/metrics
GET /ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}
operationId: Ecommerce_getAttributionMetrics

Parameters

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

Responses

200 OK
400 bad request
GET /ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}
GET /ecommerce/attribution/products/{conversionSource}/{conversionSourceId}
operationId: Ecommerce_getAttributedProductSales

Parameters

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

Responses

200 OK
400 bad request
GET /ecommerce/attribution/products/{conversionSource}/{conversionSourceId}
GET /orders

Get all the orders

operationId: Ecommerce_getOrders

Parameters

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 `sort` is not passed
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.**

Responses

200 orders fetched successfully
400 bad request
GET /orders
GET /products
operationId: Ecommerce_listAllProducts

Parameters

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 `sort` is not passed
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.**

Responses

200 All products listed
400 bad request
GET /products
GET /products/{id}
operationId: Ecommerce_getProductDetails

Parameters

Name In Required Type Description
id path required string Product ID

Responses

200 Product informations
400 bad request
404 Product's id not found
GET /products/{id}

Email campaigns 4 endpoints

GET /emailCampaigns
operationId: EmailCampaigns_getAll

Parameters

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. **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 email 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 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 `sort` is not passed
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

Responses

200 Email campaigns informations
400 bad request
GET /emailCampaigns
GET /emailCampaigns/{campaignId}
operationId: EmailCampaigns_getReport

Parameters

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.

Responses

200 Email campaign informations
400 bad request
404 Campaign ID not found
GET /emailCampaigns/{campaignId}
GET /emailCampaigns/{campaignId}/abTestCampaignResult

Obtain winning version of an A/B test email campaign

operationId: EmailCampaigns_getAbTestResult

Parameters

Name In Required Type Description
campaignId path required integer Id of the A/B test campaign

Responses

200 A/B test email campaign Result
400 bad request
404 A/B test Email Campaign not found
GET /emailCampaigns/{campaignId}/abTestCampaignResult
GET /emailCampaigns/{campaignId}/sharedUrl

Get a unique URL to share & import an email template from one Brevo account to another.

operationId: EmailCampaigns_getSharedUrl

Parameters

Name In Required Type Description
campaignId path required integer Id of the campaign or template

Responses

200 Shared template URL information
400 bad request
404 Campaign/Template ID not found
405 Only email campaigns or templates are allowed
GET /emailCampaigns/{campaignId}/sharedUrl

External feeds 2 endpoints

GET /feeds

This endpoint can fetch all created external feeds.

operationId: ExternalFeeds_getAllFeeds

Parameters

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` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older than current date.
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 `sort` is not passed.
authType query optional string Filter the records by `authType` of the feed.
limit query optional integer Number of documents returned per page.
offset query optional integer Index of the first document on the page.

Responses

200 External feeds
400 Invalid parameters passed
404 Record not found
GET /feeds
GET /feeds/{uuid}

This endpoint will update an external feed.

operationId: ExternalFeeds_getFeedByUuid

Parameters

Name In Required Type Description
uuid path required string UUID of the feed to fetch

Responses

200 External feed
400 bad request
404 Feed not found
GET /feeds/{uuid}

Files 3 endpoints

GET /crm/files
operationId: Files_getAllFiles

Parameters

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 `sort` is not passed

Responses

200 Returns files list with filters
400 Returned when query params are invalid
GET /crm/files
GET /crm/files/{id}
operationId: Files_downloadFile

Parameters

Name In Required Type Description
id path required string File id to download.

Responses

200 Returns downloadable file link. Valid for next 5 minutes only.
400 Returned when invalid data posted
404 Returned when item not found
GET /crm/files/{id}
GET /crm/files/{id}/data
operationId: Files_getFileDetails

Parameters

Name In Required Type Description
id path required string File id to get file data.

Responses

200 Returned when file is found.
400 Returned when invalid data posted
404 Returned when item not found
GET /crm/files/{id}/data

Inbound parsing 3 endpoints

GET /inbound/attachments/{downloadToken}

This endpoint will retrieve inbound attachment with download token.

operationId: InboundParsing_getAttachmentByToken

Parameters

Name In Required Type Description
downloadToken path required string Token to fetch a particular attachment

Responses

200 Attachment information
400 bad request
404 attachment not found
GET /inbound/attachments/{downloadToken}
GET /inbound/events

This endpoint will show the list of all the events for the received emails.

operationId: InboundParsing_getAllEvents

Parameters

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

Responses

200 List of events for received emails.
400 bad request
GET /inbound/events
GET /inbound/events/{uuid}

This endpoint will show the list of all events history for one particular received email.

operationId: InboundParsing_getEmailEvents

Parameters

Name In Required Type Description
uuid path required string UUID to fetch events specific to recieved email

Responses

200 Email campaign informations
400 bad request
GET /inbound/events/{uuid}

Master account 7 endpoints

GET /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.

operationId: MasterAccount_getGroupDetails

Parameters

Name In Required Type Description
id path required string Id of the group of sub-organization

Responses

200 Group details
GET /corporate/group/{id}
GET /corporate/groups

This endpoint allows you to list all groups created on your Admin account.

operationId: MasterAccount_listGroups

Responses

200 list of all the sub-account groups
GET /corporate/groups
GET /corporate/invited/users

This endpoint allows you to list all Admin users of your Admin account

operationId: MasterAccount_listAdminUsers

Responses

200 list of all admin users
GET /corporate/invited/users
GET /corporate/masterAccount

This endpoint will provide the details of the master account.

operationId: MasterAccount_getDetails

Responses

200 Master account details
400 bad request
GET /corporate/masterAccount
GET /corporate/subAccount

This endpoint will provide the list all the sub-accounts of the master account.

operationId: MasterAccount_listSubAccounts

Parameters

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

Responses

200 Sub-accounts list
400 bad request
GET /corporate/subAccount
GET /corporate/subAccount/{id}

This endpoint will provide the details for the specified sub-account company

operationId: MasterAccount_getSubAccountDetails

Parameters

Name In Required Type Description
id path required integer Id of the sub-account organization

Responses

200 Sub-account organization details
400 bad request
GET /corporate/subAccount/{id}
GET /corporate/user/{email}/permissions
operationId: MasterAccount_checkAdminUserPermissions

Parameters

Name In Required Type Description
email path required string Email of the invited user.

Responses

200 List of user's permissions
400 bad request
GET /corporate/user/{email}/permissions

Notes 2 endpoints

GET /crm/notes
operationId: Notes_getAll

Parameters

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 `sort` is not passed

Responses

200 Returns notes list with filters
400 Returned when query params are invalid
GET /crm/notes
GET /crm/notes/{id}
operationId: Notes_getById

Parameters

Name In Required Type Description
id path required string Note ID to get

Responses

200 Returns the Note by id
400 Returned when invalid data posted
404 Returned when item not found
GET /crm/notes/{id}

Payments 1 endpoints

GET /payments/requests/{id}
operationId: Payments_getDetails

Parameters

Name In Required Type Description
id path required string Id of the payment Request

Responses

200 Payment request details
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.
404 Payment request not found.
GET /payments/requests/{id}

Process 2 endpoints

GET /processes
operationId: Process_getAllProcesses

Parameters

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 `sort` is not passed

Responses

200 processes informations
400 bad request
GET /processes
GET /processes/{processId}
operationId: Process_getProcessInformation

Parameters

Name In Required Type Description
processId path required integer Id of the process

Responses

200 process informations
400 bad request
404 Process ID not found
GET /processes/{processId}

Reseller 5 endpoints

GET /reseller/children
operationId: Reseller_listChildrenAccounts

Parameters

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

Responses

200 list of children
403 Current account is not a reseller
GET /reseller/children
GET /reseller/children/{childIdentifier}
operationId: Reseller_getChildDetails

Parameters

Name In Required Type Description
childIdentifier path required string Either auth key or id of reseller's child

Responses

200 Information for the child
400 bad request
403 Current account is not a reseller
404 Child auth key or child id not found
GET /reseller/children/{childIdentifier}
GET /reseller/children/{childIdentifier}/accountCreationStatus
operationId: Reseller_getChildAccountCreationStatus

Parameters

Name In Required Type Description
childIdentifier path required string Either auth key or id of reseller's child

Responses

200 status of reseller's child account
400 bad request
403 Current account is not a reseller
404 Child auth key or child id not found
GET /reseller/children/{childIdentifier}/accountCreationStatus
GET /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]

operationId: Reseller_getSessionToken

Parameters

Name In Required Type Description
childIdentifier path required string Either auth key or id of reseller's child

Responses

200 Session token
400 bad request
403 Current account is not a reseller
404 Child auth key or child id not found
GET /reseller/children/{childIdentifier}/auth
GET /reseller/children/{childIdentifier}/domains
operationId: Reseller_getChildDomains

Parameters

Name In Required Type Description
childIdentifier path required string Either auth key or id of reseller's child

Responses

200 Sender domains of the child
400 bad request
403 Current account is not a reseller
404 Child auth key or child id not found
GET /reseller/children/{childIdentifier}/domains

Sms campaigns 2 endpoints

GET /smsCampaigns
operationId: SmsCampaigns_getAllInformation

Parameters

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 `sort` is not passed

Responses

200 SMS campaigns informations
400 bad request
GET /smsCampaigns
GET /smsCampaigns/{campaignId}
operationId: SmsCampaigns_getCampaignById

Parameters

Name In Required Type Description
campaignId path required integer id of the SMS campaign

Responses

200 SMS campaign informations
400 bad request
404 Campaign ID not found
GET /smsCampaigns/{campaignId}

Senders 3 endpoints

GET /senders
operationId: Senders_listAll

Parameters

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

Responses

200 list of senders
400 bad request
GET /senders
GET /senders/ips
operationId: Senders_getDedicatedIps

Responses

200 list of dedicated IPs
GET /senders/ips
GET /senders/{senderId}/ips
operationId: Senders_getAllDedicatedIps

Parameters

Name In Required Type Description
senderId path required integer Id of the sender

Responses

200 list of dedicated IPs
400 bad request
404 Sender ID not found
GET /senders/{senderId}/ips

Tasks 3 endpoints

GET /crm/tasks
operationId: Tasks_getAll

Parameters

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 `sort` is not passed
sortBy query optional string The field used to sort field names.

Responses

200 Returns task list with filters
400 Returned when query params are invalid
GET /crm/tasks
GET /crm/tasks/{id}
operationId: Tasks_getTaskById

Parameters

Name In Required Type Description
id path required string

Responses

200 Returns the Task by id
400 Returned when task id is invalid
404 Returned when item not found
GET /crm/tasks/{id}
GET /crm/tasktypes
operationId: Tasks_getAllTaskTypes

Responses

200 Returns all the Task types
GET /crm/tasktypes

Transactional sms 3 endpoints

GET /transactionalSMS/statistics/aggregatedReport
operationId: TransactionalSms_getAggregatedReport

Parameters

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

Responses

200 Aggregated SMS report informations
400 bad request
GET /transactionalSMS/statistics/aggregatedReport
GET /transactionalSMS/statistics/events
operationId: TransactionalSms_getAllEvents

Parameters

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 `sort` is not passed

Responses

200 Sms events report informations
400 bad request
GET /transactionalSMS/statistics/events
GET /transactionalSMS/statistics/reports
operationId: TransactionalSms_getSmsActivityAggregatedPerDay

Parameters

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 `sort` is not passed

Responses

200 Aggregated SMS report informations
400 bad request
GET /transactionalSMS/statistics/reports

Transactional whatsapp 1 endpoints

GET /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)

operationId: TransactionalWhatsApp_getActivity

Parameters

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 `sort` is not passed

Responses

200 WhatsApp events report
400 bad request
GET /whatsapp/statistics/events

Transactional emails 10 endpoints

GET /smtp/blockedContacts
operationId: TransactionalEmails_listBlockedContacts

Parameters

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 `sort` is not passed

Responses

200 List of blocked or unsubscribed transactional contacts
400 bad request
GET /smtp/blockedContacts
GET /smtp/blockedDomains

Get the list of blocked domains

operationId: TransactionalEmails_getBlockedDomains

Responses

200 List of blocked domains
GET /smtp/blockedDomains
GET /smtp/emailStatus/{identifier}

Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)

operationId: TransactionalEmails_getEmailStatusById

Parameters

Name In Required Type Description
identifier path required string The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email.
startDate query optional string Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date.
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 `sort` is not passed. Not valid when identifier is `messageId`.
status query optional string Filter the records by `status` of the scheduled email batch or message. Not valid when identifier is `messageId`.
limit query optional integer Number of documents returned per page. Not valid when identifier is `messageId`.
offset query optional integer Index of the first document on the page. Not valid when identifier is `messageId`.

Responses

200 Scheduled email batches
400 Invalid parameters passed
404 Record(s) for identifier not found
GET /smtp/emailStatus/{identifier}
GET /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.

operationId: TransactionalEmails_getList

Parameters

Name In Required Type Description
email 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 `sort` is not passed
limit query optional integer Number of documents returned per page
offset query optional integer Index of the first document in the page

Responses

200 List of transactional emails
400 bad request
GET /smtp/emails
GET /smtp/emails/{uuid}
operationId: TransactionalEmails_getContentByUuid

Parameters

Name In Required Type Description
uuid path required string Unique id of the transactional email that has been sent to a particular contact

Responses

200 Transactional email content
GET /smtp/emails/{uuid}
GET /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

operationId: TransactionalEmails_getAggregatedReport

Parameters

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

Responses

200 Aggregated report informations
400 bad request
GET /smtp/statistics/aggregatedReport
GET /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

operationId: TransactionalEmails_getAllActivity

Parameters

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'_
email 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 `sort` is not passed

Responses

200 Email events report informations
400 bad request
GET /smtp/statistics/events
GET /smtp/statistics/reports
operationId: TransactionalEmails_getActivityPerDay

Parameters

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 `sort` is not passed

Responses

200 Aggregated report informations
400 bad request
GET /smtp/statistics/reports
GET /smtp/templates
operationId: TransactionalEmails_listTemplates

Parameters

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 `sort` is not passed

Responses

200 transactional email templates informations
400 bad request
GET /smtp/templates
GET /smtp/templates/{templateId}
operationId: TransactionalEmails_getTemplateInfo

Parameters

Name In Required Type Description
templateId path required integer id of the template

Responses

200 Email template informations
400 bad request
404 Template ID not found
GET /smtp/templates/{templateId}

User 2 endpoints

GET /organization/invited/users
operationId: User_getAllUsers

Responses

200 list of all your users
400 bad request
GET /organization/invited/users
GET /organization/user/{email}/permissions
operationId: User_checkPermission

Parameters

Name In Required Type Description
email path required string Email of the invited user.

Responses

200 list of all the user's permissions
400 bad request
GET /organization/user/{email}/permissions

Webhooks 2 endpoints

GET /webhooks
operationId: Webhooks_getAll

Parameters

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

Responses

200 Webhooks informations
400 bad request
GET /webhooks
GET /webhooks/{webhookId}
operationId: Webhooks_getDetails

Parameters

Name In Required Type Description
webhookId path required integer Id of the webhook

Responses

200 Webhook informations
400 bad request
404 Webhook ID not found
GET /webhooks/{webhookId}

Whatsapp campaigns 4 endpoints

GET /whatsappCampaigns
operationId: WhatsAppCampaigns_getAll

Parameters

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. **Prefer to pass your timezone in date-time format for accurate result**
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. **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 in the page
sort query optional string Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed

Responses

200 WhatsApp campaigns information
400 bad request
GET /whatsappCampaigns
GET /whatsappCampaigns/config
operationId: WhatsAppCampaigns_getAccountInfo

Responses

200 Get all the information of your WhatsApp API account
400 bad request
GET /whatsappCampaigns/config
GET /whatsappCampaigns/template-list
operationId: WhatsAppCampaigns_getTemplates

Parameters

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. **Prefer to pass your timezone in date-time format for accurate result**
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. **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 in the page
sort query optional string Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
source query optional string source of the template

Responses

200 WhatsApp templates informations
400 bad request
GET /whatsappCampaigns/template-list
GET /whatsappCampaigns/{campaignId}
operationId: WhatsAppCampaigns_getCampaignById

Parameters

Name In Required Type Description
campaignId path required integer Id of the campaign

Responses

200 Get WhatsApp campaign information on the basis of campaignId
400 bad request
404 Campaign Id not found
GET /whatsappCampaigns/{campaignId}

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"
}
object NoteData
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "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"
    },
    "companyIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991"
      ],
      "description": "Company Ids linked to a note"
    },
    "contactIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        247,
        1,
        2
      ],
      "description": "Contact Ids linked to a note"
    }
  },
  "description": "Note data to be saved"
}
object NoteId
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad09",
      "description": "Unique note Id"
    }
  },
  "description": "Updated Note ID"
}
array NoteList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Note"
  },
  "description": "List of notes"
}
object Pipeline
{
  "type": "object",
  "properties": {
    "stages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PipelineStage"
      },
      "description": "List of stages"
    },
    "pipeline": {
      "type": "string",
      "example": "5ea675e3da0dd085acaea610",
      "description": "Pipeline id"
    },
    "pipeline_name": {
      "type": "string",
      "example": "Sales Pipeline",
      "description": "Pipeline name"
    }
  },
  "description": "List of stages"
}
object PipelineStage
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "9e577ff7-8e42-4ab3-be26-2b5e01b42518",
      "description": "Stage id"
    },
    "name": {
      "type": "string",
      "example": "New",
      "description": "Stage name"
    }
  },
  "description": "List of stages"
}
array Pipelines
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Pipeline"
  },
  "description": "List of pipeline"
}
object Task
{
  "type": "object",
  "required": [
    "taskTypeId",
    "name",
    "date"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad06",
      "description": "Unique task id"
    },
    "name": {
      "type": "string",
      "example": "Task: Connect with client",
      "description": "Name of task"
    },
    "dealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Deal ids for deals a task is linked to"
    },
    "taskTypeId": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad09",
      "description": "Id for type of task e.g Call / Email / Meeting etc."
    },
    "contactsIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts linked to this task"
    },
    "companiesIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Companies ids for companies a task is linked to"
    }
  },
  "description": "Task Details"
}
object TaskList
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Task"
      },
      "description": "List of tasks"
    }
  },
  "description": "List of tasks"
}
object TaskReminder
{
  "type": "object",
  "required": [
    "value",
    "unit",
    "types"
  ],
  "properties": {
    "unit": {
      "enum": [
        "minutes",
        "hours",
        "weeks",
        "days"
      ],
      "type": "string",
      "description": "Unit of time before reminder is to be sent"
    },
    "types": {
      "type": "array",
      "items": {
        "enum": [
          "email",
          "push"
        ],
        "type": "string"
      },
      "example": [
        "email"
      ],
      "description": "Type of task reminder e.g email, push"
    },
    "value": {
      "type": "integer",
      "example": 10,
      "description": "Value of time unit before reminder is to be sent"
    }
  },
  "description": "Task reminder date/time for a task"
}
object TaskTypes
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "61a88a2eb7a574180261234",
      "description": "Id of task type"
    },
    "title": {
      "type": "string",
      "example": "Email",
      "description": "Title of task type"
    }
  },
  "description": "Task types details"
}
object TasksCreateNewTaskRequest
{
  "type": "object",
  "required": [
    "name",
    "taskTypeId",
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "date-time",
      "example": "2021-11-01T17:44:54.668Z",
      "description": "Task due date and time"
    },
    "done": {
      "type": "boolean",
      "example": false,
      "description": "Task marked as done"
    },
    "name": {
      "type": "string",
      "example": "Task: Connect with client",
      "description": "Name of task"
    },
    "notes": {
      "type": "string",
      "example": "In communication with client for resolution of queries.",
      "description": "Notes added to a task"
    },
    "dealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Deal ids for deals a task is linked to"
    },
    "duration": {
      "type": "integer",
      "format": "int64",
      "example": 600000,
      "minimum": 0,
      "description": "Duration of task in milliseconds [1 minute = 60000 ms]"
    },
    "reminder": {
      "$ref": "#/components/schemas/TaskReminder"
    },
    "assignToId": {
      "type": "string",
      "example": "5faab4b7f195bb3c4c31e62a",
      "description": "To assign a task to a user you can use either the account email or ID."
    },
    "taskTypeId": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad09",
      "description": "Id for type of task e.g Call / Email / Meeting etc."
    },
    "contactsIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts linked to this task"
    },
    "companiesIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Companies ids for companies a task is linked to"
    }
  }
}
object TasksCreateNewTaskResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad06",
      "description": "Unique task id"
    }
  },
  "description": "Task Details"
}
object TasksUpdateTaskRequest
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date-time",
      "example": "2021-11-01T17:44:54.668Z",
      "description": "Task date/time"
    },
    "done": {
      "type": "boolean",
      "example": false,
      "description": "Task marked as done"
    },
    "name": {
      "type": "string",
      "example": "Task: Connect with client",
      "description": "Name of task"
    },
    "notes": {
      "type": "string",
      "example": "In communication with client for resolution of queries.",
      "description": "Notes added to a task"
    },
    "dealsIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Deal ids for deals a task is linked to"
    },
    "duration": {
      "type": "integer",
      "format": "int64",
      "example": 600000,
      "description": "Duration of task in milliseconds [1 minute = 60000 ms]"
    },
    "reminder": {
      "$ref": "#/components/schemas/TaskReminder"
    },
    "assignToId": {
      "type": "string",
      "example": "5faab4b7f195bb3c4c31e62a",
      "description": "To assign a task to a user you can use either the account email or ID."
    },
    "taskTypeId": {
      "type": "string",
      "example": "61a5cd07ca1347c82306ad09",
      "description": "Id for type of task e.g Call / Email / Meeting etc."
    },
    "contactsIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        1,
        2,
        3
      ],
      "description": "Contact ids for contacts linked to this task"
    },
    "companiesIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ],
      "description": "Companies ids for companies a task is linked to"
    }
  }
}
object TransactionalEmailsGetEmailStatusByIdResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/getScheduledEmailByBatchId"
    },
    {
      "$ref": "#/components/schemas/getScheduledEmailByMessageId"
    }
  ]
}
object TransactionalWhatsAppSendMessageRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/sendWhatsappMessageTemplate"
    },
    {
      "$ref": "#/components/schemas/sendWhatsappMessageText"
    }
  ]
}
object TransactionalWhatsAppSendMessageResponse
{
  "type": "object",
  "required": [
    "messageId"
  ],
  "properties": {
    "messageId": {
      "type": "string",
      "format": "uuidv4",
      "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "description": "messageId of sent message"
    }
  }
}
object WebhooksExportAllEventsRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/exportWebhooksHistory"
    }
  ]
}
object WhatsappCampStats
{
  "type": "object",
  "required": [
    "sent",
    "delivered",
    "read",
    "unsubscribe",
    "notSent"
  ],
  "properties": {
    "read": {
      "type": "integer",
      "example": 2
    },
    "sent": {
      "type": "integer",
      "example": 3
    },
    "notSent": {
      "type": "integer",
      "example": 4
    },
    "delivered": {
      "type": "integer",
      "example": 3
    },
    "unsubscribe": {
      "type": "integer",
      "example": 0
    }
  }
}
object WhatsappCampTemplate
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "wta107",
      "description": "name of the template"
    },
    "category": {
      "type": "string",
      "example": "Marketing",
      "description": "description of the template"
    },
    "language": {
      "type": "string",
      "example": "en_GB",
      "description": "language of the template"
    },
    "components": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/componentItems"
      },
      "description": "array of component item objects"
    },
    "button_type": {
      "type": "string",
      "example": "QUICK_REPLIES"
    },
    "header_type": {
      "type": "string",
      "example": "text",
      "description": "type of header"
    },
    "hide_footer": {
      "type": "boolean",
      "example": true
    },
    "body_variables": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/variablesItems"
      },
      "description": "array of variables item variables"
    },
    "display_header": {
      "type": "boolean",
      "example": true
    },
    "contains_button": {
      "type": "boolean",
      "example": false
    },
    "header_variables": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/variablesItems"
      },
      "description": "array of variables item object"
    }
  }
}
object abTestCampaignResult
{
  "type": "object",
  "properties": {
    "openRate": {
      "type": "string",
      "example": "70%",
      "description": "Open rate for current winning version"
    },
    "clickRate": {
      "type": "string",
      "example": "70%",
      "description": "Click rate for current winning version"
    },
    "statistics": {
      "type": "object",
      "required": [
        "clicks",
        "complaints",
        "hardBounces",
        "openers",
        "softBounces",
        "unsubscribed"
      ],
      "properties": {
        "clicks": {
          "$ref": "#/components/schemas/abTestVersionStats"
        },
        "openers": {
          "$ref": "#/components/schemas/abTestVersionStats"
        },
        "complaints": {
          "$ref": "#/components/schemas/abTestVersionStats"
        },
        "hardBounces": {
          "$ref": "#/components/schemas/abTestVersionStats"
        },
        "softBounces": {
          "$ref": "#/components/schemas/abTestVersionStats"
        },
        "unsubscribed": {
          "$ref": "#/components/schemas/abTestVersionStats"
        }
      }
    },
    "clickedLinks": {
      "type": "object",
      "required": [
        "Version A",
        "Version B"
      ],
      "properties": {
        "Version A": {
          "$ref": "#/components/schemas/abTestVersionClicks"
        },
        "Version B": {
          "$ref": "#/components/schemas/abTestVersionClicks"
        }
      }
    },
    "winningVersion": {
      "enum": [
        "notAvailable",
        "pending",
        "tie",
        "A",
        "B"
      ],
      "type": "string",
      "example": "A",
      "description": "Winning Campaign Info. pending = Campaign has been picked for sending and winning version is yet to be decided, tie = A tie happened between both the versions, notAvailable = Campaign has not yet been picked for sending."
    },
    "winningCriteria": {
      "enum": [
        "Open",
        "Click"
      ],
      "type": "string",
      "example": "Open",
      "description": "Criteria choosen for winning version (Open/Click)"
    },
    "winningSubjectLine": {
      "type": "string",
      "example": "Subject Line A",
      "description": "Subject Line of current winning version"
    },
    "winningVersionRate": {
      "type": "string",
      "example": "70%",
      "description": "Open/Click rate for the winner version"
    }
  }
}
array abTestVersionClicks
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "clickRate",
      "clicksCount",
      "link"
    ],
    "properties": {
      "link": {
        "type": "string",
        "example": "https://facbook.com/versionA",
        "description": "URL of the link"
      },
      "clickRate": {
        "type": "string",
        "example": "40%",
        "description": "Percentage of clicks of link with respect to total clicks"
      },
      "clicksCount": {
        "type": "integer",
        "format": "int64",
        "example": 3,
        "description": "Number of times a link is clicked"
      }
    }
  },
  "description": "Information on clicked links for a particular version"
}
object abTestVersionStats
{
  "type": "object",
  "required": [
    "Version A",
    "Version B"
  ],
  "properties": {
    "Version A": {
      "type": "string",
      "example": "50%",
      "description": "percentage of an event for version A"
    },
    "Version B": {
      "type": "string",
      "example": "50%",
      "description": "percentage of an event for version B"
    }
  },
  "description": "Percentage of a particular event for both versions"
}
object addChildDomain
{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "example": "mychilddomain.com",
      "description": "Sender domain to add for a specific child account"
    }
  }
}
object addContactToListByEmails
{
  "type": "object",
  "properties": {
    "emails": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "john.smith@contact.com",
        "description": "Email to add to a list"
      },
      "maxItems": 150,
      "minItems": 1,
      "description": "Emails to add to a list. You can pass a **maximum of 150 emails** for addition in one request. **_If you need to add the emails in bulk, please prefer /contacts/import api._**\n"
    }
  }
}
object addContactToListByIDs
{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 10,
        "description": "ID to add to a list"
      },
      "maxItems": 150,
      "minItems": 1,
      "description": "IDs to add to a list. You can pass a **maximum of 150 IDs** for addition in one request. **_If you need to add the emails in bulk, please prefer /contacts/import api._**\n"
    }
  }
}
object addCredits
{
  "type": "object",
  "properties": {
    "sms": {
      "type": "integer",
      "format": "int64",
      "example": 450,
      "description": "**Required if email credits are empty.** SMS credits to be added to the child account\n"
    },
    "email": {
      "type": "integer",
      "format": "int64",
      "example": 1200,
      "description": "**Required if sms credits are empty.** Email credits to be added to the child account\n"
    }
  }
}
object authenticateDomainModel
{
  "type": "object",
  "required": [
    "domain_name",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "example": "Domain has been authenticated successfully.",
      "description": "Success message"
    },
    "domain_name": {
      "type": "string",
      "example": "myexample.com",
      "description": "Domain"
    }
  }
}
object blockDomain
{
  "type": "object",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "name of the domain to be blocked"
    }
  }
}
object bodyVariablesItems
{
  "type": "object"
}
object cart
{
  "type": "object",
  "required": [
    "currency",
    "specificAmount"
  ],
  "properties": {
    "currency": {
      "enum": [
        "EUR"
      ],
      "type": "string",
      "example": "EUR",
      "description": "Currency code for the payment amount.\n"
    },
    "specificAmount": {
      "type": "integer",
      "format": "int64",
      "example": 1200,
      "description": "Payment amount, in cents.\ne.g. if you want to request €12.00, then the amount in cents is 1200.\n"
    }
  },
  "description": "Specify the payment currency and amount.\n"
}
object componentItems
{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "example": "Life is a long lesson in humility"
    },
    "type": {
      "type": "string",
      "example": "BODY"
    }
  }
}
object configuration
{
  "required": [
    "customSuccessUrl"
  ],
  "properties": {
    "customSuccessUrl": {
      "type": "string",
      "format": "url",
      "example": "https://my-company.com/payment-success",
      "description": "Absolute URL of the custom success page.\n"
    }
  },
  "description": "Optional. Redirect contact to a custom success page once payment is successful. If empty the default Brevo page will be displayed once a payment is validated\n"
}
object corporateGroupDetailsResponse
{
  "type": "object",
  "properties": {
    "group": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Group id"
        },
        "createdAt": {
          "type": "string",
          "description": "Group creation date"
        },
        "groupName": {
          "type": "string",
          "description": "Name of the group"
        }
      }
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          }
        }
      }
    },
    "sub-accounts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Id of the sub-account organzation"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation date of the sub-account organzation"
          },
          "companyName": {
            "type": "string",
            "description": "Name of the sub-account organzation"
          }
        }
      }
    }
  }
}
object createApiKeyResponse
{
  "type": "object",
  "required": [
    "status",
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "example": "xkeysib-21881axxxxxcc92e04-mIrexxxx7z",
      "description": "API key"
    },
    "status": {
      "type": "string",
      "example": "success",
      "description": "Status of the API operation."
    }
  }
}
object createAttribute
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "text",
        "date",
        "float",
        "boolean",
        "id",
        "category"
      ],
      "type": "string",
      "example": "text",
      "description": "Type of the attribute. **Use only if the attribute's category is 'normal', 'category' or 'transactional'**\nType **boolean** is only available if the category is **normal** attribute\nType **id** is only available if the category is **transactional** attribute\nType **category** is only available if the category is **category** attribute\n"
    },
    "value": {
      "type": "string",
      "example": "COUNT[BLACKLISTED,BLACKLISTED,<,NOW()]",
      "description": "Value of the attribute. **Use only if the attribute's category is 'calculated' or 'global'**\n"
    },
    "enumeration": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string",
            "example": "Women",
            "description": "Label of the value"
          },
          "value": {
            "type": "integer",
            "example": 1,
            "description": "Id of the value"
          }
        }
      },
      "description": "List of values and labels that the attribute can take. **Use only if the attribute's category is \"category\"**. For example:\n**[{\"value\":1, \"label\":\"male\"}, {\"value\":2, \"label\":\"female\"}]**\n"
    },
    "isRecurring": {
      "type": "boolean",
      "example": true,
      "description": "Type of the attribute. **Use only if the attribute's category is 'calculated' or 'global'**\n"
    }
  }
}
object createCategoryModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 122,
      "description": "ID of the category when a new category is created"
    }
  }
}
object createChild
{
  "type": "object",
  "required": [
    "companyName",
    "email",
    "firstName",
    "lastName",
    "password"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "josh.cruise@example.com",
      "description": "Email address to create the child account"
    },
    "language": {
      "enum": [
        "fr",
        "es",
        "pt",
        "it",
        "de",
        "en"
      ],
      "type": "string",
      "example": "en",
      "description": "Language of the child account"
    },
    "lastName": {
      "type": "string",
      "example": "Cruise",
      "description": "Last name to use to create the child account"
    },
    "password": {
      "type": "string",
      "format": "password",
      "example": "Pa55w0rd65",
      "description": "Password for the child account to login"
    },
    "firstName": {
      "type": "string",
      "example": "Josh",
      "description": "First name to use to create the child account"
    },
    "companyName": {
      "type": "string",
      "example": "Your Company",
      "description": "Company name to use to create the child account"
    }
  }
}
object createContact
{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "elly@example.com",
      "description": "Email address of the user. **Mandatory if \"SMS\" field is not passed in \"attributes\" parameter**. Mobile Number in **SMS** field should be passed with proper country code. For example:\n**{\"SMS\":\"+91xxxxxxxxxx\"}** or **{\"SMS\":\"0091xxxxxxxxxx\"}**\n"
    },
    "ext_id": {
      "type": "string",
      "example": "externalId",
      "description": "Pass your own Id to create a contact."
    },
    "listIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 36,
        "description": "Id of the list to add the contact to"
      },
      "description": "Ids of the lists to add the contact to"
    },
    "attributes": {
      "type": "object",
      "example": {
        "FNAME": "Elly",
        "LNAME": "Roger"
      },
      "description": "Pass the set of attributes and their values. The attribute's parameter should be passed in capital letter while creating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored. **These attributes must be present in your Brevo account.**. For eg:\n**{\"FNAME\":\"Elly\", \"LNAME\":\"Roger\"}**\n",
      "additionalProperties": {}
    },
    "updateEnabled": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "Facilitate to update the existing contact in the same request (updateEnabled = true)"
    },
    "smsBlacklisted": {
      "type": "boolean",
      "example": false,
      "description": "Set this field to blacklist the contact for SMS (smsBlacklisted = true)"
    },
    "emailBlacklisted": {
      "type": "boolean",
      "example": false,
      "description": "Set this field to blacklist the contact for emails (emailBlacklisted = true)"
    },
    "smtpBlacklistSender": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email"
      },
      "description": "transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true )"
    }
  }
}
object createDoiContact
{
  "type": "object",
  "required": [
    "email",
    "includeListIds",
    "redirectionUrl",
    "templateId"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "elly@example.com",
      "description": "Email address where the confirmation email will be sent. This email address will be the identifier for all other contact attributes."
    },
    "attributes": {
      "type": "object",
      "example": {
        "FNAME": "Elly",
        "LNAME": "Roger"
      },
      "description": "Pass the set of attributes and their values. **These attributes must be present in your Brevo account**. For eg. **{'FNAME':'Elly', 'LNAME':'Roger'}**\n",
      "additionalProperties": {}
    },
    "templateId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the Double opt-in (DOI) template"
    },
    "excludeListIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 36,
        "description": "Id of the list"
      },
      "description": "Lists under user account where contact should not be added"
    },
    "includeListIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 36,
        "description": "Id of the list"
      },
      "description": "Lists under user account where contact should be added"
    },
    "redirectionUrl": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the web page that user will be redirected to after clicking on the double opt in URL. When editing your DOI template you can reference this URL by using the tag **{{ params.DOIurl }}**.\n"
    }
  }
}
object createDomain
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "mycompany.com",
      "description": "Domain name"
    }
  }
}
object createDomainModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "ID of the Domain created"
    },
    "message": {
      "type": "string",
      "example": "Domain added successfully. To authenticate it, add following DNS records",
      "description": "Success message"
    },
    "dns_records": {
      "type": "object",
      "properties": {
        "brevo_code": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        },
        "dkim_record": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        },
        "dmarc_record": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        }
      }
    },
    "domain_name": {
      "type": "string",
      "example": "example.com",
      "description": "Domain"
    },
    "domain_provider": {
      "type": "string",
      "example": "GoDaddy",
      "description": "Domain Provider"
    }
  }
}
object createEmailCampaign
{
  "type": "object",
  "required": [
    "name",
    "sender"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "example": "Newsletter",
      "description": "Tag of the campaign"
    },
    "name": {
      "type": "string",
      "example": "Newsletter - May 2017",
      "description": "Name of the campaign"
    },
    "footer": {
      "type": "string",
      "example": "[DEFAULT_FOOTER]",
      "description": "Footer of the email campaign"
    },
    "header": {
      "type": "string",
      "example": "[DEFAULT_HEADER]",
      "description": "Header of the email campaign"
    },
    "params": {
      "type": "object",
      "example": {
        "FNAME": "Joe",
        "LNAME": "Doe"
      },
      "description": "Pass the set of attributes to customize the type classic campaign. For example: **{\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}**. Only available if **type** is **classic**. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of **subject, htmlContent/htmlUrl, sender.name & toField**\n",
      "additionalProperties": {}
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the campaign on the basis of sender id.\n_In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)_.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Sender Name"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "newsletter@myshop.com",
          "description": "Sender email"
        }
      },
      "description": "Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "**Mandatory if htmlContent and templateId are empty**. Url to the message (HTML). For example:\n**https://html.domain.com**\n"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which the campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Discover the New Collection !",
      "description": "Subject of the campaign. **Mandatory if abTesting is false**.\nIgnored if abTesting is true.\n"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "subjectA": {
      "type": "string",
      "example": "Discover the New Collection!",
      "description": "Subject A of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "subjectB": {
      "type": "string",
      "example": "Want to discover the New Collection?",
      "description": "Subject B of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "abTesting": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. **subjectA, subjectB, splitRule, winnerCriteria & winnerDelay** will be considered when abTesting is set to true.\nsubjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**.\nYou will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B\n"
    },
    "splitRule": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Add the size of your test groups. **Mandatory if abTesting = true & 'recipients' is passed**. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else\n"
    },
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "**Mandatory if scheduledAt is not empty**. List Ids to send the campaign to\n"
        },
        "segmentIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used**. Segment ids to send the campaign to.\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids to exclude from the campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "templateId": {
      "type": "integer",
      "format": "int64",
      "description": "**Mandatory if htmlContent and htmlUrl are empty**. Id of the transactional\nemail template with status _active_. Used to copy only its content fetched\nfrom htmlContent/htmlUrl to an email campaign for RSS feature.\n"
    },
    "htmlContent": {
      "type": "string",
      "example": "<!DOCTYPE html> <html> <body> <h1>Confirm you email</h1> <p>Please confirm your email address by clicking on the link below</p> </body> </html>",
      "description": "Mandatory if htmlUrl and templateId are empty. Body of the message (HTML).\n"
    },
    "previewText": {
      "type": "string",
      "example": "Thanks for your order!",
      "description": "Preview text or preheader of the email campaign"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result**.\nIf sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). For example:\n**2017-06-01T12:30:00+02:00**\n"
    },
    "utmCampaign": {
      "type": "string",
      "example": "NL_05_2017",
      "description": "Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed"
    },
    "winnerDelay": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 168,
      "minimum": 1,
      "description": "Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerDelay` is ignored if passed\n"
    },
    "increaseRate": {
      "type": "integer",
      "format": "int64",
      "example": 70,
      "maximum": 100,
      "minimum": 0,
      "description": "**Mandatory if ipWarmupEnable is set to true**. Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.\n"
    },
    "initialQuota": {
      "type": "integer",
      "format": "int64",
      "example": 3000,
      "description": "**Mandatory if ipWarmupEnable is set to true**. Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.\n"
    },
    "mirrorActive": {
      "type": "boolean",
      "example": true,
      "description": "Use true to enable the mirror link"
    },
    "updateFormId": {
      "type": "string",
      "example": "6313436b9ad40e23b371d095",
      "description": "**Mandatory if templateId is used containing the {{ update_profile }} tag**. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form. If not entered, then the default update profile form will be used.\n"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (no local file).\nExtension allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps\n"
    },
    "ipWarmupEnable": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "**Available for dedicated ip clients**. Set this to true if you wish to warm up your ip.\n"
    },
    "sendAtBestTime": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Set this to true if you want to send your campaign at best time."
    },
    "winnerCriteria": {
      "enum": [
        "open",
        "click"
      ],
      "type": "string",
      "example": "open",
      "description": "Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed\n"
    },
    "unsubscriptionPageId": {
      "type": "string",
      "example": "62cbb7fabbe85021021aac52",
      "description": "Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page. If not entered, then the default unsubscription page will be used.\n"
    },
    "inlineImageActivation": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Use true to embedded the images in your email. Final size of\nthe email should be less than **4MB**. Campaigns with embedded images can\n_not be sent to more than 5000 contacts_\n"
    }
  }
}
object createExternalFeed
{
  "type": "object",
  "required": [
    "name",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the feed"
    },
    "name": {
      "type": "string",
      "example": "New feed",
      "description": "Name of the feed"
    },
    "cache": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Toggle caching of feed url response"
    },
    "token": {
      "type": "string",
      "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "description": "Token for authType `token`"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "userId",
            "description": "Name of the header"
          },
          "value": {
            "type": "string",
            "example": "user12345",
            "description": "Value of the header"
          }
        }
      },
      "example": [
        {
          "name": "header1",
          "value": "value1"
        },
        {
          "name": "header2",
          "value": "value2"
        }
      ],
      "description": "Custom headers for the feed"
    },
    "authType": {
      "enum": [
        "basic",
        "token",
        "noAuth"
      ],
      "type": "string",
      "default": "noAuth",
      "description": "Auth type of the feed:\n * `basic`\n * `token`\n * `noAuth`\n"
    },
    "password": {
      "type": "string",
      "example": "password",
      "description": "Password for authType `basic`"
    },
    "username": {
      "type": "string",
      "example": "user",
      "description": "Username for authType `basic`"
    },
    "maxRetries": {
      "type": "integer",
      "default": 5,
      "example": 5,
      "maximum": 5,
      "minimum": 0,
      "description": "Maximum number of retries on the feed url"
    }
  }
}
object createList
{
  "type": "object",
  "required": [
    "folderId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Magento Customer - ES",
      "description": "Name of the list"
    },
    "folderId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the parent folder in which this list is to be created"
    }
  }
}
object createModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "ID of the object created"
    }
  }
}
object createPaymentRequest
{
  "type": "object",
  "required": [
    "reference",
    "contactId",
    "cart",
    "configuration"
  ],
  "properties": {
    "cart": {
      "$ref": "#/components/schemas/cart"
    },
    "contactId": {
      "type": "integer",
      "format": "int64",
      "example": 43,
      "description": "Brevo ID of the contact requested to pay.\n"
    },
    "reference": {
      "type": "string",
      "example": "Invoice #INV0001",
      "description": "Reference of the payment request, it will appear on the payment page.\n"
    },
    "notification": {
      "$ref": "#/components/schemas/notification"
    },
    "configuration": {
      "$ref": "#/components/schemas/configuration"
    }
  }
}
object createProductModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 122,
      "description": "ID of the Product when a new product is created"
    }
  }
}
object createReseller
{
  "type": "object",
  "required": [
    "authKey"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1234567,
      "description": "Id of Reseller child created"
    },
    "authKey": {
      "type": "string",
      "example": "xkeysib-21881axxxxxcc92e04-mIrexxxx7z",
      "description": "AuthKey of Reseller child created"
    }
  }
}
object createSender
{
  "type": "object",
  "required": [
    "email",
    "name"
  ],
  "properties": {
    "ips": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "domain",
          "ip"
        ],
        "properties": {
          "ip": {
            "type": "string",
            "example": "123.98.689.7",
            "description": "Dedicated IP available in your account"
          },
          "domain": {
            "type": "string",
            "example": "mycompany.com",
            "description": "Domain of the IP"
          },
          "weight": {
            "type": "integer",
            "format": "int64",
            "example": 50,
            "maximum": 100,
            "minimum": 1,
            "description": "Weight to apply to the IP. Sum of all IP weights must be 100. Should be passed for either ALL or NONE of the IPs. If it's not passed, the sending will be equally balanced on all IPs."
          }
        }
      },
      "description": "**Mandatory in case of dedicated IP**. IPs to associate to the sender\n"
    },
    "name": {
      "type": "string",
      "example": "Newsletter",
      "description": "From Name to use for the sender"
    },
    "email": {
      "type": "string",
      "format": "email",
      "example": "newsletter@mycompany.com",
      "description": "From email to use for the sender. A verification email will be sent to this address."
    }
  }
}
object createSenderModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "ID of the Sender created"
    },
    "spfError": {
      "type": "boolean",
      "example": true,
      "description": "Status of SPF configuration for the sender (true = SPF not well configured, false = SPF well configured)"
    },
    "dkimError": {
      "type": "boolean",
      "example": false,
      "description": "Status of DKIM configuration for the sender (true = DKIM not well configured, false = DKIM well configured)"
    }
  }
}
object createSmsCampaign
{
  "type": "object",
  "required": [
    "content",
    "name",
    "sender"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Spring Promo Code",
      "description": "Name of the campaign"
    },
    "sender": {
      "type": "string",
      "example": "MyShop",
      "maxLength": 15,
      "description": "Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**\n"
    },
    "content": {
      "type": "string",
      "example": "Get a discount by visiting our NY store and saying : Happy Spring!",
      "description": "Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS\n"
    },
    "recipients": {
      "type": "object",
      "required": [
        "listIds"
      ],
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 54,
            "description": "List Id to send the campaign to"
          },
          "description": "Lists Ids to send the campaign to. **REQUIRED if scheduledAt is not empty**\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 15,
            "description": "List Id to exclude from the campaign"
          },
          "description": "List ids which have to be excluded from a campaign"
        }
      }
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-05-05T10:30:00.000Z",
      "description": "UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**\n"
    },
    "unicodeEnabled": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Format of the message. It indicates whether the content should be treated as unicode or not.\n"
    },
    "organisationPrefix": {
      "type": "string",
      "example": "MyCompany",
      "description": "A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**"
    },
    "unsubscribeInstruction": {
      "type": "string",
      "example": "send Stop if you want to unsubscribe.",
      "description": "Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**"
    }
  }
}
object createSmtpEmail
{
  "type": "object",
  "properties": {
    "messageId": {
      "type": "string",
      "example": "<201798300811.5787683@relay.domain.com>",
      "description": "Message ID of the transactional email sent"
    },
    "messageIds": {
      "type": "array",
      "items": {
        "type": "string",
        "example": [
          "<201798300811.5787683@relay.domain.com>",
          "<201798300811.5787683@relay.domain.com>"
        ],
        "description": "version wise message ID's of the transactional emails sent"
      }
    }
  }
}
object createSmtpTemplate
{
  "type": "object",
  "required": [
    "sender",
    "subject",
    "templateName"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "example": "OrderConfirmation",
      "description": "Tag of the template"
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the template on the basis of sender id.\n_In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)_.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Name of the sender. **If not passed, will be set to default**\n"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "contact@myshop.com",
          "description": "Email of the sender"
        }
      },
      "description": "Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "Url which contents the body of the email message. REQUIRED if htmlContent is empty"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Thanks for your purchase !",
      "description": "Subject of the template"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "isActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of template. isActive = true means template is active and isActive = false means template is inactive"
    },
    "htmlContent": {
      "type": "string",
      "example": "The order n°xxxxx has been confirmed. Thanks for your purchase",
      "description": "Body of the message (HTML version). The field must have more than 10 characters. **REQUIRED if htmlUrl is empty**\n"
    },
    "templateName": {
      "type": "string",
      "example": "Order Confirmation - EN",
      "description": "Name of the template"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (**no local file**). Extension allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'\n"
    }
  }
}
object createSubAccount
{
  "type": "object",
  "example": {
    "email": "test-sub@example.com",
    "language": "en",
    "timezone": "Europe/Paris",
    "companyName": "Test Sub-account"
  },
  "required": [
    "companyName",
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Email address for the organization"
    },
    "language": {
      "enum": [
        "en",
        "fr",
        "it",
        "es",
        "pt",
        "de"
      ],
      "type": "string",
      "description": "Set the language of the sub-account"
    },
    "timezone": {
      "type": "string",
      "description": "Set the timezone of the sub-account"
    },
    "companyName": {
      "type": "string",
      "description": "Set the name of the sub-account company"
    }
  }
}
object createSubAccountResponse
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "ID of the sub-account created"
    }
  }
}
object createUpdateBatchCategory
{
  "type": "object",
  "required": [
    "categories"
  ],
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/createUpdateCategories"
      },
      "description": "array of categories objects"
    },
    "updateEnabled": {
      "type": "boolean",
      "description": "Facilitate to update the existing categories in the same request (updateEnabled = true)"
    }
  }
}
object createUpdateBatchCategoryModel
{
  "type": "object",
  "properties": {
    "createdCount": {
      "type": "integer",
      "format": "int64",
      "example": 7,
      "description": "Number of the new created categories"
    },
    "updatedCount": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "Number of the existing categories updated"
    }
  }
}
object createUpdateBatchProducts
{
  "type": "object",
  "required": [
    "products"
  ],
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/createUpdateProducts"
      },
      "description": "array of products objects"
    },
    "updateEnabled": {
      "type": "boolean",
      "description": "Facilitate to update the existing categories in the same request (updateEnabled = true)"
    }
  }
}
object createUpdateBatchProductsModel
{
  "type": "object",
  "properties": {
    "createdCount": {
      "type": "integer",
      "format": "int64",
      "example": 7,
      "description": "Number of the new created products"
    },
    "updatedCount": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "Number of the existing products updated"
    }
  }
}
object createUpdateCategories
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "email",
      "example": "CAT123",
      "description": "Unique Category ID as saved in the shop\n"
    },
    "url": {
      "type": "string",
      "example": "http://mydomain.com/category/electronics",
      "description": "URL to the category"
    },
    "name": {
      "type": "string",
      "example": "Electronics",
      "description": "**Mandatory in case of creation**. Name of the Category, as displayed in the shop\n"
    },
    "deletedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the category deleted from the shop's database"
    }
  }
}
object createUpdateCategory
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "email",
      "example": "CAT123",
      "description": "Unique Category ID as saved in the shop\n"
    },
    "url": {
      "type": "string",
      "example": "http://mydomain.com/category/electronics",
      "description": "URL to the category"
    },
    "name": {
      "type": "string",
      "example": "Electronics",
      "description": "**Mandatory in case of creation**. Name of the Category, as displayed in the shop\n"
    },
    "deletedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the category deleted from the shop's database"
    },
    "updateEnabled": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "Facilitate to update the existing category in the same request (updateEnabled = true)"
    }
  }
}
object createUpdateContactModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 122,
      "description": "ID of the contact when a new contact is created"
    }
  }
}
object createUpdateFolder
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Wordpress Contacts",
      "description": "Name of the folder"
    }
  }
}
object createUpdateProduct
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "string",
      "example": "P11",
      "description": "Product ID for which you requested the details"
    },
    "sku": {
      "type": "string",
      "format": "string",
      "description": "Product identifier from the shop"
    },
    "url": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product/electronics/product1",
      "description": "URL to the product"
    },
    "name": {
      "type": "string",
      "format": "string",
      "example": "Iphone 11",
      "description": "Mandatory in case of creation**. Name of the product for which you requested the details"
    },
    "price": {
      "type": "number",
      "format": "float",
      "description": "Price of the product"
    },
    "imageUrl": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product-absoulte-url/img.jpeg",
      "description": "Absolute URL to the cover image of the product"
    },
    "metaInfo": {
      "type": "object",
      "example": {
        "brand": "addidas",
        "description": "Shoes for sports"
      },
      "description": "Meta data of product such as description, vendor, producer, stock level. The size of cumulative metaInfo shall not exceed **1000 KB**. Maximum length of metaInfo object can be 10.",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      }
    },
    "parentId": {
      "type": "string",
      "format": "string",
      "description": "Parent product id of the product"
    },
    "deletedAt": {
      "type": "string",
      "description": "UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the product deleted from the shop's database"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Category ID-s of the product"
    },
    "updateEnabled": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "Facilitate to update the existing category in the same request (updateEnabled = true)"
    }
  }
}
object createUpdateProducts
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "string",
      "example": "P11",
      "description": "Product ID for which you requested the details"
    },
    "sku": {
      "type": "string",
      "format": "string",
      "description": "Product identifier from the shop"
    },
    "url": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product/electronics/product1",
      "description": "URL to the product"
    },
    "name": {
      "type": "string",
      "format": "string",
      "example": "Iphone 11",
      "description": "Mandatory in case of creation**. Name of the product for which you requested the details"
    },
    "price": {
      "type": "number",
      "format": "float",
      "description": "Price of the product"
    },
    "imageUrl": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product-absoulte-url/img.jpeg",
      "description": "Absolute URL to the cover image of the product"
    },
    "metaInfo": {
      "type": "object",
      "example": {
        "brand": "addidas",
        "description": "Shoes for sports"
      },
      "description": "Meta data of product such as description, vendor, producer, stock level. The size of cumulative metaInfo shall not exceed **1000 KB**. Maximum length of metaInfo object can be 10.",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      }
    },
    "parentId": {
      "type": "string",
      "format": "string",
      "description": "Parent product id of the product"
    },
    "deletedAt": {
      "type": "string",
      "description": "UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the product deleted from the shop's database"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Category ID-s of the product"
    }
  }
}
object createWebhook
{
  "type": "object",
  "required": [
    "events",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the webhook"
    },
    "auth": {
      "type": "object",
      "example": {
        "type": "bearer",
        "token": "test-auth-token1234"
      },
      "description": "Authentication header to be send with the webhook requests"
    },
    "type": {
      "enum": [
        "transactional",
        "marketing",
        "inbound"
      ],
      "type": "string",
      "default": "transactional",
      "example": "marketing",
      "description": "Type of the webhook"
    },
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "Inbound domain of webhook, required in case of event type `inbound`"
    },
    "events": {
      "type": "array",
      "items": {
        "enum": [
          "sent",
          "hardBounce",
          "softBounce",
          "blocked",
          "spam",
          "delivered",
          "request",
          "click",
          "invalid",
          "deferred",
          "opened",
          "uniqueOpened",
          "unsubscribed",
          "listAddition",
          "contactUpdated",
          "contactDeleted",
          "inboundEmailProcessed"
        ],
        "type": "string",
        "example": "unsubscribed"
      },
      "description": "- Events triggering the webhook. Possible values for **Transactional** type webhook:\n#### `sent` OR `request`, `delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and `unsubscribed`\n- Possible values for **Marketing** type webhook:\n#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`, `unsubscribed`, `listAddition` & `delivered`\n- Possible values for **Inbound** type webhook:\n#### `inboundEmailProcessed`\n"
    },
    "batched": {
      "type": "boolean",
      "example": true,
      "description": "Batching configuration of the webhook, we send batched webhooks if its true"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "key": "cf-secret",
          "value": "test-header-value"
        },
        "description": "Headers send with the requests to the webhook"
      }
    },
    "description": {
      "type": "string",
      "example": "Webhook triggered on unsubscription",
      "description": "Description of the webhook"
    }
  }
}
object createWhatsAppCampaign
{
  "type": "object",
  "required": [
    "name",
    "templateId",
    "scheduledAt",
    "recipients"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Test Campaign",
      "description": "Name of the WhatsApp campaign creation"
    },
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "**Mandatory if scheduledAt is not empty**. List Ids to send the campaign to\n"
        },
        "segments": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used**. Segment ids to send the campaign to.\n"
        },
        "excludedListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids to exclude from the campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "templateId": {
      "type": "integer",
      "example": 19,
      "description": "Id of the WhatsApp template in **approved** state"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**\n"
    }
  }
}
object createWhatsAppTemplate
{
  "type": "object",
  "required": [
    "name",
    "language",
    "category",
    "bodyText"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Test template",
      "description": "Name of the template"
    },
    "source": {
      "enum": [
        "Automation",
        "Conversations"
      ],
      "type": "string",
      "description": "source of the template"
    },
    "bodyText": {
      "type": "string",
      "example": "making it look like readable English",
      "description": "Body of the template. **Maximum allowed characters are 1024**"
    },
    "category": {
      "enum": [
        "MARKETING",
        "UTILITY"
      ],
      "type": "string",
      "example": "MARKETING",
      "description": "Category of the template"
    },
    "language": {
      "type": "string",
      "example": "en",
      "description": "Language of the template. For Example :\n**en** for English\n"
    },
    "mediaUrl": {
      "type": "string",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the media file **(no local file)** for the header. **Use this field in you want to add media in Template header and headerText is empty**.\nAllowed extensions for media files are:\n#### jpeg | png | mp4 | pdf\n"
    },
    "headerText": {
      "type": "string",
      "example": "Test WhatsApp campaign",
      "description": "Text content of the header in the template. **Maximum allowed characters are 45**\n**Use this field to add text content in template header and if mediaUrl is empty**\n"
    }
  }
}
object createdBatchId
{
  "type": "object",
  "required": [
    "batchId"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 17655,
      "description": "Number of orders"
    },
    "batchId": {
      "type": "number",
      "example": 1,
      "description": "Batch ID of the request"
    }
  }
}
object createdProcessId
{
  "type": "object",
  "required": [
    "processId"
  ],
  "properties": {
    "processId": {
      "type": "integer",
      "format": "int64",
      "example": 78,
      "description": "Id of the process created"
    }
  }
}
object deleteHardbounces
{
  "type": "object",
  "properties": {
    "endDate": {
      "type": "string",
      "example": "2017-01-31T00:00:00.000Z",
      "description": "Ending date (YYYY-MM-DD) of the time period for deletion. The hardbounces until this date will be deleted. Must be greater than or equal to the startDate"
    },
    "startDate": {
      "type": "string",
      "example": "2016-12-31T00:00:00.000Z",
      "description": "Starting date (YYYY-MM-DD) of the time period for deletion. The hardbounces occurred after this date will be deleted. Must be less than or equal to the endDate"
    },
    "contactEmail": {
      "type": "string",
      "format": "email",
      "example": "alex76@example.com",
      "description": "Target a specific email address"
    }
  }
}
object emailExportRecipients
{
  "type": "object",
  "required": [
    "recipientsType"
  ],
  "properties": {
    "notifyURL": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "Webhook called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479"
    },
    "recipientsType": {
      "enum": [
        "all",
        "nonClickers",
        "nonOpeners",
        "clickers",
        "openers",
        "softBounces",
        "hardBounces",
        "unsubscribed"
      ],
      "type": "string",
      "example": "openers",
      "description": "Type of recipients to export for a campaign"
    }
  }
}
object errorModel
{
  "type": "object",
  "required": [
    "code",
    "message"
  ],
  "properties": {
    "code": {
      "enum": [
        "invalid_parameter",
        "missing_parameter",
        "out_of_range",
        "campaign_processing",
        "campaign_sent",
        "document_not_found",
        "reseller_permission_denied",
        "not_enough_credits",
        "permission_denied",
        "duplicate_parameter",
        "duplicate_request",
        "method_not_allowed",
        "unauthorized",
        "account_under_validation",
        "not_acceptable",
        "bad_request"
      ],
      "type": "string",
      "example": "method_not_allowed",
      "description": "Error code displayed in case of a failure"
    },
    "message": {
      "type": "string",
      "example": "POST Method is not allowed on this path",
      "description": "Readable message associated to the failure"
    }
  }
}
object event
{
  "type": "object",
  "required": [
    "event_name",
    "identifiers"
  ],
  "properties": {
    "event_date": {
      "type": "string",
      "example": "2024-02-06T20:59:23.383Z",
      "description": "Timestamp of when the event occurred (e.g. \"2024-01-24T17:39:57+01:00\"). If no value is passed, the timestamp of the event creation is used."
    },
    "event_name": {
      "type": "string",
      "example": "video_played",
      "description": "The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only."
    },
    "identifiers": {
      "type": "object",
      "properties": {
        "sms": {
          "type": "string",
          "example": "+91xxxxxxxxxx",
          "description": "SMS associated with the event"
        },
        "ext_id": {
          "type": "string",
          "example": "abc123",
          "description": "ext_id associated with the event"
        },
        "email_id": {
          "type": "string",
          "example": "jane.doe@example.com",
          "description": "Email Id associated with the event"
        },
        "whatsapp": {
          "type": "string",
          "example": "+91xxxxxxxxxx",
          "description": "whatsapp associated with the event"
        },
        "landline_number": {
          "type": "string",
          "example": "+91xxxxxxxxxx",
          "description": "landline_number associated with the event"
        }
      },
      "description": "Identifies the contact associated with the event. At least one identifier is required.",
      "minProperties": 1
    },
    "event_properties": {
      "type": "object",
      "example": {
        "duration": 142,
        "autoplayed": false,
        "upload_date": "2023-11-24T12:09:10+01:00",
        "video_title": "Brevo — The most approachable CRM suite",
        "vide_description": "Create your free account today!"
      },
      "description": "Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. \"2024-01-24T17:39:57+01:00\"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb.",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          },
          {
            "type": "object"
          },
          {
            "type": "array",
            "items": {
              "description": "WARNING: Missing items property in array schema. Missing items property has been filled with this AnyType schema."
            }
          }
        ]
      }
    },
    "contact_properties": {
      "type": "object",
      "example": {
        "AGE": 32,
        "GENDER": "FEMALE"
      },
      "description": "Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **\"FIRSTNAME\": \"Jane\" , \"AGE\": 37**",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      }
    }
  }
}
object exportWebhooksHistory
{
  "type": "object",
  "required": [
    "event",
    "notifyURL",
    "type"
  ],
  "properties": {
    "days": {
      "type": "integer",
      "example": 7,
      "description": "Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_"
    },
    "sort": {
      "type": "string",
      "example": "desc",
      "description": "Sorting order of records (asc or desc)"
    },
    "type": {
      "enum": [
        "transactional",
        "marketing"
      ],
      "type": "string",
      "example": "transactional",
      "description": "Filter the history based on webhook type"
    },
    "email": {
      "type": "string",
      "example": "example@brevo.com",
      "description": "Filter the history for a specific email"
    },
    "event": {
      "enum": [
        "invalid_parameter",
        "missing_parameter",
        "hardBounce",
        "softBounce",
        "delivered",
        "spam",
        "request",
        "opened",
        "click",
        "invalid",
        "deferred",
        "blocked",
        "unsubscribed",
        "error",
        "uniqueOpened",
        "loadedByProxy",
        "allEvents"
      ],
      "type": "string",
      "example": "request",
      "description": "Filter the history for a specific event type"
    },
    "endDate": {
      "type": "string",
      "example": "2023-02-17T00:00:00.000Z",
      "description": "Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate"
    },
    "messageId": {
      "type": "integer",
      "example": null,
      "description": "Filter the history for a specific message id. Applicable only for transactional webhooks."
    },
    "notifyURL": {
      "type": "string",
      "example": "https://brevo.com",
      "description": "Webhook URL to receive CSV file link"
    },
    "startDate": {
      "type": "string",
      "example": "2023-02-13T00:00:00.000Z",
      "description": "Mandatory if endDate is used. Starting date of the history (YYYY-MM-DD). Must be lower than equal to endDate"
    },
    "webhookId": {
      "type": "integer",
      "example": 2345,
      "description": "Filter the history for a specific webhook id"
    }
  }
}
object getAccount
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getExtendedClient"
    },
    {
      "type": "object",
      "required": [
        "plan",
        "relay"
      ],
      "properties": {
        "plan": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "credits",
              "creditsType",
              "type"
            ],
            "properties": {
              "type": {
                "enum": [
                  "payAsYouGo",
                  "free",
                  "subscription",
                  "sms",
                  "reseller"
                ],
                "type": "string",
                "example": "subscription",
                "description": "Displays the plan type of the user"
              },
              "credits": {
                "type": "number",
                "format": "float",
                "example": 8755,
                "description": "Remaining credits of the user"
              },
              "endDate": {
                "type": "string",
                "format": "date",
                "example": "2017-01-31T00:00:00.000Z",
                "description": "Date of the period from which the plan will end (only available for \"subscription\" and \"reseller\" plan type)"
              },
              "startDate": {
                "type": "string",
                "format": "date",
                "example": "2016-12-31T00:00:00.000Z",
                "description": "Date of the period from which the plan will start (only available for \"subscription\" and \"reseller\" plan type)"
              },
              "userLimit": {
                "type": "integer",
                "example": 10,
                "description": "Only in case of reseller account. It implies the total number of child accounts you can add to your account."
              },
              "creditsType": {
                "enum": [
                  "sendLimit"
                ],
                "type": "string",
                "example": "sendLimit",
                "description": "This is the type of the credit, \"Send Limit\" is one of the possible types of credit of a user. \"Send Limit\" implies the total number of emails you can send to the subscribers in your account."
              }
            }
          },
          "description": "Information about your plans and credits"
        },
        "relay": {
          "type": "object",
          "required": [
            "data",
            "enabled"
          ],
          "properties": {
            "data": {
              "type": "object",
              "required": [
                "port",
                "relay",
                "userName"
              ],
              "properties": {
                "port": {
                  "type": "integer",
                  "example": 125,
                  "description": "Port used for SMTP Relay"
                },
                "relay": {
                  "type": "string",
                  "example": "relay.domain.com",
                  "description": "URL of the SMTP Relay"
                },
                "userName": {
                  "type": "string",
                  "format": "email",
                  "example": "john.smith@example.com",
                  "description": "Email to use as login on transactional platform"
                }
              },
              "description": "Data regarding the transactional email account"
            },
            "enabled": {
              "type": "boolean",
              "example": true,
              "description": "Status of your transactional email Account (true=Enabled, false=Disabled)"
            }
          },
          "description": "Information about your transactional email account"
        },
        "marketingAutomation": {
          "type": "object",
          "required": [
            "enabled"
          ],
          "properties": {
            "key": {
              "type": "string",
              "example": "iso05aopqych87ysy0jymf",
              "description": "Marketing Automation Tracker ID"
            },
            "enabled": {
              "type": "boolean",
              "example": false,
              "description": "Status of Marketing Automation Plateform activation for your account (true=enabled, false=disabled)"
            }
          }
        }
      }
    }
  ]
}
object getAccountActivity
{
  "type": "object",
  "properties": {
    "logs": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "action",
          "date",
          "user_email",
          "user_ip",
          "user_agent"
        ],
        "properties": {
          "date": {
            "type": "string",
            "example": "2023-03-27T16:30:00Z",
            "description": "Time of the activity."
          },
          "action": {
            "type": "string",
            "example": "login-success",
            "description": "Type of activity in the account."
          },
          "user_ip": {
            "type": "string",
            "example": "192.158.1.38",
            "description": "IP address of the user who performed activity in the account."
          },
          "user_agent": {
            "type": "string",
            "example": "Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)",
            "description": "Browser details of the user who performed the activity."
          },
          "user_email": {
            "type": "string",
            "example": "test@mycompany.com",
            "description": "Email address of the user who performed activity in the account."
          }
        }
      },
      "description": "Get user activity logs"
    }
  }
}
object getAggregatedReport
{
  "type": "object",
  "properties": {
    "opens": {
      "type": "integer",
      "format": "int64",
      "example": 47,
      "description": "Number of openings for the timeframe"
    },
    "range": {
      "type": "string",
      "example": "2016-09-08|2017-04-06",
      "description": "Time frame of the report"
    },
    "clicks": {
      "type": "integer",
      "format": "int64",
      "example": 12,
      "description": "Number of clicks for the timeframe"
    },
    "blocked": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Number of blocked contact emails for the timeframe"
    },
    "invalid": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "Number of invalid emails for the timeframe"
    },
    "requests": {
      "type": "integer",
      "format": "int64",
      "example": 263,
      "description": "Number of requests for the timeframe"
    },
    "delivered": {
      "type": "integer",
      "format": "int64",
      "example": 249,
      "description": "Number of delivered emails for the timeframe"
    },
    "hardBounces": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Number of hardbounces for the timeframe"
    },
    "softBounces": {
      "type": "integer",
      "format": "int64",
      "example": 4,
      "description": "Number of softbounces for the timeframe"
    },
    "spamReports": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "Number of complaint (spam report) for the timeframe"
    },
    "uniqueOpens": {
      "type": "integer",
      "format": "int64",
      "example": 37,
      "description": "Number of unique openings for the timeframe"
    },
    "uniqueClicks": {
      "type": "integer",
      "format": "int64",
      "example": 8,
      "description": "Number of unique clicks for the timeframe"
    },
    "unsubscribed": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "Number of unsubscribed emails for the timeframe"
    }
  }
}
object getAllExternalFeeds
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "Total number of batches"
    },
    "feeds": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "url",
          "authType",
          "headers",
          "maxRetries",
          "cache",
          "createdAt",
          "modifiedAt"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuidv4",
            "example": "54377442-20a2-4c20-b761-d636c72de7b7",
            "description": "ID of the feed"
          },
          "url": {
            "type": "string",
            "format": "url",
            "example": "http://requestb.in/173lyyx1",
            "description": "URL of the feed"
          },
          "name": {
            "type": "string",
            "example": "New feed",
            "description": "Name of the feed"
          },
          "cache": {
            "type": "boolean",
            "example": true,
            "description": "Toggle caching of feed url response"
          },
          "token": {
            "type": "string",
            "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
            "description": "Token for authType `token`"
          },
          "headers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "userId",
                  "description": "Name of the header"
                },
                "value": {
                  "type": "string",
                  "example": "user12345",
                  "description": "Value of the header"
                }
              }
            },
            "description": "Custom headers for the feed"
          },
          "authType": {
            "enum": [
              "basic",
              "token",
              "noAuth"
            ],
            "type": "string",
            "description": "Auth type of the feed: * `basic` * `token` * `noAuth`\n"
          },
          "password": {
            "type": "string",
            "example": "password",
            "description": "Password for authType `basic`"
          },
          "username": {
            "type": "string",
            "example": "user",
            "description": "Username for authType `basic`"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2022-10-06T05:03:47.053000000Z",
            "description": "Datetime on which the feed was created"
          },
          "maxRetries": {
            "type": "integer",
            "default": 5,
            "example": 5,
            "maximum": 5,
            "minimum": 0,
            "description": "Maximum number of retries on the feed url"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2022-10-06T05:03:47.053000000Z",
            "description": "Datetime on which the feed was modified"
          }
        }
      }
    }
  }
}
object getAttributes
{
  "type": "object",
  "required": [
    "attributes"
  ],
  "properties": {
    "attributes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "category",
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "LASTNAME",
            "description": "Name of the attribute"
          },
          "type": {
            "enum": [
              "text",
              "date",
              "float",
              "id",
              "boolean"
            ],
            "type": "string",
            "example": "text",
            "description": "Type of the attribute"
          },
          "category": {
            "enum": [
              "normal",
              "transactional",
              "category",
              "calculated",
              "global"
            ],
            "type": "string",
            "example": "category",
            "description": "Category of the attribute"
          },
          "enumeration": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "label",
                "value"
              ],
              "properties": {
                "label": {
                  "type": "string",
                  "example": "Women",
                  "description": "Label of the \"category\" type attribute"
                },
                "value": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1,
                  "description": "ID of Value of the \"category\" type attribute"
                }
              }
            },
            "description": "Parameter only available for \"category\" type attributes."
          },
          "calculatedValue": {
            "type": "string",
            "example": "COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]",
            "description": "Calculated value formula"
          }
        }
      },
      "description": "Listing of available contact attributes in your account"
    }
  }
}
object getBlockedDomains
{
  "type": "object",
  "required": [
    "domains"
  ],
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "contact.com",
        "description": "name of blocked domain"
      },
      "description": "List of all blocked domains"
    }
  }
}
object getCampaignOverview
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "type"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 12,
      "description": "ID of the campaign"
    },
    "name": {
      "type": "string",
      "example": "EN - Sales Summer 2017",
      "description": "Name of the campaign"
    },
    "type": {
      "enum": [
        "classic",
        "trigger"
      ],
      "type": "string",
      "example": "classic",
      "description": "Type of campaign"
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "archive",
        "queued",
        "suspended",
        "in_process"
      ],
      "type": "string",
      "example": "sent",
      "description": "Status of the campaign"
    },
    "subject": {
      "type": "string",
      "example": "20% OFF for 2017 Summer Sales",
      "description": "Subject of the campaign. Only available if `abTesting` flag of the campaign is `false`"
    },
    "subjectA": {
      "type": "string",
      "example": "Discover the New Collection!",
      "description": "Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true`"
    },
    "subjectB": {
      "type": "string",
      "example": "Want to discover the New Collection?",
      "description": "Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true`"
    },
    "abTesting": {
      "type": "boolean",
      "example": true,
      "description": "Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled."
    },
    "splitRule": {
      "type": "integer",
      "example": 25,
      "description": "The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true`"
    },
    "previewText": {
      "type": "string",
      "example": "Thanks for your order!",
      "description": "Preview text or preheader of the email campaign"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T12:30:00.000Z",
      "description": "UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "winnerDelay": {
      "type": "integer",
      "example": 50,
      "description": "The duration of the test in hours at the end of which the winning version will be sent. Only available if `abTesting` flag of the campaign is `true`"
    },
    "sendAtBestTime": {
      "type": "boolean",
      "example": true,
      "description": "It is true if you have chosen to send your campaign at best time, otherwise it is false"
    },
    "winnerCriteria": {
      "type": "string",
      "example": "open",
      "description": "Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true`"
    }
  }
}
object getCampaignRecipients
{
  "type": "object",
  "required": [
    "exclusionLists",
    "lists"
  ],
  "properties": {
    "lists": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 21,
        "description": "List IDs included in the campaign"
      }
    },
    "exclusionLists": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 13,
        "description": "List IDs excluded of the campaign"
      }
    }
  }
}
object getCampaignStats
{
  "type": "object",
  "required": [
    "clickers",
    "complaints",
    "delivered",
    "hardBounces",
    "sent",
    "softBounces",
    "uniqueClicks",
    "uniqueViews",
    "unsubscriptions",
    "viewed",
    "trackableViews"
  ],
  "properties": {
    "sent": {
      "type": "integer",
      "format": "int64",
      "example": 19887,
      "description": "Number of sent emails for the campaign"
    },
    "listId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "List Id of email campaign (only in case of get email campaign(s)(not for global stats))"
    },
    "viewed": {
      "type": "integer",
      "format": "int64",
      "example": 8999,
      "description": "Number of openings for the campaign"
    },
    "clickers": {
      "type": "integer",
      "format": "int64",
      "example": 2665,
      "description": "Number of total clicks for the campaign"
    },
    "deferred": {
      "type": "integer",
      "format": "int64",
      "example": 30,
      "description": "Number of deferred emails for the campaign"
    },
    "delivered": {
      "type": "integer",
      "format": "int64",
      "example": 19765,
      "description": "Number of delivered emails for the campaign"
    },
    "complaints": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Number of complaints (Spam reports) for the campaign"
    },
    "hardBounces": {
      "type": "integer",
      "format": "int64",
      "example": 87,
      "description": "Number of harbounce for the campaign"
    },
    "softBounces": {
      "type": "integer",
      "format": "int64",
      "example": 100,
      "description": "Number of softbounce for the campaign"
    },
    "uniqueViews": {
      "type": "integer",
      "format": "int64",
      "example": 7779,
      "description": "Number of unique openings for the campaign"
    },
    "returnBounce": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "Total number of non-delivered campaigns for a particular campaign id."
    },
    "uniqueClicks": {
      "type": "integer",
      "format": "int64",
      "example": 2300,
      "description": "Number of unique clicks for the campaign"
    },
    "estimatedViews": {
      "type": "integer",
      "format": "int64",
      "example": 560,
      "description": "Rate of recipients without any privacy protection option enabled in their email client, applied to all delivered emails"
    },
    "trackableViews": {
      "type": "integer",
      "format": "int64",
      "example": 5661,
      "description": "Recipients without any privacy protection option enabled in their email client"
    },
    "unsubscriptions": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Number of unsubscription for the campaign"
    },
    "trackableViewsRate": {
      "type": "number",
      "format": "float",
      "example": 23.45,
      "description": "Rate of recipients without any privacy protection option enabled in their email client"
    }
  }
}
object getCategories
{
  "type": "object",
  "required": [
    "categories",
    "count"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 17655,
      "description": "Number of categories"
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getCategoryDetails"
      }
    }
  }
}
object getCategoryDetails
{
  "type": "object",
  "required": [
    "id",
    "name",
    "createdAt",
    "modifiedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "string",
      "example": "C11",
      "description": "Category ID for which you requested the details"
    },
    "url": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/category/clothing",
      "description": "URL to the category"
    },
    "name": {
      "type": "string",
      "format": "string",
      "example": "Electronics",
      "description": "Name of the category for which you requested the details"
    },
    "createdAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Creation UTC date-time of the category (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "isDeleted": {
      "type": "boolean",
      "format": "string",
      "example": true,
      "description": "category deleted from the shop's database"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Last modification UTC date-time of the category (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    }
  }
}
object getChildAccountCreationStatus
{
  "type": "object",
  "required": [
    "childAccountCreated"
  ],
  "properties": {
    "childAccountCreated": {
      "type": "boolean",
      "example": true,
      "description": "Status of child account creation whether it is successfully created (exists) or not."
    }
  }
}
object getChildDomain
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "indicates whether a domain is verified or not"
    },
    "domain": {
      "type": "string",
      "example": "mycustomdomain.com",
      "description": "Sender domain"
    }
  }
}
array getChildDomains
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/getChildDomain"
  }
}
object getChildInfo
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getClient"
    },
    {
      "type": "object",
      "required": [
        "password"
      ],
      "properties": {
        "ips": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "",
            "description": "IP(s) associated to the user"
          },
          "description": "IP(s) associated to a child account user"
        },
        "apiKeys": {
          "type": "object",
          "required": [
            "v2"
          ],
          "properties": {
            "v2": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "key",
                  "name"
                ],
                "properties": {
                  "key": {
                    "type": "string",
                    "example": "nOpxxxxxy7z",
                    "description": "API Key for version 2"
                  },
                  "name": {
                    "type": "string",
                    "example": "N˚2",
                    "description": "Name of the key for version 2"
                  }
                }
              }
            },
            "v3": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "key",
                  "name"
                ],
                "properties": {
                  "key": {
                    "type": "string",
                    "example": "xkeysib-21881axxxxxcc92e04-mIrexxxx7z",
                    "description": "API Key for version 3"
                  },
                  "name": {
                    "type": "string",
                    "example": "N˚3",
                    "description": "Name of the key for version 3"
                  }
                }
              }
            }
          },
          "description": "API Keys associated to child account"
        },
        "credits": {
          "type": "object",
          "properties": {
            "smsCredits": {
              "type": "integer",
              "format": "int64",
              "example": 87556,
              "description": "SMS credits available for your child"
            },
            "emailCredits": {
              "type": "integer",
              "format": "int64",
              "example": 98555,
              "description": "Email credits available for your child"
            }
          },
          "description": "Credits available for your child"
        },
        "password": {
          "type": "string",
          "format": "password",
          "example": "abC01De2fGHI3jkL",
          "description": "The encrypted password of child account"
        },
        "statistics": {
          "type": "object",
          "properties": {
            "totalSent": {
              "type": "integer",
              "format": "int64",
              "example": 987554,
              "description": "Overall emails sent for since the account exists"
            },
            "currentMonthTotalSent": {
              "type": "integer",
              "format": "int64",
              "example": 4566,
              "description": "Overall emails sent for current month"
            },
            "previousMonthTotalSent": {
              "type": "integer",
              "format": "int64",
              "example": 7654,
              "description": "Overall emails sent for the previous month"
            }
          },
          "description": "Statistics about your child account activity"
        }
      }
    }
  ]
}
object getChildrenList
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 24,
      "description": "Number of child accounts"
    },
    "children": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/getChildInfo"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "format": "int64",
                "example": 187588,
                "description": "ID of the child"
              }
            }
          }
        ]
      },
      "description": "Your children's account information"
    }
  }
}
object getClient
{
  "type": "object",
  "required": [
    "companyName",
    "email",
    "firstName",
    "lastName"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "john.smith@example.com",
      "description": "Login Email"
    },
    "lastName": {
      "type": "string",
      "example": "Smith",
      "description": "Last Name"
    },
    "firstName": {
      "type": "string",
      "example": "John",
      "description": "First Name"
    },
    "companyName": {
      "type": "string",
      "example": "MyCompany",
      "description": "Name of the company"
    }
  }
}
object getContactCampaignStats
{
  "type": "object",
  "properties": {
    "opened": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "count",
          "eventTime",
          "ip"
        ],
        "properties": {
          "ip": {
            "type": "string",
            "example": "165.87.3.15",
            "description": "IP from which the user has opened the campaign"
          },
          "count": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "Number of openings of the campaign"
          },
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "clicked": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "links"
        ],
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "count",
                "eventTime",
                "ip",
                "url"
              ],
              "properties": {
                "ip": {
                  "type": "string",
                  "example": "165.87.3.15",
                  "description": "IP from which the user has clicked on the link"
                },
                "url": {
                  "type": "string",
                  "example": "www.myshop.com",
                  "description": "URL of the clicked link"
                },
                "count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1,
                  "description": "Number of clicks on this link for the campaign"
                },
                "eventTime": {
                  "type": "string",
                  "example": "2017-03-12T20:15:13.000Z",
                  "description": "UTC date-time of the event"
                }
              }
            }
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "delivered": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "eventTime"
        ],
        "properties": {
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "complaints": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "eventTime"
        ],
        "properties": {
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "hardBounces": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "eventTime"
        ],
        "properties": {
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "softBounces": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "eventTime"
        ],
        "properties": {
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "messagesSent": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "campaignId",
          "eventTime"
        ],
        "properties": {
          "eventTime": {
            "type": "string",
            "example": "2017-03-12T20:15:13.000Z",
            "description": "UTC date-time of the event"
          },
          "campaignId": {
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "ID of the campaign which generated the event"
          }
        }
      }
    },
    "unsubscriptions": {
      "type": "object",
      "required": [
        "adminUnsubscription",
        "userUnsubscription"
      ],
      "properties": {
        "userUnsubscription": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "campaignId",
              "eventTime"
            ],
            "properties": {
              "ip": {
                "type": "string",
                "example": "165.87.3.15",
                "description": "IP from which the user has unsubscribed"
              },
              "eventTime": {
                "type": "string",
                "example": "2017-03-12T20:15:13.000Z",
                "description": "UTC date-time of the event"
              },
              "campaignId": {
                "type": "integer",
                "format": "int64",
                "example": 3,
                "description": "ID of the campaign which generated the event"
              }
            }
          },
          "description": "Contact has unsubscribed via the unsubscription link in the email"
        },
        "adminUnsubscription": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "eventTime"
            ],
            "properties": {
              "ip": {
                "type": "string",
                "example": "165.87.3.15",
                "description": "IP from which the user has been unsubscribed"
              },
              "eventTime": {
                "type": "string",
                "example": "2017-03-12T20:15:13.000Z",
                "description": "UTC date-time of the event"
              }
            }
          },
          "description": "Contact has been unsubscribed from the administrator"
        }
      }
    },
    "transacAttributes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "orderDate",
          "orderId",
          "orderPrice"
        ],
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int64",
            "example": 248,
            "description": "ID of the order"
          },
          "orderDate": {
            "type": "string",
            "format": "date",
            "example": "2017-03-12T00:00:00.000Z",
            "description": "Date of the order"
          },
          "orderPrice": {
            "type": "number",
            "format": "float",
            "example": 24.99,
            "description": "Price of the order"
          }
        }
      }
    }
  },
  "description": "Campaign Statistics for the contact"
}
object getContactDetails
{
  "type": "object",
  "required": [
    "attributes",
    "createdAt",
    "emailBlacklisted",
    "id",
    "listIds",
    "modifiedAt",
    "smsBlacklisted"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 32,
      "description": "ID of the contact for which you requested the details"
    },
    "email": {
      "type": "string",
      "format": "email",
      "example": "john.smith@example.com",
      "description": "Email address of the contact for which you requested the details"
    },
    "listIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "description": "List(s) in which the contact is included"
      }
    },
    "createdAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Creation UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "attributes": {
      "type": "object",
      "example": {
        "name": "Joe",
        "email": "joe@example.com"
      },
      "properties": {},
      "description": "Set of attributes of the contact"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Last modification UTC date-time of the contact (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "smsBlacklisted": {
      "type": "boolean",
      "example": true,
      "description": "Blacklist status for SMS campaigns (true=blacklisted, false=not blacklisted)"
    },
    "emailBlacklisted": {
      "type": "boolean",
      "example": false,
      "description": "Blacklist status for email campaigns (true=blacklisted, false=not blacklisted)"
    },
    "listUnsubscribed": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "description": "List(s) in which the contact is included (only available if unsubscription per list is activated for the account)"
      }
    }
  }
}
object getContacts
{
  "type": "object",
  "required": [
    "contacts",
    "count"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 17655,
      "description": "Number of contacts"
    },
    "contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getContactDetails"
      }
    }
  }
}
object getCorporateInvitedUsersList
{
  "type": "object",
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email",
          "is_owner",
          "status",
          "feature_access"
        ],
        "properties": {
          "email": {
            "type": "string",
            "example": "pendingInvitedUser@company.com",
            "description": "Email address of the user."
          },
          "groups": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "a5c4f22c08d9ed37ef1ca342",
                "description": "group id"
              },
              "name": {
                "type": "string",
                "example": "My group",
                "description": "group name"
              }
            },
            "description": "Admin user groups list"
          },
          "status": {
            "type": "string",
            "example": "active",
            "description": "Status of the invited user."
          },
          "is_owner": {
            "type": "string",
            "example": false,
            "description": "Flag for indicating is user owner of the organization."
          },
          "feature_access": {
            "type": "object",
            "properties": {
              "my_plan": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "all / none"
                },
                "description": "My plan accessiblity."
              },
              "api_keys": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "all / none"
                },
                "description": "Api keys accessiblity."
              },
              "apps_management": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "all / none"
                },
                "description": "Apps management accessiblity | Not available in ENTv2"
              },
              "user_management": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "all / none"
                },
                "description": "User management accessiblity."
              }
            },
            "description": "Feature accessiblity given to the user. (Required only if status is active)"
          }
        }
      },
      "description": "Get invited users list"
    }
  }
}
object getCorporateUserPermission
{
  "type": "object",
  "required": [
    "email",
    "status",
    "groups",
    "feature_access"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "invitedUser@company.com",
      "description": "Email address of the user."
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "6cbcxxxxxxxxxxxxxxxx457a",
            "description": "group identifier"
          },
          "name": {
            "type": "string",
            "example": "Staff",
            "description": "Group name"
          }
        },
        "description": "Groups details"
      }
    },
    "status": {
      "type": "string",
      "example": "active / pending",
      "description": "Status of the invited user."
    },
    "feature_access": {
      "type": "object",
      "properties": {
        "my_plan": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "all",
            "description": "Permission details"
          },
          "description": "Permission on my plan"
        },
        "api_keys": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "all",
            "description": "Permission details"
          },
          "description": "Permission on api keys"
        },
        "apps_management": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "all",
            "description": "Permission details"
          },
          "description": "Permission on apps management"
        },
        "user_management": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "none",
            "description": "Permission details"
          },
          "description": "Permission on user management"
        }
      },
      "description": "Granular feature permissions given to the user."
    }
  },
  "description": "Check admin user permissions"
}
object getCouponCollection
{
  "type": "object",
  "required": [
    "id",
    "name",
    "defaultCoupon",
    "createdAt",
    "totalCoupons",
    "remainingCoupons"
  ],
  "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."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "example": "2023-01-06T05:03:47.053Z",
      "description": "Datetime on which the collection was created."
    },
    "totalCoupons": {
      "type": "integer",
      "format": "int64",
      "example": 10000,
      "description": "Total number of coupons in the collection."
    },
    "defaultCoupon": {
      "type": "string",
      "example": "10 OFF",
      "description": "The default coupon of the collection."
    },
    "expirationDate": {
      "type": "string",
      "format": "date-time",
      "example": "2024-01-01T00:00:00Z",
      "description": "Expiration date for the coupon collection in RFC3339 format."
    },
    "remainingCoupons": {
      "type": "integer",
      "format": "int64",
      "example": 5000,
      "description": "Number of coupons that have not been sent yet."
    },
    "remainingDaysAlert": {
      "type": "integer",
      "example": 5,
      "description": "If present, an email notification is going to be sent the defined amount of days before to the expiration date."
    },
    "remainingCouponsAlert": {
      "type": "integer",
      "example": 5,
      "description": "If present, an email notification is going to be sent when the total number of available coupons falls below the defined threshold."
    }
  }
}
object getDeviceBrowserStats
{
  "type": "object",
  "required": [
    "clickers",
    "uniqueClicks",
    "uniqueViews",
    "viewed"
  ],
  "properties": {
    "viewed": {
      "type": "integer",
      "format": "int64",
      "example": 8999,
      "description": "Number of openings for the campaign using the particular browser"
    },
    "clickers": {
      "type": "integer",
      "format": "int64",
      "example": 2665,
      "description": "Number of total clicks for the campaign using the particular browser"
    },
    "uniqueViews": {
      "type": "integer",
      "format": "int64",
      "example": 7779,
      "description": "Number of unique openings for the campaign using the particular browser"
    },
    "uniqueClicks": {
      "type": "integer",
      "format": "int64",
      "example": 2300,
      "description": "Number of unique clicks for the campaign using the particular browser"
    }
  }
}
object getDomainConfigurationModel
{
  "type": "object",
  "required": [
    "domain",
    "verified",
    "authenticated",
    "dns_records"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "example": "myexample.com",
      "description": "Domain"
    },
    "verified": {
      "type": "boolean",
      "example": true,
      "description": "Status of domain verification (true=verified, false=non verified)"
    },
    "dns_records": {
      "type": "object",
      "properties": {
        "brevo_code": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        },
        "dkim_record": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        },
        "dmarc_record": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "status": {
              "type": "boolean"
            },
            "host_name": {
              "type": "string"
            }
          }
        }
      }
    },
    "authenticated": {
      "type": "boolean",
      "example": false,
      "description": "Status of domain authentication (true=authenticated, false=non authenticated)"
    }
  }
}
object getDomainsList
{
  "type": "object",
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "domain_name",
          "authenticated",
          "verified"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Id of the domain"
          },
          "ip": {
            "type": "string",
            "example": "123.98.689.7",
            "description": "Dedicated IP associated with domain"
          },
          "verified": {
            "type": "boolean",
            "example": false,
            "description": "Status of domain verification (true=verified, false=non verified)"
          },
          "domain_name": {
            "type": "string",
            "example": "mycompany.com",
            "description": "Domain name"
          },
          "authenticated": {
            "type": "boolean",
            "example": true,
            "description": "Status of domain authentication (true=authenticated, false=non authenticated)"
          }
        }
      },
      "description": "List of the domains available in your account"
    }
  }
}
object getEmailCampaign
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getExtendedCampaignOverview"
    },
    {
      "type": "object",
      "required": [
        "recipients",
        "statistics"
      ],
      "properties": {
        "recipients": {
          "$ref": "#/components/schemas/getCampaignRecipients"
        },
        "statistics": {
          "$ref": "#/components/schemas/getExtendedCampaignStats"
        }
      },
      "x-konfig-properties": {
        "recipients": {
          "type": "object"
        },
        "statistics": {
          "type": "object"
        }
      }
    }
  ]
}
object getEmailCampaigns
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 24,
      "description": "Number of Email campaigns retrieved"
    },
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/getExtendedCampaignOverview"
          },
          {
            "type": "object",
            "required": [
              "recipients",
              "statistics"
            ],
            "properties": {
              "shareLink": {
                "type": "string",
                "format": "url",
                "example": "http://dhh.brevo.com/fhsgccc.html?t=9865448900",
                "description": "Link to share the campaign on social medias"
              },
              "recipients": {
                "$ref": "#/components/schemas/getCampaignRecipients"
              },
              "statistics": {
                "$ref": "#/components/schemas/getExtendedCampaignStats"
              }
            },
            "x-konfig-properties": {
              "recipients": {
                "type": "object"
              },
              "statistics": {
                "type": "object"
              }
            }
          }
        ]
      }
    }
  }
}
object getEmailEventReport
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "email",
          "event",
          "messageId"
        ],
        "properties": {
          "ip": {
            "type": "string",
            "example": "165.87.3.15",
            "description": "IP from which the user has opened the email or clicked on the link (only available if the event is opened or clicks)"
          },
          "tag": {
            "type": "string",
            "example": "OrderConfirmation",
            "description": "Tag of the email which generated the event"
          },
          "date": {
            "type": "string",
            "example": "2017-03-12T12:30:00.000Z",
            "description": "UTC date-time on which the event has been generated"
          },
          "from": {
            "type": "string",
            "format": "email",
            "example": "john@example.com",
            "description": "Sender email from which the emails are sent"
          },
          "link": {
            "type": "string",
            "example": "https://www.someexamplelink.com",
            "description": "The link which is sent to the user (only available if the event is requests or opened or clicks)"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "john.smith@example.com",
            "description": "Email address which generates the event"
          },
          "event": {
            "enum": [
              "bounces",
              "hardBounces",
              "softBounces",
              "delivered",
              "spam",
              "requests",
              "opened",
              "clicks",
              "invalid",
              "deferred",
              "blocked",
              "unsubscribed",
              "error",
              "loadedByProxy"
            ],
            "type": "string",
            "example": "delivered",
            "description": "Event which occurred"
          },
          "reason": {
            "type": "string",
            "example": "Error connection timeout",
            "description": "Reason of bounce (only available if the event is hardbounce or softbounce)"
          },
          "subject": {
            "type": "string",
            "example": "Sib client test",
            "description": "Subject of the event"
          },
          "messageId": {
            "type": "string",
            "example": "<201798300811.5787683@relay.domain.com>",
            "description": "Message ID which generated the event"
          },
          "templateId": {
            "type": "integer",
            "format": "int64",
            "example": 4,
            "description": "ID of the template (only available if the email is template based)"
          }
        }
      }
    }
  }
}
object getExtendedCampaignOverview
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getCampaignOverview"
    },
    {
      "type": "object",
      "required": [
        "createdAt",
        "footer",
        "header",
        "htmlContent",
        "modifiedAt",
        "replyTo",
        "sender",
        "testSent"
      ],
      "properties": {
        "tag": {
          "type": "string",
          "example": "Newsletter",
          "description": "Tag of the campaign"
        },
        "footer": {
          "type": "string",
          "example": "[DEFAULT_FOOTER]",
          "description": "Footer of the campaign"
        },
        "header": {
          "type": "string",
          "example": "[DEFAULT_HEADER]",
          "description": "Header of the campaign"
        },
        "sender": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "format": "int64",
              "example": 43,
              "description": "Sender id of the campaign"
            },
            "name": {
              "type": "string",
              "example": "Marketing",
              "description": "Sender name of the campaign"
            },
            "email": {
              "type": "string",
              "format": "email",
              "example": "marketing@mycompany.com",
              "description": "Sender email of the campaign"
            }
          }
        },
        "replyTo": {
          "type": "string",
          "format": "email",
          "example": "replyto@domain.com",
          "description": "Email defined as the \"Reply to\" of the campaign"
        },
        "toField": {
          "type": "string",
          "example": "{FNAME} {LNAME}",
          "description": "Customisation of the \"to\" field of the campaign"
        },
        "sentDate": {
          "type": "string",
          "example": "2018-12-01T16:30:00.000Z",
          "description": "Sent UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ). Only available if 'status' of the campaign is 'sent'"
        },
        "testSent": {
          "type": "boolean",
          "example": true,
          "description": "Retrieved the status of test email sending. (true=Test email has been sent  false=Test email has not been sent)"
        },
        "createdAt": {
          "type": "string",
          "example": "2017-05-01T12:30:00.000Z",
          "description": "Creation UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
        },
        "recurring": {
          "type": "boolean",
          "example": true,
          "description": "FOR TRIGGER ONLY ! Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times"
        },
        "shareLink": {
          "type": "string",
          "format": "url",
          "example": "http://dhh.brevo.com/fhsgccc.html?t=9865448900",
          "description": "Link to share the campaign on social medias"
        },
        "modifiedAt": {
          "type": "string",
          "example": "2017-05-01T12:30:00.000Z",
          "description": "UTC date-time of last modification of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
        },
        "htmlContent": {
          "type": "string",
          "example": "This is my HTML Content",
          "description": "HTML content of the campaign"
        },
        "mirrorActive": {
          "type": "boolean",
          "example": true,
          "description": "Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign"
        },
        "returnBounce": {
          "type": "integer",
          "format": "int64",
          "example": 5,
          "description": "Total number of non-delivered campaigns for a particular campaign id."
        },
        "inlineImageActivation": {
          "type": "boolean",
          "example": true,
          "description": "Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email."
        }
      }
    }
  ]
}
object getExtendedCampaignStats
{
  "type": "object",
  "required": [
    "campaignStats",
    "globalStats",
    "linksStats",
    "mirrorClick",
    "remaining",
    "statsByBrowser",
    "statsByDevice",
    "statsByDomain"
  ],
  "properties": {
    "remaining": {
      "type": "integer",
      "format": "int64",
      "example": 1000,
      "description": "Number of remaning emails to send"
    },
    "linksStats": {
      "type": "object",
      "example": {
        "example.abc.com": 7,
        "example.domain.com": 10
      },
      "properties": {},
      "description": "Statistics about the number of clicks for the links"
    },
    "globalStats": {
      "$ref": "#/components/schemas/getCampaignStats"
    },
    "mirrorClick": {
      "type": "integer",
      "format": "int64",
      "example": 120,
      "description": "Number of clicks on mirror link"
    },
    "campaignStats": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getCampaignStats"
      },
      "description": "List-wise statistics of the campaign."
    },
    "statsByDevice": {
      "$ref": "#/components/schemas/getStatsByDevice"
    },
    "statsByDomain": {
      "$ref": "#/components/schemas/getStatsByDomain"
    },
    "statsByBrowser": {
      "$ref": "#/components/schemas/getStatsByBrowser"
    }
  },
  "x-konfig-properties": {
    "globalStats": {
      "type": "object",
      "description": "Overall statistics of the campaign"
    }
  }
}
object getExtendedClient
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getClient"
    },
    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "address": {
          "type": "object",
          "required": [
            "city",
            "country",
            "street",
            "zipCode"
          ],
          "properties": {
            "city": {
              "type": "string",
              "example": "New-York",
              "description": "City information"
            },
            "street": {
              "type": "string",
              "example": "47 Harbour Street",
              "description": "Street information"
            },
            "country": {
              "type": "string",
              "example": "United States of America",
              "description": "Country information"
            },
            "zipCode": {
              "type": "string",
              "example": "9867",
              "description": "Zip Code information"
            }
          },
          "description": "Address informations"
        }
      }
    }
  ]
}
object getExtendedContactDetails
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getContactDetails"
    },
    {
      "type": "object",
      "required": [
        "statistics"
      ],
      "properties": {
        "statistics": {
          "type": "object",
          "properties": {
            "opened": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "count",
                  "eventTime",
                  "ip"
                ],
                "properties": {
                  "ip": {
                    "type": "string",
                    "example": "165.87.3.15",
                    "description": "IP from which the user has opened the email"
                  },
                  "count": {
                    "type": "integer",
                    "format": "int64",
                    "example": 1,
                    "description": "Number of openings for the campaign"
                  },
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the openings generated by the contact"
            },
            "clicked": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "links"
                ],
                "properties": {
                  "links": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "count",
                        "eventTime",
                        "ip",
                        "url"
                      ],
                      "properties": {
                        "ip": {
                          "type": "string",
                          "example": "165.87.3.15",
                          "description": "IP from which the user has clicked on the link"
                        },
                        "url": {
                          "type": "string",
                          "example": "www.myshop.com",
                          "description": "URL of the clicked link"
                        },
                        "count": {
                          "type": "integer",
                          "format": "int64",
                          "example": 1,
                          "description": "Number of clicks on this link for the campaign"
                        },
                        "eventTime": {
                          "type": "string",
                          "example": "2017-03-12T20:15:13.000Z",
                          "description": "UTC date-time of the event"
                        }
                      }
                    },
                    "description": "Listing of the clicked links for the campaign"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the clicks generated by the contact"
            },
            "delivered": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "eventTime"
                ],
                "properties": {
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the delivered campaign for the contact"
            },
            "complaints": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "eventTime"
                ],
                "properties": {
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the complaints generated by the contact"
            },
            "hardBounces": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "eventTime"
                ],
                "properties": {
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the hardbounes generated by the contact"
            },
            "softBounces": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "eventTime"
                ],
                "properties": {
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the softbounes generated by the contact"
            },
            "messagesSent": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "campaignId",
                  "eventTime"
                ],
                "properties": {
                  "eventTime": {
                    "type": "string",
                    "example": "2017-03-12T20:15:13.000Z",
                    "description": "UTC date-time of the event"
                  },
                  "campaignId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 3,
                    "description": "ID of the campaign which generated the event"
                  }
                }
              },
              "description": "Listing of the sent campaign for the contact"
            },
            "unsubscriptions": {
              "type": "object",
              "required": [
                "adminUnsubscription",
                "userUnsubscription"
              ],
              "properties": {
                "userUnsubscription": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "campaignId",
                      "eventTime"
                    ],
                    "properties": {
                      "ip": {
                        "type": "string",
                        "example": "165.87.3.15",
                        "description": "IP from which the user has unsubscribed"
                      },
                      "eventTime": {
                        "type": "string",
                        "example": "2017-03-12T20:15:13.000Z",
                        "description": "UTC date-time of the event"
                      },
                      "campaignId": {
                        "type": "integer",
                        "format": "int64",
                        "example": 3,
                        "description": "ID of the campaign which generated the event"
                      }
                    }
                  },
                  "description": "Contact unsubscribe via unsubscription link in a campaign"
                },
                "adminUnsubscription": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "eventTime"
                    ],
                    "properties": {
                      "ip": {
                        "type": "string",
                        "example": "165.87.3.15",
                        "description": "IP from which the user has been unsubscribed"
                      },
                      "eventTime": {
                        "type": "string",
                        "example": "2017-03-12T20:15:13.000Z",
                        "description": "UTC date-time of the event"
                      }
                    }
                  },
                  "description": "Contact has been unsubscribed from the administrator"
                }
              },
              "description": "Listing of the unsubscription for the contact"
            },
            "transacAttributes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {}
              },
              "description": "Listing of the transactional attributes for the contact"
            }
          },
          "description": "Campaign statistics of the contact"
        }
      }
    }
  ]
}
object getExtendedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getList"
    },
    {
      "type": "object",
      "required": [
        "createdAt",
        "folderId"
      ],
      "properties": {
        "folderId": {
          "type": "integer",
          "format": "int64",
          "example": 2,
          "description": "ID of the folder"
        },
        "createdAt": {
          "type": "string",
          "example": "2017-03-13T17:05:09.000Z",
          "description": "Creation UTC date-time of the list (YYYY-MM-DDTHH:mm:ss.SSSZ)"
        },
        "dynamicList": {
          "type": "boolean",
          "example": false,
          "description": "Status telling if the list is dynamic or not (true=dynamic, false=not dynamic)"
        },
        "campaignStats": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "campaignId",
              "stats"
            ],
            "properties": {
              "stats": {
                "$ref": "#/components/schemas/getCampaignStats"
              },
              "campaignId": {
                "type": "integer",
                "format": "int64",
                "example": 143,
                "description": "ID of the campaign"
              }
            }
          }
        }
      }
    }
  ]
}
object getExternalFeedByUUID
{
  "type": "object",
  "required": [
    "id",
    "name",
    "url",
    "authType",
    "headers",
    "maxRetries",
    "cache",
    "createdAt",
    "modifiedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuidv4",
      "example": "54377442-20a2-4c20-b761-d636c72de7b7",
      "description": "ID of the feed"
    },
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the feed"
    },
    "name": {
      "type": "string",
      "example": "New feed",
      "description": "Name of the feed"
    },
    "cache": {
      "type": "boolean",
      "example": true,
      "description": "Toggle caching of feed url response"
    },
    "token": {
      "type": "string",
      "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "description": "Token for authType `token`"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "userId",
            "description": "Name of the header"
          },
          "value": {
            "type": "string",
            "example": "user12345",
            "description": "Value of the header"
          }
        }
      },
      "description": "Custom headers for the feed"
    },
    "authType": {
      "enum": [
        "basic",
        "token",
        "noAuth"
      ],
      "type": "string",
      "description": "Auth type of the feed: * `basic` * `token` * `noAuth`\n"
    },
    "password": {
      "type": "string",
      "example": "password",
      "description": "Password for authType `basic`"
    },
    "username": {
      "type": "string",
      "example": "user",
      "description": "Username for authType `basic`"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "example": "2022-10-06T05:03:47.053000000Z",
      "description": "Datetime on which the feed was created"
    },
    "maxRetries": {
      "type": "integer",
      "default": 5,
      "example": 5,
      "maximum": 5,
      "minimum": 0,
      "description": "Maximum number of retries on the feed url"
    },
    "modifiedAt": {
      "type": "string",
      "format": "date-time",
      "example": "2022-10-06T05:03:47.053000000Z",
      "description": "Datetime on which the feed was modified"
    }
  }
}
object getFolder
{
  "type": "object",
  "required": [
    "id",
    "name",
    "totalBlacklisted",
    "totalSubscribers",
    "uniqueSubscribers"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "ID of the folder"
    },
    "name": {
      "type": "string",
      "example": "Magento Customers",
      "description": "Name of the folder"
    },
    "totalBlacklisted": {
      "type": "integer",
      "format": "int64",
      "example": 32,
      "description": "Number of blacklisted contacts in the folder"
    },
    "totalSubscribers": {
      "type": "integer",
      "format": "int64",
      "example": 19777,
      "description": "Number of contacts in the folder"
    },
    "uniqueSubscribers": {
      "type": "integer",
      "format": "int64",
      "example": 16222,
      "description": "Number of unique contacts in the folder"
    }
  }
}
object getFolderLists
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 6,
      "description": "Number of lists in the folder"
    },
    "lists": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getList"
      }
    }
  }
}
object getFolders
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 10,
      "description": "Number of folders available in your account"
    },
    "folders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getFolder"
      }
    }
  }
}
object getInboundEmailEvents
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "uuid",
          "sender",
          "date",
          "recipient"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "Date when email was received on SMTP relay"
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "description": "UUID that can be used to fetch additional data"
          },
          "sender": {
            "type": "string",
            "format": "email",
            "description": "Sender’s email address"
          },
          "recipient": {
            "type": "string",
            "format": "email",
            "description": "Recipient’s email address"
          }
        }
      }
    }
  }
}
object getInboundEmailEventsByUuid
{
  "type": "object",
  "properties": {
    "logs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "Date of the event"
          },
          "type": {
            "enum": [
              "received",
              "processed",
              "webhookFailed",
              "webhookDelivered"
            ],
            "type": "string",
            "description": "Type of the event"
          }
        }
      },
      "description": "List of events/logs that describe the lifecycle of the email on SIB platform"
    },
    "sender": {
      "type": "string",
      "format": "email",
      "description": "Sender’s email address"
    },
    "subject": {
      "type": "string",
      "description": "Value of the Subject header. This will be present only after the processing is done. "
    },
    "messageId": {
      "type": "string",
      "description": "Value of the Message-ID header. This will be present only after the processing is done."
    },
    "recipient": {
      "type": "string",
      "format": "email",
      "description": "Recipient’s email address"
    },
    "receivedAt": {
      "type": "string",
      "format": "date-time",
      "example": "2019-05-25T11:53:26Z",
      "description": "Date when email was received on SMTP relay"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "filename specified in the Content-Disposition header of the attachment"
          },
          "contentId": {
            "type": "string",
            "description": "value of the Content-ID header of the attachment."
          },
          "contentType": {
            "type": "string",
            "description": "value of the Content-Type header of the attachment"
          },
          "contentLength": {
            "type": "integer",
            "description": "size of the attachment in bytes"
          }
        }
      },
      "description": "List of attachments of the email. This will be present only after the processing is done."
    },
    "deliveredAt": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "Date when email was delivered successfully to client’s webhook"
    }
  }
}
object getInvitedUsersList
{
  "type": "object",
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email",
          "is_owner",
          "status",
          "feature_access"
        ],
        "properties": {
          "email": {
            "type": "string",
            "example": "pendingInvitedUser@company.com",
            "description": "Email address of the user."
          },
          "status": {
            "type": "string",
            "example": "active",
            "description": "Status of the invited user."
          },
          "is_owner": {
            "type": "string",
            "example": true,
            "description": "Flag for indicating is user owner of the organization."
          },
          "feature_access": {
            "type": "object",
            "properties": {
              "crm": {
                "type": "string",
                "example": "full",
                "description": "CRM features accessiblity."
              },
              "marketing": {
                "type": "string",
                "example": "custom",
                "description": "Marketing features accessiblity."
              },
              "conversations": {
                "type": "string",
                "example": "none",
                "description": "Conversations features accessiblity."
              }
            },
            "description": "Feature accessiblity given to the user."
          }
        }
      },
      "description": "Get invited users list"
    }
  }
}
object getIp
{
  "type": "object",
  "required": [
    "active",
    "domain",
    "id",
    "ip"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 3,
      "description": "ID of the dedicated IP"
    },
    "ip": {
      "type": "string",
      "example": "123.65.8.22",
      "description": "Dedicated IP"
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Status of the IP (true=active, false=inactive)"
    },
    "domain": {
      "type": "string",
      "example": "mailing.myshop.com",
      "description": "Domain associated to the IP"
    }
  }
}
object getIpFromSender
{
  "type": "object",
  "required": [
    "domain",
    "id",
    "ip",
    "weight"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 3,
      "description": "ID of the dedicated IP"
    },
    "ip": {
      "type": "string",
      "example": "123.65.8.22",
      "description": "Dedicated IP"
    },
    "domain": {
      "type": "string",
      "example": "mailing.myshop.dom",
      "description": "Domain associated to the IP"
    },
    "weight": {
      "type": "integer",
      "format": "int64",
      "example": 75,
      "description": "Weight of the IP"
    }
  }
}
object getIps
{
  "type": "object",
  "required": [
    "ips"
  ],
  "properties": {
    "ips": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getIp"
      },
      "description": "Dedicated IP(s) available on your account"
    }
  }
}
object getIpsFromSender
{
  "type": "object",
  "required": [
    "ips"
  ],
  "properties": {
    "ips": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getIpFromSender"
      },
      "description": "Dedicated IP(s) linked to a sender"
    }
  }
}
object getList
{
  "type": "object",
  "required": [
    "id",
    "name",
    "totalBlacklisted",
    "totalSubscribers",
    "uniqueSubscribers"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 23,
      "description": "ID of the list"
    },
    "name": {
      "type": "string",
      "example": "Magento Customers - EN",
      "description": "Name of the list"
    },
    "totalBlacklisted": {
      "type": "integer",
      "format": "int64",
      "example": 13,
      "description": "Number of blacklisted contacts in the list"
    },
    "totalSubscribers": {
      "type": "integer",
      "format": "int64",
      "example": 1776,
      "description": "Number of contacts in the list"
    },
    "uniqueSubscribers": {
      "type": "integer",
      "format": "int64",
      "example": 1789,
      "description": "Number of unique contacts in the list"
    }
  }
}
object getLists
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 150,
      "description": "Number of lists in your account"
    },
    "lists": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/getList"
          },
          {
            "type": "object",
            "required": [
              "folderId"
            ],
            "properties": {
              "folderId": {
                "type": "integer",
                "format": "int64",
                "example": 2,
                "description": "ID of the folder"
              }
            }
          }
        ]
      },
      "description": "Listing of all the lists available in your account"
    }
  }
}
object getPaymentRequest
{
  "type": "object",
  "required": [
    "reference",
    "status",
    "cart",
    "notification"
  ],
  "properties": {
    "cart": {
      "$ref": "#/components/schemas/cart"
    },
    "status": {
      "enum": [
        "created",
        "sent",
        "reminderSent",
        "paid"
      ],
      "type": "string",
      "example": "paid",
      "description": "Status of the payment request."
    },
    "contactId": {
      "type": "integer",
      "format": "int64",
      "example": 43,
      "description": "Brevo ID of the contact requested to pay.\n"
    },
    "reference": {
      "type": "string",
      "example": "Invoice #INV0001\n",
      "description": "Reference of the payment request, it will appear on the payment page.\n"
    },
    "notification": {
      "$ref": "#/components/schemas/notification"
    },
    "configuration": {
      "$ref": "#/components/schemas/configuration"
    }
  }
}
object getProcess
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 145,
      "description": "Id of the process"
    },
    "name": {
      "type": "string",
      "example": "IMPORTUSER",
      "description": "Process name"
    },
    "status": {
      "enum": [
        "queued",
        "in_process",
        "completed"
      ],
      "type": "string",
      "example": "queued",
      "description": "Status of the process"
    },
    "export_url": {
      "type": "string",
      "example": "http://requestb.in/16ua3aj1",
      "description": "URL on which send export the of contacts once the process is completed"
    }
  }
}
object getProcesses
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "Number of processes available on your account"
    },
    "processes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getProcess"
      },
      "description": "List of processes available on your account"
    }
  }
}
object getProductDetails
{
  "type": "object",
  "required": [
    "id",
    "name",
    "createdAt",
    "modifiedAt",
    "s3ThumbAnalytics",
    "s3ThumbEditor"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "string",
      "example": "P11",
      "description": "Product ID for which you requested the details"
    },
    "sku": {
      "type": "string",
      "format": "string",
      "description": "Product identifier from the shop"
    },
    "url": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product/electronics/product1",
      "description": "URL to the product"
    },
    "name": {
      "type": "string",
      "format": "string",
      "example": "Iphone 11",
      "description": "Name of the product for which you requested the details"
    },
    "price": {
      "type": "number",
      "format": "float",
      "description": "Price of the product"
    },
    "imageUrl": {
      "type": "string",
      "format": "string",
      "example": "http://mydomain.com/product-absoulte-url/img.jpeg",
      "description": "Absolute URL to the cover image of the product"
    },
    "metaInfo": {
      "type": "object",
      "example": {
        "brand": "addidas",
        "description": "Shoes for sports"
      },
      "description": "Meta data of product such as description, vendor, producer, stock level, etc."
    },
    "parentId": {
      "type": "string",
      "format": "string",
      "description": "Parent product id of the product"
    },
    "createdAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Creation UTC date-time of the product (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "isDeleted": {
      "type": "boolean",
      "example": true,
      "description": "product deleted from the shop's database"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Category ID-s of the product"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Last modification UTC date-time of the product (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "s3Original": {
      "type": "string",
      "format": "string",
      "description": "S3 url of original image"
    },
    "s3ThumbEditor": {
      "type": "string",
      "format": "string",
      "description": "S3 thumbnail url of original image in 600x400 dimension for editor section"
    },
    "s3ThumbAnalytics": {
      "type": "string",
      "format": "string",
      "description": "S3 thumbnail url of original image in 120x120 dimension for analytics section"
    }
  }
}
object getProducts
{
  "type": "object",
  "required": [
    "products",
    "count"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 17655,
      "description": "Number of products"
    },
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getProductDetails"
      }
    }
  }
}
object getReports
{
  "type": "object",
  "properties": {
    "reports": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "blocked",
          "clicks",
          "date",
          "delivered",
          "hardBounces",
          "invalid",
          "opens",
          "requests",
          "softBounces",
          "spamReports",
          "uniqueClicks",
          "uniqueOpens",
          "unsubscribed"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2017-04-06T00:00:00.000Z",
            "description": "Date of the statistics"
          },
          "opens": {
            "type": "integer",
            "format": "int64",
            "example": 58,
            "description": "Number of openings for the date"
          },
          "clicks": {
            "type": "integer",
            "format": "int64",
            "example": 6,
            "description": "Number of clicks for the date"
          },
          "blocked": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Number of blocked emails for the date"
          },
          "invalid": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Number of invalid emails for the date"
          },
          "requests": {
            "type": "integer",
            "format": "int64",
            "example": 65,
            "description": "Number of requests for the date"
          },
          "delivered": {
            "type": "integer",
            "format": "int64",
            "example": 63,
            "description": "Number of delivered emails for the date"
          },
          "hardBounces": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of hardbounces for the date"
          },
          "softBounces": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of softbounces for the date"
          },
          "spamReports": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Number of complaints (spam reports) for the date"
          },
          "uniqueOpens": {
            "type": "integer",
            "format": "int64",
            "example": 52,
            "description": "Number of unique openings for the date"
          },
          "uniqueClicks": {
            "type": "integer",
            "format": "int64",
            "example": 5,
            "description": "Number of unique clicks for the date"
          },
          "unsubscribed": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Number of unsubscribed emails for the date"
          }
        }
      }
    }
  }
}
object getScheduledEmailByBatchId
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "Total number of batches"
    },
    "batches": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "scheduledAt",
          "createdAt",
          "status"
        ],
        "properties": {
          "status": {
            "enum": [
              "inProgress",
              "queued",
              "processed",
              "error"
            ],
            "type": "string",
            "description": "Current status of the scheduled batch"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Datetime on which the batch was scheduled"
          },
          "scheduledAt": {
            "type": "string",
            "format": "date-time",
            "description": "Datetime for which the batch was scheduled"
          }
        }
      }
    }
  }
}
object getScheduledEmailByMessageId
{
  "type": "object",
  "required": [
    "scheduledAt",
    "createdAt",
    "status"
  ],
  "properties": {
    "status": {
      "enum": [
        "inProgress",
        "queued",
        "processed",
        "error"
      ],
      "type": "string",
      "description": "Current status of the scheduled email"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Datetime on which the email was scheduled"
    },
    "scheduledAt": {
      "type": "string",
      "format": "date-time",
      "description": "Datetime for which the email was scheduled"
    }
  }
}
object getSegments
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 10,
      "description": "Number of Segments in your account"
    },
    "segments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "segmentName",
          "categoryName"
        ]
      },
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 23,
          "description": "ID of the list"
        },
        "updatedAt": {
          "type": "string",
          "example": "2017-03-13T17:05:09Z",
          "description": "Updation UTC date-time of the segment (YYYY-MM-DDTHH:mm:ss.SSSZ)"
        },
        "segmentName": {
          "type": "string",
          "example": "My Segment",
          "description": "Name of the Segment"
        },
        "categoryName": {
          "type": "string",
          "format": "string",
          "example": "New Category",
          "description": "Name of the Segment Category"
        }
      },
      "description": "Listing of all the segments available in your account"
    }
  }
}
object getSendersList
{
  "type": "object",
  "properties": {
    "senders": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "active",
          "email",
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Id of the sender"
          },
          "ips": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "domain",
                "ip",
                "weight"
              ],
              "properties": {
                "ip": {
                  "type": "string",
                  "example": "123.98.689.7",
                  "description": "Dedicated IP available in your account"
                },
                "domain": {
                  "type": "string",
                  "example": "mycompany.com",
                  "description": "Domain of the IP"
                },
                "weight": {
                  "type": "integer",
                  "format": "int64",
                  "example": 50,
                  "description": "Weight of the IP for this sender"
                }
              }
            },
            "description": "List of dedicated IP(s) available in the account. This data is displayed only for dedicated IPs"
          },
          "name": {
            "type": "string",
            "example": "Marketing",
            "description": "From Name associated to the sender"
          },
          "email": {
            "type": "string",
            "example": "marketing@mycompany.com",
            "description": "From Email associated to the sender"
          },
          "active": {
            "type": "boolean",
            "example": false,
            "description": "Status of sender (true=activated, false=deactivated)"
          }
        }
      },
      "description": "List of the senders available in your account"
    }
  }
}
object getSharedTemplateUrl
{
  "type": "object",
  "required": [
    "sharedUrl"
  ],
  "properties": {
    "sharedUrl": {
      "type": "string",
      "format": "url",
      "example": "https://my.brevo.com/pt2YU7R5W_guXlowgumy_VX4pFsKu._zd0Gjj96x1_GMmzc1Qps5ZIpj6nx-",
      "description": "A unique URL for the email campaign or transactional template. This URL can be shared with other Brevo users."
    }
  }
}
object getSmsCampaign
{
  "allOf": [
    {
      "$ref": "#/components/schemas/getSmsCampaignOverview"
    },
    {
      "type": "object",
      "required": [
        "recipients",
        "statistics"
      ],
      "properties": {
        "recipients": {
          "$ref": "#/components/schemas/getCampaignRecipients"
        },
        "statistics": {
          "$ref": "#/components/schemas/getSmsCampaignStats"
        }
      },
      "x-konfig-properties": {
        "recipients": {
          "type": "object"
        },
        "statistics": {
          "type": "object"
        }
      }
    }
  ]
}
object getSmsCampaignOverview
{
  "type": "object",
  "required": [
    "content",
    "createdAt",
    "id",
    "modifiedAt",
    "name",
    "sender",
    "status"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "ID of the SMS Campaign"
    },
    "name": {
      "type": "string",
      "example": "PROMO CODE",
      "description": "Name of the SMS Campaign"
    },
    "sender": {
      "type": "string",
      "example": "MyCompany",
      "description": "Sender of the SMS Campaign"
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "archive",
        "queued",
        "suspended",
        "inProcess"
      ],
      "type": "string",
      "example": "draft",
      "description": "Status of the SMS Campaign"
    },
    "content": {
      "type": "string",
      "example": "Visit our Store and get some discount !",
      "description": "Content of the SMS Campaign"
    },
    "createdAt": {
      "type": "string",
      "example": "2017-06-01T12:30:00.000Z",
      "description": "Creation UTC date-time of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-01T12:30:00.000Z",
      "description": "UTC date-time of last modification of the SMS campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T12:30:00.000Z",
      "description": "UTC date-time on which SMS campaign is scheduled. Should be in YYYY-MM-DDTHH:mm:ss.SSSZ format"
    }
  }
}
object getSmsCampaignStats
{
  "type": "object",
  "required": [
    "answered",
    "delivered",
    "hardBounces",
    "processing",
    "sent",
    "softBounces",
    "unsubscriptions"
  ],
  "properties": {
    "sent": {
      "type": "integer",
      "format": "int64",
      "example": 3000,
      "description": "Number of sent SMS"
    },
    "answered": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Number of replies to the SMS"
    },
    "delivered": {
      "type": "integer",
      "format": "int64",
      "example": 2987,
      "description": "Number of delivered SMS"
    },
    "processing": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "Number of processing SMS"
    },
    "hardBounces": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Number of hardbounced SMS"
    },
    "softBounces": {
      "type": "integer",
      "format": "int64",
      "example": 3,
      "description": "Number of softbounced SMS"
    },
    "unsubscriptions": {
      "type": "integer",
      "format": "int64",
      "example": 3,
      "description": "Number of unsubscription SMS"
    }
  }
}
object getSmsCampaigns
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 12,
      "description": "Number of SMS campaigns retrieved"
    },
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/getSmsCampaignOverview"
          },
          {
            "type": "object",
            "required": [
              "recipients",
              "statistics"
            ],
            "properties": {
              "recipients": {
                "$ref": "#/components/schemas/getCampaignRecipients"
              },
              "statistics": {
                "$ref": "#/components/schemas/getSmsCampaignStats"
              }
            },
            "x-konfig-properties": {
              "recipients": {
                "type": "object"
              },
              "statistics": {
                "type": "object"
              }
            }
          }
        ]
      }
    }
  }
}
object getSmsEventReport
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "string",
            "example": "CabWaiting",
            "description": "Tag of the SMS which generated the event"
          },
          "date": {
            "type": "string",
            "example": "2017-03-12T12:30:00.000Z",
            "description": "UTC date-time on which the event has been generated"
          },
          "event": {
            "enum": [
              "bounces",
              "hardBounces",
              "softBounces",
              "delivered",
              "sent",
              "accepted",
              "unsubscription",
              "replies",
              "blocked",
              "rejected"
            ],
            "type": "string",
            "example": "accepted",
            "description": "Event which occurred"
          },
          "reply": {
            "type": "string"
          },
          "reason": {
            "type": "string",
            "example": "Message is undeliverable due to an incorrect / invalid / blacklisted / permanently barred MSISDN for this operator",
            "description": "Reason of bounce (only available if the event is hardbounce or softbounce)"
          },
          "messageId": {
            "type": "string",
            "example": "1472640582425378",
            "description": "Message ID which generated the event"
          },
          "phoneNumber": {
            "type": "string",
            "example": "00189001094",
            "description": "Phone number which has generated the event"
          }
        }
      }
    }
  }
}
object getSmtpTemplateOverview
{
  "type": "object",
  "required": [
    "createdAt",
    "htmlContent",
    "id",
    "isActive",
    "modifiedAt",
    "name",
    "replyTo",
    "sender",
    "subject",
    "tag",
    "testSent",
    "toField"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 4,
      "description": "ID of the template"
    },
    "tag": {
      "type": "string",
      "example": "sports",
      "description": "Tag of the template"
    },
    "name": {
      "type": "string",
      "example": "Order Confirmation - EN",
      "description": "Name of the template"
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "43",
          "description": "Sender id of the template"
        },
        "name": {
          "type": "string",
          "example": "Mary form MyShop",
          "description": "From email for the template"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "contact@myshop.fr",
          "description": "From email for the template"
        }
      }
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "replyto@domain.com",
      "description": "Email defined as the \"Reply to\" for the template"
    },
    "subject": {
      "type": "string",
      "example": "Thanks for your order !",
      "description": "Subject of the template"
    },
    "toField": {
      "type": "string",
      "example": "{FIRSTNAME} {LASTNAME}",
      "description": "Customisation of the \"to\" field for the template"
    },
    "isActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of template (true=active, false=inactive)"
    },
    "testSent": {
      "type": "boolean",
      "example": true,
      "description": "Status of test sending for the template (true=test email has been sent, false=test email has not been sent)"
    },
    "createdAt": {
      "type": "string",
      "example": "2017-05-01T12:30:00.000Z",
      "description": "Creation UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-12T12:30:00.000Z",
      "description": "Last modification UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "doiTemplate": {
      "type": "boolean",
      "example": false,
      "description": "It is true if template is a valid Double opt-in (DOI) template, otherwise it is false. This field will be available only in case of single template detail call."
    },
    "htmlContent": {
      "type": "string",
      "example": "Your order n°xxxxx has been confirmed. Thanks for your purchase.",
      "description": "HTML content of the template"
    }
  }
}
object getSmtpTemplates
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Count of transactional email templates"
    },
    "templates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getSmtpTemplateOverview"
      }
    }
  }
}
object getSsoToken
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "example": "ede520dxxxxxxxxxxxx76d631fba2",
      "description": "Session token, it will remain valid for 15 days."
    }
  }
}
object getStatsByBrowser
{
  "type": "object",
  "additionalProperties": {
    "$ref": "#/components/schemas/getDeviceBrowserStats"
  }
}
object getStatsByDevice
{
  "type": "object",
  "properties": {
    "mobile": {
      "type": "object",
      "description": "Statistics of the campaign on the basis of mobile devices",
      "additionalProperties": {
        "$ref": "#/components/schemas/getDeviceBrowserStats"
      }
    },
    "tablet": {
      "type": "object",
      "description": "Statistics of the campaign on the basis of tablet devices",
      "additionalProperties": {
        "$ref": "#/components/schemas/getDeviceBrowserStats"
      }
    },
    "desktop": {
      "type": "object",
      "description": "Statistics of the campaign on the basis of desktop devices",
      "additionalProperties": {
        "$ref": "#/components/schemas/getDeviceBrowserStats"
      }
    },
    "unknown": {
      "type": "object",
      "description": "Statistics of the campaign on the basis of unknown devices",
      "additionalProperties": {
        "$ref": "#/components/schemas/getDeviceBrowserStats"
      }
    }
  }
}
object getStatsByDomain
{
  "type": "object",
  "additionalProperties": {
    "$ref": "#/components/schemas/getCampaignStats"
  }
}
object getTransacAggregatedSmsReport
{
  "type": "object",
  "properties": {
    "range": {
      "type": "string",
      "example": "2016-09-08|2017-04-06",
      "description": "Time frame of the report"
    },
    "blocked": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Number of blocked contact for the timeframe"
    },
    "replied": {
      "type": "integer",
      "format": "int64",
      "example": 12,
      "description": "Number of answered SMS for the timeframe"
    },
    "accepted": {
      "type": "integer",
      "format": "int64",
      "example": 252,
      "description": "Number of accepted for the timeframe"
    },
    "rejected": {
      "type": "integer",
      "format": "int64",
      "example": 8,
      "description": "Number of rejected for the timeframe"
    },
    "requests": {
      "type": "integer",
      "format": "int64",
      "example": 263,
      "description": "Number of requests for the timeframe"
    },
    "delivered": {
      "type": "integer",
      "format": "int64",
      "example": 249,
      "description": "Number of delivered SMS for the timeframe"
    },
    "hardBounces": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Number of hardbounces for the timeframe"
    },
    "softBounces": {
      "type": "integer",
      "format": "int64",
      "example": 4,
      "description": "Number of softbounces for the timeframe"
    },
    "unsubscribed": {
      "type": "integer",
      "format": "int64",
      "example": 6,
      "description": "Number of unsubscription for the timeframe"
    }
  }
}
object getTransacBlockedContacts
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "Count of blocked or unsubscribed contact"
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "blockedAt",
          "email",
          "reason",
          "senderEmail"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "example": "john.smith@example.com",
            "description": "Email address of the blocked or unsubscribed contact"
          },
          "reason": {
            "type": "object",
            "example": "Admin blocked",
            "properties": {
              "code": {
                "enum": [
                  "unsubscribedViaMA",
                  "unsubscribedViaEmail",
                  "adminBlocked",
                  "unsubscribedViaApi",
                  "hardBounce",
                  "contactFlaggedAsSpam"
                ],
                "type": "string",
                "example": "AdminBlocked",
                "description": "Reason code for blocking / unsubscribing (This code is safe for comparison)"
              },
              "message": {
                "type": "string",
                "example": "Admin blocked",
                "description": "Reason for blocking / unsubscribing (This string is not safe for comparison)"
              }
            },
            "description": "Reason for blocking / unsubscribing"
          },
          "blockedAt": {
            "type": "string",
            "example": "2017-05-01T12:30:00.000Z",
            "description": "Date when the contact was blocked or unsubscribed on"
          },
          "senderEmail": {
            "type": "string",
            "format": "email",
            "example": "john.smith@example.com",
            "description": "Sender email address of the blocked or unsubscribed contact"
          }
        }
      }
    }
  }
}
object getTransacEmailContent
{
  "type": "object",
  "required": [
    "attachmentCount",
    "body",
    "date",
    "email",
    "events",
    "subject"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "<!DOCTYPE html> <html> <body> <h1>Greetings from the team</h1> <p>This is the actual html content sent</p> </body> </html>",
      "description": "Actual content of the transactional email that has been sent"
    },
    "date": {
      "type": "string",
      "example": "2017-03-12T12:30:00.000Z",
      "description": "Date on which transactional email was sent"
    },
    "email": {
      "type": "string",
      "format": "email",
      "example": "abc@example.com",
      "description": "Email address to which transactional email has been sent"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "time"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "delivered",
            "description": "Name of the event that occurred on the sent email"
          },
          "time": {
            "type": "string",
            "example": "2017-03-12T12:30:00.000Z",
            "description": "Time at which the event occurred"
          }
        }
      },
      "description": "Series of events which occurred on the transactional email"
    },
    "subject": {
      "type": "string",
      "example": "Summer Camp",
      "description": "Subject of the sent email"
    },
    "templateId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the template"
    },
    "attachmentCount": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Count of the attachments that were sent in the email"
    }
  }
}
object getTransacEmailsList
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "Total number of transactional emails available on your account according to the passed filter"
    },
    "transactionalEmails": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "email",
          "messageId",
          "subject",
          "uuid"
        ],
        "properties": {
          "date": {
            "type": "string",
            "example": "2017-03-12T12:30:00.000Z",
            "description": "Date on which transactional email was sent"
          },
          "from": {
            "type": "string",
            "format": "email",
            "example": "diana.doe@example.com",
            "description": "Email address of the sender from which the email was sent"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "tag1"
            },
            "description": "Tags used for your email"
          },
          "uuid": {
            "type": "string",
            "example": "5a78c-209ok98262910-s99a341",
            "description": "Unique id of the email sent to a particular contact"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "john.smith@example.com",
            "description": "Email address to which transactional email has been sent"
          },
          "subject": {
            "type": "string",
            "example": "Summer Camp",
            "description": "Subject of the sent email"
          },
          "messageId": {
            "type": "string",
            "example": "<201798300811.5700093@relay.domain.com>",
            "description": "Message Id of the sent email"
          },
          "templateId": {
            "type": "integer",
            "format": "int64",
            "example": 2,
            "description": "Id of the template"
          }
        }
      }
    }
  }
}
object getTransacSmsReport
{
  "type": "object",
  "properties": {
    "reports": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2017-03-17T00:00:00.000Z",
            "description": "Date for which statistics are retrieved"
          },
          "blocked": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Number of blocked contact for the date"
          },
          "replied": {
            "type": "integer",
            "format": "int64",
            "example": 2,
            "description": "Number of answered SMS for the date"
          },
          "accepted": {
            "type": "integer",
            "format": "int64",
            "example": 85,
            "description": "Number of accepted for the date"
          },
          "rejected": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of rejected for the date"
          },
          "requests": {
            "type": "integer",
            "format": "int64",
            "example": 87,
            "description": "Number of requests for the date"
          },
          "delivered": {
            "type": "integer",
            "format": "int64",
            "example": 85,
            "description": "Number of delivered SMS for the date"
          },
          "hardBounces": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of hardbounces for the date"
          },
          "softBounces": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of softbounces for the date"
          },
          "unsubscribed": {
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of unsubscription for the date"
          }
        }
      }
    }
  }
}
object getUserPermission
{
  "type": "object",
  "required": [
    "email",
    "status",
    "privileges"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "invitedUser@company.com",
      "description": "Email address of the user."
    },
    "status": {
      "type": "string",
      "example": "active",
      "description": "Status of the invited user."
    },
    "privileges": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "feature",
          "permissions"
        ],
        "properties": {
          "feature": {
            "type": "string",
            "example": "Email campaign"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Create / edit / delete"
            }
          }
        }
      },
      "description": "Granular feature permissions given to the user."
    }
  },
  "description": "Check user permission"
}
object getWebhook
{
  "type": "object",
  "required": [
    "createdAt",
    "description",
    "events",
    "id",
    "modifiedAt",
    "type",
    "url"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 654,
      "description": "ID of the webhook"
    },
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the webhook"
    },
    "auth": {
      "type": "object",
      "example": {
        "type": "bearer",
        "token": "test-auth-token1234"
      },
      "description": "Authentication header to be send with the webhook requests"
    },
    "type": {
      "enum": [
        "marketing",
        "transactional"
      ],
      "type": "string",
      "example": "marketing",
      "description": "Type of webhook (marketing or transactional)"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "opens,clicks",
        "description": "Events which will trigger the webhook when they occure"
      }
    },
    "batched": {
      "type": "boolean",
      "example": true,
      "description": "Batching configuration of the webhook, we send batched webhooks if its true"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "key": "cf-secret",
          "value": "test-header-value"
        },
        "description": "Headers send with the requests to the webhook"
      }
    },
    "createdAt": {
      "type": "string",
      "example": "2016-12-01T12:50:00.000Z",
      "description": "Creation UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-12T13:15:00.000Z",
      "description": "Last modification UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "description": {
      "type": "string",
      "example": "Webhook triggered on campaign openings",
      "description": "Description of the webhook"
    }
  }
}
object getWebhooks
{
  "type": "object",
  "required": [
    "webhooks"
  ],
  "properties": {
    "webhooks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/getWebhook"
      }
    }
  }
}
object getWhatsAppConfig
{
  "type": "object",
  "properties": {
    "sendingLimit": {
      "type": "string",
      "example": "TIER_1K",
      "description": "Sending limit Information of the WhatsApp API account"
    },
    "businessStatus": {
      "type": "string",
      "example": "verified",
      "description": "Verification status information of the Business account"
    },
    "phoneNumberQuality": {
      "enum": [
        "GREEN",
        "YELLOW",
        "RED"
      ],
      "type": "string",
      "example": "GREEN",
      "description": "Quality status of phone number associated with WhatsApp account. There are three quality ratings. example - **High (GREEN) , Medium (YELLOW) and Low(RED)**"
    },
    "phoneNumberNameStatus": {
      "enum": [
        "APPROVED",
        "PENDING",
        "REJECTED"
      ],
      "type": "string",
      "example": "APPROVED",
      "description": "Status of the name associated with WhatsApp Phone number"
    },
    "whatsappBusinessAccountId": {
      "type": "string",
      "example": 105569359072383,
      "description": "Id of the WhatsApp business account"
    },
    "whatsappBusinessAccountStatus": {
      "enum": [
        "APPROVED",
        "PENDING",
        "REJECTED"
      ],
      "type": "string",
      "example": "APPROVED",
      "description": "Status information related to WhatsApp API account"
    }
  }
}
object getWhatsappCampaignOverview
{
  "type": "object",
  "required": [
    "id",
    "campaignName",
    "campaignStatus",
    "senderNumber",
    "recipients",
    "createdAt",
    "template",
    "modifiedAt"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1672035851100690,
      "description": "ID of the WhatsApp Campaign"
    },
    "stats": {
      "$ref": "#/components/schemas/WhatsappCampStats"
    },
    "template": {
      "$ref": "#/components/schemas/WhatsappCampTemplate"
    },
    "createdAt": {
      "type": "string",
      "example": "2017-06-01T12:30:00.000Z",
      "description": "Creation UTC date-time of the WhatsApp campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "modifiedAt": {
      "type": "string",
      "example": "2017-05-01T12:30:00.000Z",
      "description": "UTC date-time of last modification of the WhatsApp campaign (YYYY-MM-DDTHH:mm:ss.SSSZ)"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T12:30:00.000Z",
      "description": "UTC date-time on which WhatsApp campaign is scheduled. Should be in YYYY-MM-DDTHH:mm:ss.SSSZ format"
    },
    "campaignName": {
      "type": "string",
      "example": "Test Campaign",
      "description": "Name of the WhatsApp Campaign"
    },
    "senderNumber": {
      "type": "string",
      "example": 9368207029,
      "description": "Sender of the WhatsApp Campaign"
    },
    "campaignStatus": {
      "enum": [
        "draft",
        "scheduled",
        "pending",
        "approved",
        "running",
        "suspended",
        "rejected",
        "sent"
      ],
      "type": "string",
      "example": "draft",
      "description": "Status of the WhatsApp Campaign"
    }
  }
}
object getWhatsappCampaigns
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 40,
      "description": "Number of WhatsApp campaigns retrieved"
    },
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "campaignName",
          "campaignStatus",
          "templateId",
          "scheduledAt",
          "createdAt",
          "modifiedAt"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 1672035851100690,
            "description": "ID of the WhatsApp Campaign"
          },
          "stats": {
            "$ref": "#/components/schemas/WhatsappCampStats"
          },
          "createdAt": {
            "type": "string",
            "example": "2017-06-01T12:30:00.000Z",
            "description": "Creation UTC date-time of the WhatsApp template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
          },
          "modifiedAt": {
            "type": "string",
            "example": "2017-05-01T12:30:00.000Z",
            "description": "UTC date-time of last modification of the WhatsApp template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
          },
          "templateId": {
            "type": "string",
            "example": 637660278078655,
            "description": "Id of the WhatsApp template"
          },
          "errorReason": {
            "type": "string",
            "description": "Error Reason associated with the WhatsApp campaign sending"
          },
          "scheduledAt": {
            "type": "string",
            "example": "2017-06-01T12:30:00.000Z",
            "description": "UTC date-time on which WhatsApp campaign is scheduled. Should be in YYYY-MM-DDTHH:mm:ss.SSSZ format"
          },
          "campaignName": {
            "type": "string",
            "example": "Test Campaign",
            "description": "Name of the WhatsApp Campaign"
          },
          "campaignStatus": {
            "enum": [
              "draft",
              "scheduled",
              "pending",
              "approved",
              "running",
              "suspended",
              "rejected",
              "sent"
            ],
            "type": "string",
            "example": "draft",
            "description": "Status of the WhatsApp Campaign"
          },
          "readPercentage": {
            "type": "number",
            "format": "float",
            "example": 28.57,
            "description": "Read percentage of the the WhatsApp campaign created"
          },
          "invalidatedContacts": {
            "type": "integer",
            "format": "int64",
            "example": 0,
            "description": "Count of invalidated contacts"
          }
        }
      }
    }
  }
}
object getWhatsappEventReport
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "contactNumber",
          "date",
          "messageId",
          "event",
          "senderNumber"
        ],
        "properties": {
          "body": {
            "type": "string",
            "example": "Hi! I am a reply",
            "description": "Text of the reply (will be there only in case of `reply` event with text)"
          },
          "date": {
            "type": "string",
            "example": "2017-03-12T12:30:00.000Z",
            "description": "UTC date-time on which the event has been generated"
          },
          "event": {
            "enum": [
              "sent",
              "delivered",
              "read",
              "error",
              "unsubscribe",
              "reply",
              "soft-bounce"
            ],
            "type": "string",
            "example": "delivered",
            "description": "Event which occurred"
          },
          "reason": {
            "type": "string",
            "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
            "description": "Reason for the event (will be there in case of `error` and `soft-bounce` events)"
          },
          "mediaUrl": {
            "type": "string",
            "format": "url",
            "example": "https://example.com/media.png",
            "description": "Url of the media reply (will be there only in case of `reply` event with media)"
          },
          "messageId": {
            "type": "string",
            "example": "23befbae-1505-47a8-bd27-e30ef739f32c",
            "description": "Message ID which generated the event"
          },
          "senderNumber": {
            "type": "string",
            "format": "mobile",
            "example": 919876543210,
            "description": "WhatsApp Number with country code. Example, 85264318721"
          },
          "contactNumber": {
            "type": "string",
            "format": "mobile",
            "example": 919876543210,
            "description": "WhatsApp Number with country code. Example, 85264318721"
          }
        }
      }
    }
  }
}
object getWhatsappTemplates
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "example": 24,
      "description": "Number of WhatsApp templates retrieved"
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "type",
          "language",
          "category",
          "createdAt",
          "modifiedAt"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 235,
            "description": "ID of the WhatsApp template"
          },
          "name": {
            "type": "string",
            "example": "Test template",
            "description": "Name of the WhatsApp template"
          },
          "status": {
            "type": "string",
            "example": "approved",
            "description": "Status of the WhatsApp template"
          },
          "category": {
            "type": "string",
            "example": "MARKETING",
            "description": "category of the template"
          },
          "language": {
            "type": "string",
            "example": "en",
            "description": "Language in which template exists"
          },
          "createdAt": {
            "type": "string",
            "example": "2017-06-01T12:30:00.000Z",
            "description": "Creation UTC date-time of the WhatsApp template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
          },
          "modifiedAt": {
            "type": "string",
            "example": "2017-05-01T12:30:00.000Z",
            "description": "UTC date-time of last modification of the WhatsApp template (YYYY-MM-DDTHH:mm:ss.SSSZ)"
          },
          "errorReason": {
            "type": "string",
            "example": "NONE",
            "description": "Error reason in the template creation"
          }
        }
      }
    }
  }
}
object inviteAdminUser
{
  "type": "object",
  "required": [
    "email",
    "all_features_access",
    "privileges"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "inviteuser@example.com",
      "description": "Email address for the organization"
    },
    "groupIds": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Group Id"
      },
      "example": [
        "2baxxxxxxxxxxxxxxxxxxxxxcaa",
        "65axxxxxxxxxxxxxxxxxxxxxc5a"
      ],
      "description": "Ids of Group"
    },
    "privileges": {
      "type": "array",
      "items": {
        "type": "object",
        "example": [
          {
            "feature": "my_plan",
            "permissions": [
              "all"
            ]
          },
          {
            "feature": "api",
            "permissions": [
              "none"
            ]
          }
        ],
        "properties": {
          "feature": {
            "enum": [
              "my_plan",
              "api",
              "user_management",
              "app_management"
            ],
            "type": "string",
            "example": "user_management",
            "description": "Feature name"
          },
          "permissions": {
            "type": "array",
            "items": {
              "enum": [
                "all",
                "none"
              ],
              "type": "string",
              "example": "'all', 'none'"
            },
            "description": "Permissions for a given feature"
          }
        },
        "description": "Privileges given to the user"
      }
    },
    "all_features_access": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "description": "All access to the features"
    }
  }
}
object inviteuser
{
  "type": "object",
  "required": [
    "email",
    "all_features_access",
    "privileges"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "inviteuser@example.com",
      "description": "Email address for the organization"
    },
    "privileges": {
      "type": "array",
      "items": {
        "type": "object",
        "example": [
          {
            "feature": "email_campaigns",
            "permissions": [
              "create_edit_delete",
              "send_schedule_suspend"
            ]
          },
          {
            "feature": "sms_campaigns",
            "permissions": [
              "create_edit_delete",
              "send_schedule_suspend"
            ]
          },
          {
            "feature": "facebook_ads",
            "permissions": [
              "create_edit_delete",
              "schedule_pause"
            ]
          }
        ],
        "properties": {
          "feature": {
            "enum": [
              "email_campaigns",
              "sms_campaigns",
              "contacts",
              "templates",
              "workflows",
              "facebook_ads",
              "landing_pages",
              "transactional_emails",
              "smtp_api",
              "user_management",
              "sales_platform",
              "phone",
              "conversations",
              "senders_domains_dedicated_ips",
              "push_notifications"
            ],
            "type": "string",
            "example": "email_campaigns",
            "description": "Feature name"
          },
          "permissions": {
            "type": "array",
            "items": {
              "enum": [
                "create_edit_delete",
                "send_schedule_suspend",
                "view",
                "import",
                "export",
                "list_and_attributes",
                "forms",
                "activate_deactivate",
                "activate_deactivate_pause",
                "settings",
                "schedule_pause",
                "all",
                "logs",
                "access",
                "assign",
                "configure",
                "manage_owned_deals_tasks_companies",
                "manage_others_deals_tasks_companies",
                "reports",
                "senders_management",
                "domains_management",
                "dedicated_ips_management",
                "send",
                "smtp",
                "api_keys",
                "authorized_ips",
                "none"
              ],
              "type": "string",
              "example": "'create_edit_delete', 'send_schedule_suspend'"
            },
            "description": "Permissions for a given feature"
          }
        },
        "description": "Privileges given to the user"
      }
    },
    "all_features_access": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "description": "All access to the features"
    }
  }
}
object inviteuserResponse
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "example": "OK",
      "description": "Status of the API operation."
    },
    "invoice_id": {
      "type": "string",
      "items": {
        "type": "string",
        "example": "TEST-ID"
      },
      "description": "Invoice id"
    }
  }
}
object manageIp
{
  "type": "object",
  "properties": {
    "ip": {
      "type": "string",
      "example": "123.65.8.22",
      "description": "Dedicated ID"
    }
  }
}
object masterDetailsResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "Unique identifier of the master account organization"
    },
    "email": {
      "type": "string",
      "description": "Email id of master account"
    },
    "planInfo": {
      "type": "object",
      "properties": {
        "price": {
          "type": "number",
          "description": "Plan amount"
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the feature"
              },
              "used": {
                "type": "integer",
                "format": "int64",
                "description": "Quantity consumed by master"
              },
              "quantity": {
                "type": "integer",
                "format": "int64",
                "description": "Quantity provided in the plan"
              },
              "remaining": {
                "type": "integer",
                "format": "int64",
                "description": "Quantity remaining in the plan"
              },
              "unitValue": {
                "type": "string",
                "description": "Unit value of the feature"
              },
              "usedOverages": {
                "type": "integer",
                "format": "int64",
                "description": "Quantity consumed by sub-organizations over the admin plan limit (only applicable on ENTv2)"
              },
              "quantityWithOverages": {
                "type": "integer",
                "format": "int64",
                "description": "Quantity with overages provided in the plan (only applicable on ENTv2)"
              }
            }
          },
          "description": "List of provided features in the plan"
        },
        "planPeriod": {
          "enum": [
            "month",
            "year"
          ],
          "type": "string",
          "description": "Plan period type"
        },
        "subAccounts": {
          "type": "integer",
          "description": "Number of sub-accounts"
        },
        "currencyCode": {
          "type": "string",
          "description": "Plan currency"
        },
        "nextBillingAt": {
          "type": "integer",
          "format": "int64",
          "description": "Timestamp of next billing date"
        }
      },
      "description": "Plan details"
    },
    "timezone": {
      "type": "string",
      "description": "Timezone of the master account organization"
    },
    "billingInfo": {
      "type": "object",
      "properties": {
        "name": {
          "type": "object",
          "properties": {
            "givenName": {
              "type": "string",
              "description": "First name for billing"
            },
            "familyName": {
              "type": "string",
              "description": "Last name for billing"
            }
          },
          "description": "Billing name of master account holder"
        },
        "email": {
          "type": "string",
          "description": "Billing email id of master account"
        },
        "address": {
          "type": "object",
          "properties": {
            "locality": {
              "type": "string",
              "description": "Locality"
            },
            "stateCode": {
              "type": "string",
              "description": "State code"
            },
            "postalCode": {
              "type": "string",
              "description": "Postal code"
            },
            "countryCode": {
              "type": "string",
              "description": "Country code"
            },
            "streetAddress": {
              "type": "string",
              "description": "Street address"
            }
          },
          "description": "Billing address of master account"
        },
        "companyName": {
          "type": "string",
          "description": "Company name of master account"
        }
      },
      "description": "Billing details of the master account organization"
    },
    "companyName": {
      "type": "string",
      "description": "Company name of master account organization"
    },
    "currencyCode": {
      "type": "string",
      "description": "Currency code of the master account organization"
    }
  }
}
object notification
{
  "type": "object",
  "required": [
    "channel",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "Please pay for your yoga class.",
      "description": "Use this field if you want to give more context to your contact about the payment request.\n"
    },
    "channel": {
      "enum": [
        "email"
      ],
      "type": "string",
      "example": "email",
      "description": "Channel used to send the notifications.\n"
    }
  },
  "description": "Optional. Use this object if you want to let Brevo send an email to the contact, with the payment request URL. If empty, no notifications (message and reminders) will be sent.\n"
}
object order
{
  "type": "object",
  "required": [
    "id",
    "createdAt",
    "updatedAt",
    "status",
    "amount",
    "products"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "14",
      "description": "Unique ID of the order."
    },
    "email": {
      "type": "string",
      "example": "example@brevo.com",
      "description": "Email of the contact, Mandatory if \"phone\" field is not passed in \"billing\" parameter."
    },
    "amount": {
      "type": "number",
      "example": 308.42,
      "description": "Total amount of the order, including all shipping expenses, tax and the price of items."
    },
    "status": {
      "type": "string",
      "example": "completed",
      "description": "State of the order."
    },
    "billing": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "example": "Basel",
          "description": "Exact city of the address."
        },
        "phone": {
          "type": "string",
          "example": "01559 032133",
          "description": "Phone number to contact for further details about the order, Mandatory if \"email\" field is not passed."
        },
        "region": {
          "type": "string",
          "example": "Northwestern Switzerland",
          "description": "Exact region (state/province) for delivery and billing."
        },
        "address": {
          "type": "string",
          "example": "15 Somewhere Road, Brynmenyn",
          "description": "Full billing address."
        },
        "postCode": {
          "type": "string",
          "example": "4052",
          "description": "Postcode for delivery and billing."
        },
        "countryCode": {
          "type": "string",
          "example": "CA",
          "description": "Billing country 2-letter ISO code."
        },
        "paymentMethod": {
          "type": "string",
          "example": "PayPal",
          "description": "How the visitor will pay for the item(s), e.g. paypal, check, etc."
        }
      },
      "description": "Billing details of an order."
    },
    "coupons": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "EASTER15OFF"
      ],
      "description": "Coupons applied to the order. Stored case insensitive."
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "productId",
          "quantity",
          "price"
        ],
        "properties": {
          "price": {
            "type": "number",
            "example": 99.99,
            "description": "The price of a unit of product"
          },
          "quantity": {
            "type": "number",
            "example": 10,
            "description": "How many pieces of the product the visitor has added to the cart."
          },
          "productId": {
            "type": "string",
            "example": "P1",
            "description": "ID of the product."
          },
          "variantId": {
            "type": "string",
            "example": "P100",
            "description": "Product ID of the red color shirts."
          }
        },
        "description": "Details for the Products in an order."
      }
    },
    "createdAt": {
      "type": "string",
      "example": "2021-07-29T20:59:23.383Z",
      "description": "Event occurrence UTC date-time (YYYY-MM-DDTHH:mm:ssZ), when order is actually created."
    },
    "updatedAt": {
      "type": "string",
      "example": "2021-07-30T10:59:23.383Z",
      "description": "Event updated UTC date-time (YYYY-MM-DDTHH:mm:ssZ), when the status of the order is actually changed/updated."
    }
  }
}
object orderBatch
{
  "type": "object",
  "required": [
    "orders"
  ],
  "properties": {
    "orders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/order"
      },
      "description": "array of order objects"
    },
    "notifyUrl": {
      "type": "string",
      "example": "https://en.wikipedia.org/wiki/Webhook",
      "description": "Notify Url provided by client to get the status of batch request"
    },
    "historical": {
      "type": "boolean",
      "default": true,
      "example": true,
      "description": "Defines wether you want your orders to be considered as live data or as historical data (import of past data, synchronising data). True: orders will not trigger any automation workflows. False: orders will trigger workflows as usual."
    }
  }
}
object otp
{
  "type": "object",
  "required": [
    "otp"
  ],
  "properties": {
    "otp": {
      "type": "integer",
      "example": 123456,
      "description": "6 digit OTP received on email"
    }
  }
}
object postContactInfo
{
  "type": "object",
  "required": [
    "contacts"
  ],
  "properties": {
    "contacts": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64",
          "example": 27,
          "description": "Displays the count of total number of contacts removed from list when user opts for \"all\" option."
        },
        "failure": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string",
                "format": "email",
                "example": "jeff32@example.com, jim56@example.com",
                "description": "Email addresses which can not be imported/removed, could be already in/out list and/or doesn't exist"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64",
                "example": 5,
                "description": "IDs which can not be imported/removed, could be already in/out list and/or doesn't exist"
              }
            }
          ]
        },
        "success": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string",
                "format": "email",
                "description": "Email addresses which are successfully imported/removed"
              },
              "example": "jeff32@example.com, jim56@example.com"
            },
            {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64",
                "description": "IDs which are successfully imported/removed"
              },
              "example": "1, 2"
            }
          ]
        },
        "processId": {
          "type": "integer",
          "format": "int64",
          "example": 78,
          "description": "Id of the process created to remove contacts from list when user opts for \"all\" option."
        }
      }
    }
  }
}
object postSendFailed
{
  "type": "object",
  "required": [
    "code",
    "message"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "invalid_parameter",
      "description": "Response code"
    },
    "message": {
      "type": "string",
      "example": "The email could not be sent to all recipients",
      "description": "Response message"
    },
    "unexistingEmails": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "matthew.dow@example.com, elisa.carrely@example.com",
        "description": "Email addresses you tried to sent an email to, but not existing in your contacts"
      }
    },
    "blackListedEmails": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "jeff.dean@example.com, jim.sue@example.com",
        "description": "Email addresses which are blacklisted. ONLY FOR email-campign's sendTest OR smtp-template's sendTest api's."
      }
    },
    "withoutListEmails": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "jeff.dean@example.com, jim.sue@example.com",
        "description": "Email addresses you sent an email to, without a contact list"
      }
    }
  }
}
object postSendSmsTestFailed
{
  "type": "object",
  "required": [
    "code",
    "message"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "invalid_parameter",
      "description": "Response code"
    },
    "message": {
      "type": "string",
      "example": "The SMS could not be sent to all recipients",
      "description": "Response message"
    },
    "unexistingSms": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "337699086644@mailin.com, 41778899954@mailin.com",
        "description": "Email addresses you tried to sent a SMS to, but not existing in your contacts"
      }
    },
    "withoutListSms": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "3542388988@mailin.com, 10976444477@mailin.com",
        "description": "Email addresses you sent a SMS to, without a contact list"
      }
    }
  }
}
object putRevokeUserPermission
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "invitedUser@company.com",
      "description": "Email address of the user."
    }
  },
  "description": "Revoke user permission"
}
object putRevokeUserPermissionResponse
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "example": "OK",
      "description": "Status of the API operation."
    },
    "credit_notes": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "TEST-123"
      },
      "description": "Credit note"
    }
  }
}
object putresendcancelinvitation
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "invitedUser@company.com",
      "description": "Email address of the user."
    }
  },
  "description": "Revoke user permission"
}
object putresendcancelinvitationResponse
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "example": "OK",
      "description": "Status of the API operation."
    },
    "credit_notes": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "TEST-123"
      },
      "description": "Credit note"
    }
  }
}
object remainingCreditModel
{
  "type": "object",
  "required": [
    "child",
    "reseller"
  ],
  "properties": {
    "child": {
      "type": "object",
      "required": [
        "email",
        "sms"
      ],
      "properties": {
        "sms": {
          "type": "number",
          "format": "double",
          "example": 500,
          "description": "SMS Credits remaining for child account"
        },
        "email": {
          "type": "number",
          "format": "double",
          "example": 2000,
          "description": "Email Credits remaining for child account"
        }
      },
      "description": "Credits remaining for child account"
    },
    "reseller": {
      "type": "object",
      "required": [
        "email",
        "sms"
      ],
      "properties": {
        "sms": {
          "type": "number",
          "format": "double",
          "example": 12900,
          "description": "SMS Credits remaining for reseller account"
        },
        "email": {
          "type": "number",
          "format": "double",
          "example": 2000000,
          "description": "Email Credits remaining for reseller account"
        }
      }
    }
  }
}
object removeContactFromListByAll
{
  "type": "object",
  "properties": {
    "all": {
      "type": "boolean",
      "example": true,
      "description": "**Required if 'emails' and 'ids' are empty.** Remove all existing contacts from a list. A process will be created in this scenario. You can fetch the process details to know about the progress\n"
    }
  }
}
object removeContactFromListByEmails
{
  "type": "object",
  "properties": {
    "emails": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "john.smith@contact.com",
        "description": "Email to remove from a list"
      },
      "maxItems": 150,
      "minItems": 1,
      "description": "**Required if 'all' is false and 'ids' is empty.** Emails to remove from a list. You can pass a **maximum of 150 emails** for removal in one request.\n"
    }
  }
}
object removeContactFromListByIDs
{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 10,
        "description": "ID to remove from a list"
      },
      "maxItems": 150,
      "minItems": 1,
      "description": "**Required if 'all' is false and 'emails' is empty.** IDs to remove from a list. You can pass a **maximum of 150 IDs** for removal in one request.\n"
    }
  }
}
object removeCredits
{
  "type": "object",
  "properties": {
    "sms": {
      "type": "integer",
      "format": "int64",
      "example": 300,
      "description": "**Required if email credits are empty.** SMS credits to be removed from the child account\n"
    },
    "email": {
      "type": "integer",
      "format": "int64",
      "example": 500,
      "description": "**Required if sms credits are empty.** Email credits to be removed from the child account\n"
    }
  }
}
object requestContactExport
{
  "type": "object",
  "required": [
    "customContactFilter"
  ],
  "properties": {
    "notifyUrl": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "Webhook that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479"
    },
    "exportAttributes": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "NAME"
      },
      "description": "List of all the attributes that you want to export. **These attributes must be present in your contact database.** For example:\n**['fname', 'lname', 'email']**\n"
    },
    "customContactFilter": {
      "type": "object",
      "properties": {
        "listId": {
          "type": "integer",
          "format": "int64",
          "example": 2,
          "description": "**Mandatory if actionForContacts is passed, ignored otherwise.** Id of the list for which the corresponding action shall be applied in the filter.\n"
        },
        "smsCampaignId": {
          "type": "integer",
          "format": "int64",
          "example": 12,
          "description": "Considered only if **actionForSmsCampaigns** is passed, ignored otherwise. The id of sms campaign for which the corresponding action shall be applied in the filter.\n"
        },
        "emailCampaignId": {
          "type": "integer",
          "format": "int64",
          "example": 12,
          "description": "Considered only if **actionForEmailCampaigns** is passed, ignored otherwise. **Mandatory if action is one of the following - openers, nonOpeners, clickers, nonClickers, unsubscribed.**\nThe id of the email campaign for which the corresponding action shall be applied in the filter.\n"
        },
        "actionForContacts": {
          "enum": [
            "allContacts",
            "subscribed",
            "unsubscribed",
            "unsubscribedPerList"
          ],
          "type": "string",
          "description": "**Mandatory if neither actionForEmailCampaigns nor actionForSmsCampaigns is passed.** This will export the contacts on the basis of provided action applied on contacts as per the list id.\n* **allContacts** - Fetch the list of all contacts for a particular list.\n* **subscribed & unsubscribed** - Fetch the list of subscribed / unsubscribed (blacklisted via any means) contacts for a particular list.\n* **unsubscribedPerList** - Fetch the list of contacts that are unsubscribed from a particular list only.\n"
        },
        "actionForSmsCampaigns": {
          "enum": [
            "hardBounces",
            "softBounces",
            "unsubscribed"
          ],
          "type": "string",
          "description": "**Mandatory if neither actionForContacts nor actionForEmailCampaigns is passed.** This will export the contacts on the basis of provided action applied on sms campaigns.\n* **unsubscribed** - Fetch the list of all unsubscribed (blacklisted via any means) contacts for all / particular sms campaigns.\n* **hardBounces & softBounces** - Fetch the list of hard bounces / soft bounces for all / particular sms campaigns.\n"
        },
        "actionForEmailCampaigns": {
          "enum": [
            "openers",
            "nonOpeners",
            "clickers",
            "nonClickers",
            "unsubscribed",
            "hardBounces",
            "softBounces"
          ],
          "type": "string",
          "description": "**Mandatory if neither actionForContacts nor actionForSmsCampaigns is passed.** This will export the contacts on the basis of provided action applied on email campaigns.\n* **openers & nonOpeners** - emailCampaignId is mandatory. Fetch the list of readers / non-readers for a particular email campaign.\n* **clickers & nonClickers** - emailCampaignId is mandatory. Fetch the list of clickers / non-clickers for a particular email campaign.\n* **unsubscribed** - emailCampaignId is mandatory. Fetch the list of all unsubscribed (blacklisted via any means) contacts for a particular email campaign.\n* **hardBounces & softBounces** - emailCampaignId is optional. Fetch the list of hard bounces / soft bounces for a particular / all email campaign(s).\n"
        }
      },
      "description": "Set the filter for the contacts to be exported.\n"
    }
  }
}
object requestContactImport
{
  "type": "object",
  "properties": {
    "fileUrl": {
      "type": "string",
      "format": "url",
      "example": "https://importfile.domain.com",
      "description": "**Mandatory if fileBody and jsonBody is not defined.** URL of the file to be imported (**no local file**). Possible file formats:\n#### .txt, .csv, .json\n"
    },
    "listIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 76,
        "description": "List Id in which the contacts shall be imported"
      },
      "description": "**Mandatory if newList is not defined.** Ids of the lists in which the contacts shall be imported. For example, **[2, 4, 7]**.\n"
    },
    "newList": {
      "type": "object",
      "properties": {
        "folderId": {
          "type": "integer",
          "format": "int64",
          "example": 2,
          "description": "Id of the folder where this new list shall be created. **Mandatory if listName is not empty**\n"
        },
        "listName": {
          "type": "string",
          "example": "ContactImport - 2017-05",
          "description": "List with listName will be created first and users will be imported in it. **Mandatory if listIds is empty**.\n"
        }
      },
      "description": "To create a new list and import the contacts into it, pass the listName and an optional folderId."
    },
    "fileBody": {
      "type": "string",
      "example": "NAME;SURNAME;EMAIL\nSmith;John;john.smith@example.com\nRoger;Ellie;ellie36@example.com",
      "description": "**Mandatory if fileUrl and jsonBody is not defined.** CSV content to be imported. Use semicolon to separate multiple attributes. **Maximum allowed file body size is 10MB** . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of file body size while parsing. Please use fileUrl instead to import bigger files.\n"
    },
    "jsonBody": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "email": "ndicky0@ocn.ne.jp",
          "attributes": {
            "SMS": "33689965433",
            "FNAME": "Dicky",
            "LNAME": "Noemi",
            "COUNTRY": "DE",
            "BIRTHDAY": "11/02/1989",
            "WHATSAPP": "33689965433",
            "PREFERED_COLOR": "BLACK",
            "LANDLINE_NUMBER": "33689965433"
          }
        },
        "properties": {
          "email": {
            "type": "string"
          },
          "attributes": {
            "type": "object",
            "description": "List of attributes to be imported",
            "additionalProperties": true
          }
        }
      },
      "description": "**Mandatory if fileUrl and fileBody is not defined.** JSON content to be imported. **Maximum allowed json body size is 10MB** . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of json body size while parsing. Please use fileUrl instead to import bigger files.\n"
    },
    "notifyUrl": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL that will be called once the import process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479"
    },
    "smsBlacklist": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "To blacklist all the contacts for sms"
    },
    "emailBlacklist": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "To blacklist all the contacts for email"
    },
    "disableNotification": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "To disable email notification"
    },
    "updateExistingContacts": {
      "type": "boolean",
      "default": true,
      "example": true,
      "description": "To facilitate the choice to update the existing contacts"
    },
    "emptyContactsAttributes": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "To facilitate the choice to erase any attribute of the existing contacts with empty value. emptyContactsAttributes = true means the empty fields in your import will erase any attribute that currently contain data in Brevo, & emptyContactsAttributes = false means the empty fields will not affect your existing data ( **only available if `updateExistingContacts` set to true **)\n"
    }
  }
}
object requestSmsRecipientExport
{
  "type": "object",
  "required": [
    "recipientsType"
  ],
  "properties": {
    "notifyURL": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479"
    },
    "recipientsType": {
      "enum": [
        "all",
        "delivered",
        "answered",
        "softBounces",
        "hardBounces",
        "unsubscribed"
      ],
      "type": "string",
      "example": "answered",
      "description": "Filter the recipients based on how they interacted with the campaign"
    }
  }
}
object scheduleSmtpEmail
{
  "type": "object",
  "properties": {
    "batchId": {
      "type": "string",
      "example": "5c6cfa04-eed9-42c2-8b5c-6d470d978e9d",
      "description": "Batch ID of the batch transactional email scheduled"
    },
    "messageId": {
      "type": "string",
      "example": "<201798300811.5787683@relay.domain.com>",
      "description": "Message ID of the transactional email scheduled"
    },
    "messageIds": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "version wise message ID's of the transactional emails scheduled"
      }
    }
  }
}
object sendReport
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "object",
      "required": [
        "body",
        "to"
      ],
      "properties": {
        "to": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "email",
            "example": "jim.suehan@example.com",
            "description": "Email address of the recipient"
          },
          "description": "Email addresses of the recipients"
        },
        "body": {
          "type": "string",
          "example": "Please find attached the report of our last email campaign.",
          "description": "Custom text message to be presented in the report email."
        }
      },
      "description": "Custom attributes for the report email."
    },
    "language": {
      "enum": [
        "fr",
        "es",
        "pt",
        "it",
        "de",
        "en"
      ],
      "type": "string",
      "default": "fr",
      "example": "en",
      "description": "Language of email content for campaign report sending."
    }
  }
}
object sendSms
{
  "type": "object",
  "required": [
    "messageId",
    "reference"
  ],
  "properties": {
    "smsCount": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Count of SMS's to send multiple text messages"
    },
    "messageId": {
      "type": "integer",
      "format": "int64",
      "example": 1511882900176220
    },
    "reference": {
      "type": "string",
      "example": "ab1cde2fgh3i4jklmno"
    },
    "usedCredits": {
      "type": "number",
      "format": "float",
      "example": 0.7,
      "description": "SMS credits used per text message"
    },
    "remainingCredits": {
      "type": "number",
      "format": "float",
      "example": 82.85,
      "description": "Remaining SMS credits of the user"
    }
  }
}
object sendSmtpEmail
{
  "type": "object",
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Ann",
            "description": "Name of the recipient in cc. **Maximum allowed characters are 70**.\n"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "ann6533@example.com",
            "description": "Email address of the recipient in cc"
          }
        }
      },
      "description": "List of email addresses and names (_optional_) of the recipients in cc\n"
    },
    "to": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Jimmy",
            "description": "Name of the recipient. **Maximum allowed characters are 70**.\n"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "jimmy98@example.com",
            "description": "Email address of the recipient"
          }
        }
      },
      "description": "**Mandatory if messageVersions are not passed, ignored if messageVersions are passed**\nList of email addresses and names (_optional_) of the recipients. For example,\n**[{\"name\":\"Jimmy\", \"email\":\"jimmy98@example.com\"}, {\"name\":\"Joe\", \"email\":\"joe@example.com\"}]**\n"
    },
    "bcc": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Helen",
            "description": "Name of the recipient in bcc. **Maximum allowed characters are 70**.\n"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "helen9766@example.com",
            "description": "Email address of the recipient in bcc"
          }
        }
      },
      "description": "List of email addresses and names (_optional_) of the recipients in bcc\n"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "tag1"
      },
      "description": "Tag your emails to find them more easily"
    },
    "params": {
      "type": "object",
      "example": {
        "FNAME": "Joe",
        "LNAME": "Doe"
      },
      "description": "Pass the set of attributes to customize the template. For example, **{\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}**. It's **considered only if template is in New Template Language format**.\n",
      "additionalProperties": {}
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 2,
          "description": "Id of the sender from which the emails will be sent. In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email). Mandatory if email is not passed."
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "description: Name of the sender from which the emails will be sent. **Maximum allowed characters are 70**. Applicable only when email is passed.\n"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "no-reply@myshop.com",
          "description": "Email of the sender from which the emails will be sent. Mandatory if sender id is not passed."
        }
      },
      "description": "**Mandatory if `templateId` is not passed**. Pass name (_optional_) and email or id of sender from which emails will be sent. **`name` will be ignored if passed along with sender `id`**. For example,\n**{\"name\":\"Mary from MyShop\", \"email\":\"no-reply@myshop.com\"}**\n**{\"id\":2}**\n"
    },
    "batchId": {
      "type": "string",
      "example": "5c6cfa04-eed9-42c2-8b5c-6d470d978e9d",
      "description": "Valid UUIDv4 batch id to identify the scheduled batches transactional email. If not passed we will create a valid UUIDv4 batch id at our end."
    },
    "headers": {
      "type": "object",
      "example": {
        "sender.ip": "1.2.3.4",
        "idempotencyKey": "abc-123",
        "X-Mailin-custom": "some_custom_header"
      },
      "description": "Pass the set of custom headers (_not the standard headers_) that shall be sent along the mail headers in the original email. **'sender.ip'** header can be set (**only for dedicated ip users**) to mention the IP to be used for sending transactional emails. Headers are allowed in `This-Case-Only` (i.e. words separated by hyphen with first letter of each word in capital letter), they will be converted to such case styling if not in this format in the request payload. For example,\n**{\"sender.ip\":\"1.2.3.4\", \"X-Mailin-custom\":\"some_custom_header\", \"idempotencyKey\":\"abc-123\"}**.\n",
      "additionalProperties": {}
    },
    "replyTo": {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Ann",
          "description": "Name in reply to. **Maximum allowed characters are 70**.\n"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "ann6533@example.com",
          "description": "Email address in reply to"
        }
      },
      "description": "Email (**required**), along with name (_optional_), on which transactional mail recipients will be able to reply back. For example,\n**{\"email\":\"ann6533@example.com\", \"name\":\"Ann\"}**\n"
    },
    "subject": {
      "type": "string",
      "example": "Login Email confirmation",
      "description": "Subject of the message. **Mandatory if 'templateId' is not passed**\n"
    },
    "attachment": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "url",
            "example": "https://attachment.domain.com/myAttachmentFromUrl.jpg",
            "description": "Absolute url of the attachment (**no local file**).\n"
          },
          "name": {
            "type": "string",
            "example": "myAttachment.png",
            "description": "**Required if content is passed**. Name of the attachment\n"
          },
          "content": {
            "type": "string",
            "format": "byte",
            "example": "b3JkZXIucGRm",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "description": "Base64 encoded chunk data of the attachment generated on the fly"
          }
        }
      },
      "description": "Pass the _absolute URL_ (**no local file**) or the _base64 content_ of the attachment along with the attachment name. **Mandatory if attachment content is passed**. For example,\n**[{\"url\":\"https://attachment.domain.com/myAttachmentFromUrl.jpg\", \"name\":\"myAttachmentFromUrl.jpg\"}, {\"content\":\"base64 example content\", \"name\":\"myAttachmentFromBase64.jpg\"}]**.\nAllowed extensions for attachment file:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub, eps, odt, mp3, m4a, m4v, wma, ogg, flac, wav, aif, aifc, aiff, mp4, mov, avi, mkv, mpeg, mpg, wmv, pkpass and xlsm.\nIf `templateId` is passed and is in New Template Language format then both attachment url and content are accepted. If template is in Old template Language format, then `attachment` is ignored\n"
    },
    "templateId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the template."
    },
    "htmlContent": {
      "type": "string",
      "example": "<!DOCTYPE html> <html> <body> <h1>Confirm you email</h1> <p>Please confirm your email address by clicking on the link below</p> </body> </html>",
      "description": "HTML body of the message. **Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed**\n"
    },
    "scheduledAt": {
      "type": "string",
      "format": "date-time",
      "example": "2022-04-05T12:30:00+02:00",
      "description": "UTC date-time on which the email has to schedule (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for scheduling. There can be an expected delay of +5 minutes in scheduled email delivery. **Please note this feature is currently a public beta**."
    },
    "textContent": {
      "type": "string",
      "example": "Please confirm your email address by clicking on the link https://text.domain.com",
      "description": "Plain Text body of the message. **Ignored if 'templateId' is passed**\n"
    },
    "messageVersions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "to"
        ],
        "properties": {
          "cc": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Ann",
                  "description": "Name of the recipient in cc. **Maximum allowed characters are 70**.\n"
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "example": "ann6533@example.com",
                  "description": "Email address of the recipient in cc"
                }
              }
            },
            "description": "List of email addresses and names (_optional_) of the recipients in cc\n"
          },
          "to": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Jimmy",
                  "description": "Name of the recipient. **Maximum allowed characters are 70**.\n"
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "example": "jimmy98@example.com",
                  "description": "Email address of the recipient"
                }
              }
            },
            "description": "List of email addresses and names (_optional_) of the recipients. For example,\n**[{\"name\":\"Jimmy\", \"email\":\"jimmy98@example.com\"}, {\"name\":\"Joe\", \"email\":\"joe@example.com\"}]**\n"
          },
          "bcc": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Helen",
                  "description": "Name of the recipient in bcc. **Maximum allowed characters are 70**.\n"
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "example": "helen9766@example.com",
                  "description": "Email address of the recipient in bcc"
                }
              }
            },
            "description": "List of email addresses and names (_optional_) of the recipients in bcc\n"
          },
          "params": {
            "type": "object",
            "example": {
              "FNAME": "Joe",
              "LNAME": "Doe"
            },
            "description": "Pass the set of attributes to customize the template. For example, **{\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}**. It's **considered only if template is in New Template Language format**.\n",
            "additionalProperties": {}
          },
          "replyTo": {
            "type": "object",
            "required": [
              "email"
            ],
            "properties": {
              "name": {
                "type": "string",
                "example": "Ann",
                "description": "Name in reply to. **Maximum allowed characters are 70**.\n"
              },
              "email": {
                "type": "string",
                "format": "email",
                "example": "ann6533@example.com",
                "description": "Email address in reply to"
              }
            },
            "description": "Email (**required**), along with name (_optional_), on which transactional mail recipients will be able to reply back. For example,\n**{\"email\":\"ann6533@example.com\", \"name\":\"Ann\"}**\n"
          },
          "subject": {
            "type": "string",
            "example": "Login Email confirmation",
            "description": "Custom subject specific to message version\n"
          },
          "htmlContent": {
            "type": "string",
            "example": "<!DOCTYPE html> <html> <body> <h1>Confirm you email</h1> <p>Please confirm your email address by clicking on the link below</p> </body> </html>",
            "description": "HTML body of the message. **Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed**\n"
          },
          "textContent": {
            "type": "string",
            "example": "Please confirm your email address by clicking on the link https://text.domain.com",
            "description": "Plain Text body of the message. **Ignored if 'templateId' is passed**\n"
          }
        }
      },
      "description": "You can customize and send out multiple versions of a mail. **templateId** can be customized only if global parameter contains templateId. **htmlContent and textContent** can be customized only if any of the two, htmlContent or textContent, is present in global parameters. Some global parameters such as **to(mandatory), bcc, cc, replyTo, subject** can also be customized specific to each version.\nTotal number of recipients in one API request must not exceed 2000. However, you can still pass upto 99 recipients maximum in one message version.\nThe size of individual params in all the messageVersions shall not exceed **100 KB** limit and that of cumulative params shall not exceed **1000 KB**.\nYou can follow this **step-by-step guide** on how to use **messageVersions** to batch send emails - **https://developers.brevo.com/docs/batch-send-transactional-emails**\n"
    }
  }
}
object sendTestEmail
{
  "type": "object",
  "properties": {
    "emailTo": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email",
        "example": "helen.jurger@example.com",
        "description": "Email addres of the recipient"
      },
      "description": "List of the email addresses of the recipients whom you wish to send the test mail.\n_If left empty, the test mail will be sent to your entire test list. You can not send more than 50 test emails per day_.\n"
    }
  }
}
object sendTestSms
{
  "type": "object",
  "properties": {
    "phoneNumber": {
      "type": "string",
      "example": "33689965433",
      "description": "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**\n"
    }
  }
}
object sendTransacSms
{
  "type": "object",
  "required": [
    "content",
    "recipient",
    "sender"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "example": "accountValidation",
      "description": "Tag of the message"
    },
    "type": {
      "enum": [
        "transactional",
        "marketing"
      ],
      "type": "string",
      "default": "transactional",
      "example": "marketing",
      "description": "Type of the SMS. Marketing SMS messages are those sent typically with marketing content. Transactional SMS messages are sent to individuals and are triggered in response to some action, such as a sign-up, purchase, etc."
    },
    "sender": {
      "type": "string",
      "example": "MyShop",
      "maxLength": 15,
      "description": "Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**\n"
    },
    "webUrl": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "Webhook to call for each event triggered by the message (delivered etc.)"
    },
    "content": {
      "type": "string",
      "example": "Enter this code:CCJJG8 to validate your account",
      "description": "Content of the message. If more than **160 characters** long, will be sent as multiple text messages\n"
    },
    "recipient": {
      "type": "string",
      "example": "33689965433",
      "description": "Mobile number to send SMS with the country code"
    },
    "unicodeEnabled": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Format of the message. It indicates whether the content should be treated as unicode or not.\n"
    },
    "organisationPrefix": {
      "type": "string",
      "example": "MyCompany",
      "description": "A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**"
    }
  }
}
object sendWhatsappMessageTemplate
{
  "type": "object",
  "required": [
    "senderNumber",
    "templateId",
    "contactNumbers"
  ],
  "properties": {
    "params": {
      "type": "object",
      "example": {
        "FNAME": "Joe",
        "LNAME": "Doe"
      },
      "description": "Pass the set of attributes to customize the template. For example, {\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}."
    },
    "templateId": {
      "type": "integer",
      "example": 123,
      "description": "ID of the template to send"
    },
    "senderNumber": {
      "type": "string",
      "format": "mobile",
      "example": 919876543210,
      "description": "WhatsApp Number with country code. Example, 85264318721"
    },
    "contactNumbers": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "mobile",
        "example": 919876543210,
        "description": "WhatsApp Number with country code. Example, 85264318721"
      },
      "description": "List of phone numbers of the contacts"
    }
  }
}
object sendWhatsappMessageText
{
  "type": "object",
  "required": [
    "senderNumber",
    "contactNumbers",
    "authType",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "Hi! There i am a message",
      "description": "Text to be sent as message body (will be overridden if templateId is passed in the same request)"
    },
    "senderNumber": {
      "type": "string",
      "format": "mobile",
      "example": 919876543210,
      "description": "WhatsApp Number with country code. Example, 85264318721"
    },
    "contactNumbers": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "mobile",
        "example": 919876543210,
        "description": "WhatsApp Number with country code. Example, 85264318721"
      },
      "description": "List of phone numbers of the contacts"
    }
  }
}
object subAccountAppsToggleRequest
{
  "type": "object",
  "example": {
    "meetings": true,
    "web-push": false,
    "whatsapp": true,
    "landing-pages": true,
    "sms-campaigns": false
  },
  "properties": {
    "crm": {
      "type": "boolean",
      "description": "Set this field to enable or disable Sales CRM on the sub-account"
    },
    "inbox": {
      "type": "boolean",
      "description": "Set this field to enable or disable Inbox on the sub-account / Not applicable on ENTv2"
    },
    "meetings": {
      "type": "boolean",
      "description": "Set this field to enable or disable Meetings on the sub-account"
    },
    "web-push": {
      "type": "boolean",
      "description": "Set this field to enable or disable Web Push on the sub-account"
    },
    "whatsapp": {
      "type": "boolean",
      "description": "Set this field to enable or disable Whatsapp campaigns on the sub-account"
    },
    "automation": {
      "type": "boolean",
      "description": "Set this field to enable or disable Automation on the sub-account"
    },
    "facebook-ads": {
      "type": "boolean",
      "description": "Set this field to enable or disable Facebook ads on the sub-account"
    },
    "conversations": {
      "type": "boolean",
      "description": "Set this field to enable or disable Conversations on the sub-account"
    },
    "landing-pages": {
      "type": "boolean",
      "description": "Set this field to enable or disable Landing pages on the sub-account"
    },
    "sms-campaigns": {
      "type": "boolean",
      "description": "Set this field to enable or disable SMS Marketing on the sub-account"
    },
    "email-campaigns": {
      "type": "boolean",
      "description": "Set this field to enable or disable Email Campaigns on the sub-account"
    },
    "transactional-sms": {
      "type": "boolean",
      "description": "Set this field to enable or disable Transactional SMS on the sub-account"
    },
    "transactional-emails": {
      "type": "boolean",
      "description": "Set this field to enable or disable Transactional Email on the sub-account"
    }
  },
  "description": "List of enable/disable applications on the sub-account"
}
object subAccountDetailsResponse
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the sub-account user"
    },
    "email": {
      "type": "string",
      "description": "Email id of the sub-account organization"
    },
    "planInfo": {
      "type": "object",
      "properties": {
        "credits": {
          "type": "object",
          "properties": {
            "sms": {
              "type": "integer",
              "format": "int64",
              "description": "SMS credits remaining on the sub-account"
            },
            "emails": {
              "type": "object",
              "properties": {
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Quantity of email messaging limits provided"
                },
                "remaining": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Available email messaging limits for use"
                }
              },
              "description": "Email credits remaining on the sub-account"
            }
          },
          "description": "Credits quota and remaining credits on the sub-account"
        },
        "features": {
          "type": "object",
          "properties": {
            "inbox": {
              "type": "object",
              "properties": {
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Quantity of inbox provided"
                },
                "remaining": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Available inboxes for use"
                }
              },
              "description": "Inbox details / Not available on ENTv2"
            },
            "users": {
              "type": "object",
              "properties": {
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Quantity of multi-account's provided"
                },
                "remaining": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Available multi-accounts for use"
                }
              },
              "description": "Multi-account details"
            },
            "landingPage": {
              "type": "object",
              "properties": {
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Quantity of landing pages provided"
                },
                "remaining": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Available landing pages for use"
                }
              },
              "description": "Landing page details / Not available on ENTv2"
            }
          },
          "description": "Features available on the sub-account"
        },
        "planType": {
          "type": "string",
          "description": "type of the plan"
        }
      },
      "description": "Sub-account plan details"
    },
    "companyName": {
      "type": "string",
      "description": "Sub-account company name"
    }
  }
}
object subAccountUpdatePlanRequest
{
  "type": "object",
  "example": {
    "credits": {
      "email": 5000
    },
    "features": {
      "inbox": 10,
      "users": 15,
      "landingPage": 20
    }
  },
  "properties": {
    "credits": {
      "type": "object",
      "properties": {
        "email": {
          "type": "integer",
          "format": "int64",
          "description": "Number of email credits"
        }
      },
      "description": "Credit details to update"
    },
    "features": {
      "type": "object",
      "properties": {
        "inbox": {
          "type": "integer",
          "format": "int64",
          "description": "Number of inboxes / Not required on ENTv2"
        },
        "users": {
          "type": "integer",
          "format": "int64",
          "description": "Number of multi-users"
        },
        "landingPage": {
          "type": "integer",
          "format": "int64",
          "description": "Number of landing pages / Not required on ENTv2"
        }
      },
      "description": "Features details to update"
    }
  },
  "description": "Details of the plan to be changed"
}
object subAccountsResponse
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "Total number of subaccounts"
    },
    "subAccounts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "companyName",
          "active",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "id of the sub-account"
          },
          "active": {
            "type": "boolean",
            "description": "Whether the sub-account is active or not"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when the sub-account was created"
          },
          "companyName": {
            "type": "string",
            "description": "Name of the sub-account company"
          }
        }
      }
    }
  }
}
object updateAttribute
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "example": "COUNT[BLACKLISTED,BLACKLISTED,<,NOW()]",
      "description": "Value of the attribute to update. **Use only if the attribute's category is 'calculated' or 'global'**\n"
    },
    "enumeration": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string",
            "example": "Men",
            "description": "Label of the value"
          },
          "value": {
            "type": "integer",
            "example": 1,
            "description": "Id of the value"
          }
        }
      },
      "description": "List of the values and labels that the attribute can take. **Use only if the attribute's category is \"category\"**. For example,\n**[{\"value\":1, \"label\":\"male\"}, {\"value\":2, \"label\":\"female\"}]**\n"
    }
  }
}
object updateBatchContacts
{
  "type": "object",
  "properties": {
    "contacts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 31,
            "description": "id of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)"
          },
          "sms": {
            "type": "string",
            "example": "+91xxxxxxxxxx",
            "description": "SMS of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "elly@example.com",
            "description": "Email address of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)"
          },
          "ext_id": {
            "type": "string",
            "example": "UpdateExternalId",
            "description": "Pass your own Id to update ext_id of a contact."
          },
          "listIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64",
              "example": 65,
              "description": "Id of the list to add the contact to"
            },
            "description": "Ids of the lists to add the contact to"
          },
          "attributes": {
            "type": "object",
            "example": {
              "EMAIL": "newemail@domain.com",
              "FNAME": "Ellie",
              "LNAME": "Roger"
            },
            "description": "Pass the set of attributes to be updated. **These attributes must be present in your account**. To update existing email address of a contact with the new one please pass EMAIL in attribtes. For example, **{ \"EMAIL\":\"newemail@domain.com\", \"FNAME\":\"Ellie\", \"LNAME\":\"Roger\"}**.\nKeep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in **SMS** field should be passed with proper country code. For example: **{\"SMS\":\"+91xxxxxxxxxx\"} or {\"SMS\":\"0091xxxxxxxxxx\"}**\n",
            "additionalProperties": {}
          },
          "unlinkListIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64",
              "example": 36,
              "description": "Id of the list to remove the contact from"
            },
            "description": "Ids of the lists to remove the contact from"
          },
          "smsBlacklisted": {
            "type": "boolean",
            "example": true,
            "description": "Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)"
          },
          "emailBlacklisted": {
            "type": "boolean",
            "example": false,
            "description": "Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)"
          },
          "smtpBlacklistSender": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "email"
            },
            "description": "transactional email forbidden sender for contact. Use only for email Contact"
          }
        }
      },
      "description": "List of contacts to be updated"
    }
  }
}
object updateBatchContactsModel
{
  "type": "object",
  "properties": {
    "failureIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "description": "IDs which are not updated"
      },
      "example": 34
    },
    "successIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "description": "IDs which are successfully updated"
      },
      "example": 12
    }
  }
}
object updateCampaignStatus
{
  "type": "object",
  "example": "draft",
  "properties": {
    "status": {
      "enum": [
        "suspended",
        "archive",
        "darchive",
        "sent",
        "queued",
        "replicate",
        "replicateTemplate",
        "draft"
      ],
      "type": "string",
      "description": "Note:- **replicateTemplate** status will be available **only for template type campaigns.**\n"
    }
  },
  "description": "Status of the campaign"
}
object updateChild
{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "example": "josh.cruise@example.com",
      "description": "New Email address to update the child account"
    },
    "lastName": {
      "type": "string",
      "example": "Cruise",
      "description": "New Last name to use to update the child account"
    },
    "password": {
      "type": "string",
      "format": "password",
      "example": "Pa55w0rd65",
      "description": "New password for the child account to login"
    },
    "firstName": {
      "type": "string",
      "example": "Josh",
      "description": "New First name to use to update the child account"
    },
    "companyName": {
      "type": "string",
      "example": "Your Company",
      "description": "New Company name to use to update the child account"
    }
  }
}
object updateChildAccountStatus
{
  "type": "object",
  "properties": {
    "smsCampaign": {
      "type": "boolean",
      "example": true,
      "description": "Status of SMS Campaign Platform activation for your account (true=enabled, false=disabled)"
    },
    "transactionalSms": {
      "type": "boolean",
      "example": false,
      "description": "Status of Transactional SMS Platform activation for your account (true=enabled, false=disabled)"
    },
    "transactionalEmail": {
      "type": "boolean",
      "example": false,
      "description": "Status of Transactional Email Platform activation for your account (true=enabled, false=disabled)"
    },
    "marketingAutomation": {
      "type": "boolean",
      "example": true,
      "description": "Status of Marketing Automation Platform activation for your account (true=enabled, false=disabled)"
    }
  }
}
object updateChildDomain
{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "example": "myupdateddomain.com",
      "description": "Value for the sender domain that will replace the existing domain"
    }
  }
}
object updateContact
{
  "type": "object",
  "properties": {
    "ext_id": {
      "type": "string",
      "example": "updateExternalId",
      "description": "Pass your own Id to update ext_id of a contact."
    },
    "listIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 65,
        "description": "Id of the list to add the contact to"
      },
      "description": "Ids of the lists to add the contact to"
    },
    "attributes": {
      "type": "object",
      "example": {
        "EMAIL": "newemail@domain.com",
        "FNAME": "Ellie",
        "LNAME": "Roger"
      },
      "description": "Pass the set of attributes to be updated. **These attributes must be present in your account**. To update existing email address of a contact with the new one please pass EMAIL in attributes. For example, **{ \"EMAIL\":\"newemail@domain.com\", \"FNAME\":\"Ellie\", \"LNAME\":\"Roger\"}**.\nThe attribute's parameter should be passed in capital letter while updating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored. Keep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in **SMS** field should be passed with proper country code. For example: **{\"SMS\":\"+91xxxxxxxxxx\"} or {\"SMS\":\"0091xxxxxxxxxx\"}**\n",
      "additionalProperties": {}
    },
    "unlinkListIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 36,
        "description": "Id of the list to remove the contact from"
      },
      "description": "Ids of the lists to remove the contact from"
    },
    "smsBlacklisted": {
      "type": "boolean",
      "example": true,
      "description": "Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)"
    },
    "emailBlacklisted": {
      "type": "boolean",
      "example": false,
      "description": "Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)"
    },
    "smtpBlacklistSender": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email"
      },
      "description": "transactional email forbidden sender for contact. Use only for email Contact"
    }
  }
}
object updateEmailCampaign
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "example": "Newsletter",
      "description": "Tag of the campaign"
    },
    "name": {
      "type": "string",
      "example": "Newsletter - May 2017",
      "description": "Name of the campaign"
    },
    "footer": {
      "type": "string",
      "example": "[DEFAULT_FOOTER]",
      "description": "Footer of the email campaign"
    },
    "header": {
      "type": "string",
      "example": "[DEFAULT_HEADER]",
      "description": "Header of the email campaign"
    },
    "params": {
      "type": "object",
      "example": {
        "FNAME": "Joe",
        "LNAME": "Doe"
      },
      "description": "Pass the set of attributes to customize the type classic campaign. For example: **{\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}**. Only available if **type** is **classic**. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of **subject, htmlContent/htmlUrl, sender.name & toField**\n",
      "additionalProperties": {}
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the campaign on the basis of sender id. **In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)**.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Sender Name from which the campaign emails are sent"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "newsletter@myshop.com",
          "description": "Sender email from which the campaign emails are sent"
        }
      },
      "description": "Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "Url which contents the body of the email message. **REQUIRED if htmlContent is empty**\n"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Discover the New Collection !",
      "description": "Subject of the campaign"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first\nname and last name of your recipient, add **{FNAME} {LNAME}**. These contact\nattributes must already exist in your Brevo account. If input parameter\n**params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "subjectA": {
      "type": "string",
      "example": "Discover the New Collection!",
      "description": "Subject A of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "subjectB": {
      "type": "string",
      "example": "Want to discover the New Collection?",
      "description": "Subject B of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "abTesting": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. **subjectA, subjectB, splitRule, winnerCriteria & winnerDelay** will be considered when abTesting is set to true.\nsubjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**.\nYou will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B\n"
    },
    "recurring": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "**FOR TRIGGER ONLY !** Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times\n"
    },
    "splitRule": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Add the size of your test groups. **Mandatory if abTesting = true & 'recipients' is passed**. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else\n"
    },
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "Lists Ids to send the campaign to. **Campaign should only be updated with listIds if listIds were used to create it. REQUIRED if already not present in campaign and scheduledAt is not empty**\n"
        },
        "segmentIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used. Campaign should only be updated with segmentIds if segmentIds were used to create it.** Segment ids to send the campaign to.\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids which have to be excluded from a campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "htmlContent": {
      "type": "string",
      "example": "<!DOCTYPE html> <html> <body> <h1>Confirm you email</h1> <p>Please confirm your email address by clicking on the link below</p> </body> </html>",
      "description": "Body of the message (HTML version). If the campaign is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that campaign. **REQUIRED if htmlUrl is empty**\n"
    },
    "previewText": {
      "type": "string",
      "example": "Thanks for your order!",
      "description": "Preview text or preheader of the email campaign"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ).\n**Prefer to pass your timezone in date-time format for accurate result.**\nIf sendAtBestTime is set to true, your campaign will be sent according\nto the date passed (ignoring the time part).\n"
    },
    "utmCampaign": {
      "type": "string",
      "example": "NL_05_2017",
      "description": "Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed"
    },
    "winnerDelay": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 168,
      "minimum": 1,
      "description": "Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerDelay` is ignored if passed\n"
    },
    "increaseRate": {
      "type": "integer",
      "format": "int64",
      "example": 70,
      "maximum": 100,
      "minimum": 0,
      "description": "Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.\n"
    },
    "initialQuota": {
      "type": "integer",
      "format": "int64",
      "example": 3000,
      "description": "Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.\n"
    },
    "mirrorActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign"
    },
    "updateFormId": {
      "type": "string",
      "example": "6313436b9ad40e23b371d095",
      "description": "**Mandatory if templateId is used containing the {{ update_profile }} tag**. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form.\n"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (no local file).\nExtension allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'\n"
    },
    "ipWarmupEnable": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "**Available for dedicated ip clients**. Set this to true if you wish to warm up your ip.\n"
    },
    "sendAtBestTime": {
      "type": "boolean",
      "example": true,
      "description": "Set this to true if you want to send your campaign at best time.\nNote:- **if true, warmup ip will be disabled.**\n"
    },
    "winnerCriteria": {
      "enum": [
        "open",
        "click"
      ],
      "type": "string",
      "example": "open",
      "description": "Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed\n"
    },
    "unsubscriptionPageId": {
      "type": "string",
      "example": "62cbb7fabbe85021021aac52",
      "description": "Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page.\n"
    },
    "inlineImageActivation": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email.\nYou cannot send a campaign of more than **4MB** with images embedded in the email. Campaigns with the images embedded in the email _must be sent to less than 5000 contacts_.\n"
    }
  }
}
object updateExternalFeed
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the feed"
    },
    "name": {
      "type": "string",
      "example": "New feed",
      "description": "Name of the feed"
    },
    "cache": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Toggle caching of feed url response"
    },
    "token": {
      "type": "string",
      "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "description": "Token for authType `token`"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "userId",
            "description": "Name of the header"
          },
          "value": {
            "type": "string",
            "example": "user12345",
            "description": "Value of the header"
          }
        }
      },
      "example": [
        {
          "name": "header1",
          "value": "value1"
        },
        {
          "name": "header2",
          "value": "value2"
        }
      ],
      "description": "Custom headers for the feed"
    },
    "authType": {
      "enum": [
        "basic",
        "token",
        "noAuth"
      ],
      "type": "string",
      "description": "Auth type of the feed:\n * `basic`\n * `token`\n * `noAuth`\n"
    },
    "password": {
      "type": "string",
      "example": "password",
      "description": "Password for authType `basic`"
    },
    "username": {
      "type": "string",
      "example": "user",
      "description": "Username for authType `basic`"
    },
    "maxRetries": {
      "type": "integer",
      "default": 5,
      "example": 5,
      "maximum": 5,
      "minimum": 0,
      "description": "Maximum number of retries on the feed url"
    }
  }
}
object updateList
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Magento Customer - ES",
      "description": "Name of the list. Either of the two parameters (name, folderId) can be updated at a time."
    },
    "folderId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the folder in which the list is to be moved. Either of the two parameters (name, folderId) can be updated at a time."
    }
  }
}
object updateSender
{
  "type": "object",
  "properties": {
    "ips": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "domain",
          "ip"
        ],
        "properties": {
          "ip": {
            "type": "string",
            "example": "123.98.689.7",
            "description": "Dedicated IP available in your account"
          },
          "domain": {
            "type": "string",
            "example": "mycompany.com",
            "description": "Domain of the IP"
          },
          "weight": {
            "type": "integer",
            "format": "int64",
            "example": 50,
            "maximum": 100,
            "minimum": 1,
            "description": "Weight to apply to the IP. Sum of all IP weights must be 100. Should be passed for either ALL or NONE of the IPs. If it's not passed, the sending will be equally balanced on all IPs."
          }
        }
      },
      "description": "**Only in case of dedicated IP**. IPs to associate to the sender. If passed, will replace all the existing IPs.\n"
    },
    "name": {
      "type": "string",
      "example": "Newsletter",
      "description": "From Name to update the sender"
    },
    "email": {
      "type": "string",
      "format": "email",
      "example": "newsletter@mycompany.com",
      "description": "From Email to update the sender"
    }
  }
}
object updateSmsCampaign
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Spring Promo Code",
      "description": "Name of the campaign"
    },
    "sender": {
      "type": "string",
      "example": "MyShop",
      "maxLength": 15,
      "description": "Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**\n"
    },
    "content": {
      "type": "string",
      "example": "Get a discount by visiting our NY store and saying : Happy Spring!",
      "description": "Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS\n"
    },
    "recipients": {
      "type": "object",
      "required": [
        "listIds"
      ],
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 54,
            "description": "List Id to send the campaign to"
          },
          "description": "Lists Ids to send the campaign to. **REQUIRED if scheduledAt is not empty**\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 15,
            "description": "List Id to exclude from the campaign"
          },
          "description": "List ids which have to be excluded from a campaign"
        }
      }
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-05-05T10:30:00.000Z",
      "description": "UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**\n"
    },
    "unicodeEnabled": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Format of the message. It indicates whether the content should be treated as unicode or not.\n"
    },
    "organisationPrefix": {
      "type": "string",
      "example": "MyCompany",
      "description": "A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**"
    },
    "unsubscribeInstruction": {
      "type": "string",
      "example": "send Stop if you want to unsubscribe.",
      "description": "Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**"
    }
  }
}
object updateSmtpTemplate
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "example": "OrderConfirmation",
      "description": "Tag of the template"
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the template on the basis of sender id.\n_In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)_.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Name of the sender"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "contact@myshop.com",
          "description": "Email of the sender"
        }
      },
      "description": "Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "**Required if htmlContent is empty**. URL to the body of the email (HTML)\n"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Thanks for your purchase !",
      "description": "Subject of the email"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "isActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of the template. isActive = false means template is inactive, isActive = true means template is active"
    },
    "htmlContent": {
      "type": "string",
      "example": "The order n°xxxxx has been confirmed. Thanks for your purchase",
      "description": "**Required if htmlUrl is empty**. If the template is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that template. Body of the message (HTML must have more than 10 characters)\n"
    },
    "templateName": {
      "type": "string",
      "example": "Order Confirmation - EN",
      "description": "Name of the template"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (**no local file**). Extensions allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps\n"
    }
  }
}
object updateUserResponse
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "example": "OK",
      "description": "Status of the API operation."
    },
    "invoice_id": {
      "type": "string",
      "items": {
        "type": "string",
        "example": "TEST-ID"
      },
      "description": "Invoice id"
    },
    "credit_notes": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "TEST-123"
      },
      "description": "Credit note"
    }
  }
}
object updateWebhook
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the webhook"
    },
    "auth": {
      "type": "object",
      "example": {
        "type": "bearer",
        "token": "test-auth-token1234"
      },
      "description": "Authentication header to be send with the webhook requests"
    },
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "Inbound domain of webhook, used in case of event type `inbound`"
    },
    "events": {
      "type": "array",
      "items": {
        "enum": [
          "sent",
          "hardBounce",
          "softBounce",
          "blocked",
          "spam",
          "delivered",
          "request",
          "click",
          "invalid",
          "deferred",
          "opened",
          "uniqueOpened",
          "unsubscribed",
          "listAddition",
          "contactUpdated",
          "contactDeleted",
          "inboundEmailProcessed"
        ],
        "type": "string",
        "example": "hardBounce"
      },
      "description": "- Events triggering the webhook. Possible values for **Transactional** type webhook:\n#### `sent` OR `request`, `delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and `unsubscribed`\n- Possible values for **Marketing** type webhook:\n#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`, `unsubscribed`, `listAddition` & `delivered`\n- Possible values for **Inbound** type webhook:\n#### `inboundEmailProcessed`\n"
    },
    "batched": {
      "type": "boolean",
      "example": true,
      "description": "Batching configuration of the webhook, we send batched webhooks if its true"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "key": "cf-secret",
          "value": "test-header-value"
        },
        "description": "Headers send with the requests to the webhook"
      }
    },
    "description": {
      "type": "string",
      "example": "Webhook triggered on contact hardbounce",
      "description": "Description of the webhook"
    }
  }
}
object updateWhatsAppCampaign
{
  "type": "object",
  "properties": {
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "**Mandatory if scheduledAt is not empty**. List Ids to send the campaign to\n"
        },
        "segments": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used**. Segment ids to send the campaign to.\n"
        },
        "excludedListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids to exclude from the campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "campaignName": {
      "type": "string",
      "example": "Test WhatsApp",
      "description": "Name of the campaign"
    },
    "rescheduleFor": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**\nUse this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.\n"
    },
    "campaignStatus": {
      "enum": [
        "scheduled",
        "suspended"
      ],
      "type": "string",
      "default": "scheduled",
      "example": "scheduled",
      "description": "Status of the campaign"
    }
  }
}
object uploadImageModel
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "https://img.mailinblue.com/100000/images/rnb/original/62casdase8wewq9df1c2f27c.jpeg",
      "description": "URL of the image uploaded"
    }
  }
}
object uploadImageToGallery
{
  "type": "object",
  "required": [
    "imageUrl"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "nature.jpg",
      "description": "Name of the image."
    },
    "imageUrl": {
      "type": "string",
      "example": "https://somedomain.com/image1.jpg",
      "description": "The absolute url of the image (**no local file**). Maximum allowed size for image is **2MB**.\nAllowed extensions for images are:\n#### jpeg, jpg, png, bmp, gif.\n"
    }
  }
}
object variablesItems
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "FIRSTNAME"
    },
    "default": {
      "type": "string",
      "example": "INVALID_HEADER"
    },
    "datatype": {
      "type": "string",
      "example": "text"
    }
  }
}