openapi: 3.2.0 info: title: Marketing Campaigns Email Campaigns API version: 1.0.0 servers: - url: https://api.brevo.com/v3 description: https://api.brevo.com/v3 tags: - name: emailCampaigns paths: /emailCampaigns: get: operationId: getEmailCampaigns summary: Return all your created email campaigns description: 'The response payload for this endpoint has changed You now need to specify which type of statistics you would like to retrieve. For more information visit [this page](https://developers.brevo.com/changelog/2023/2/7).' tags: - emailCampaigns parameters: - name: type in: query description: Filter on the type of the campaigns required: false schema: $ref: '#/components/schemas/EmailCampaignsGetParametersType' - name: status in: query description: Filter on the status of the campaign required: false schema: $ref: '#/components/schemas/EmailCampaignsGetParametersStatus' - name: statistics in: query description: 'Filter on the type of statistics required. Example: **globalStats** value will only fetch globalStats info of the campaign in the returned response. This option only returns data for events that occurred in the last 6 months. For older campaigns, it is advisable to use the **Get Campaign Report** endpoint.' required: false schema: $ref: '#/components/schemas/EmailCampaignsGetParametersStatistics' - name: startDate in: query description: '**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 `status` is not passed or is set to `sent`. The date range between `startDate` and `endDate` must not exceed 2 years. `startDate` must not be in the future. ' required: false schema: type: string - name: endDate in: query description: '**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 `status` is not passed or is set to `sent`. The date range between `startDate` and `endDate` must not exceed 2 years. `endDate` must not be in the future. ' required: false schema: type: string - name: limit in: query description: Number of documents per page required: false schema: type: integer format: int64 default: 50 - name: offset in: query description: Index of the first document in the page required: false schema: type: integer format: int64 default: 0 - name: sort in: query description: Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed required: false schema: $ref: '#/components/schemas/EmailCampaignsGetParametersSort' default: desc - name: excludeHtmlContent in: query description: Use this flag to exclude htmlContent from the response body. If set to **true**, the htmlContent field will be returned as an empty string in the response body. required: false schema: type: boolean - name: excludePdfAttachment in: query description: Use this flag to filter out campaigns that have a PDF attachment. If set to **true**, only campaigns without a PDF attachment (or with no attachment at all) will be returned. required: false schema: type: boolean - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '200': description: Email campaigns information content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_getEmailCampaigns_Response_200' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/GetEmailCampaignsRequestBadRequestError' post: operationId: createEmailCampaign summary: Create an email campaign description: 'Create a new email campaign. The campaign requires at minimum a name and sender details, and is created in draft status by default. You must provide email content via one of three mutually exclusive options: htmlContent (inline HTML), htmlUrl (remote URL), or templateId (existing template); additionally, A/B testing can be enabled by setting abTesting to true with subjectA and subjectB, but this is incompatible with sendAtBestTime.' tags: - emailCampaigns parameters: - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '201': description: successfully created content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_createEmailCampaign_Response_201' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/CreateEmailCampaignRequestBadRequestError' '405': description: Method not allowed. Returned when using sendAtBestTime or abTesting features without the required premium plan. content: application/json: schema: $ref: '#/components/schemas/errorModel' requestBody: description: Values to create a campaign content: application/json: schema: type: object properties: abTesting: type: boolean default: false 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. subjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**. You 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 ' attachmentUrl: type: string format: url description: 'Absolute url of the attachment (no local file). Extension allowed: #### 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 ' emailExpirationDate: $ref: '#/components/schemas/EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDate' description: To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy. Learn more about setting an email expiration date. For reference , ``https://help.brevo.com/hc/en-us/articles/4413566705298-Create-an-email-campaign`` footer: type: string description: Footer of the email campaign header: type: string description: Header of the email campaign htmlContent: type: string description: '**Mandatory if htmlUrl and templateId are empty.** Body of the message (HTML). Must have more than 10 characters and be less than 1MB in size. Cannot be used together with `htmlUrl` or `templateId`. ' htmlUrl: type: string format: url description: '**Mandatory if htmlContent and templateId are empty.** URL to the message (HTML). Cannot be used together with `htmlContent` or `templateId`. For example: **https://html.domain.com** ' increaseRate: type: integer format: int64 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%. ' initialQuota: type: integer format: int64 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. ' inlineImageActivation: type: boolean default: false description: 'Use true to embedded the images in your email. Final size of the email should be less than **4MB**. Campaigns with embedded images can _not be sent to more than 5000 contacts_ ' ipWarmupEnable: type: boolean default: false description: '**Available for dedicated ip clients**. Set this to true if you wish to warm up your ip. ' mirrorActive: type: boolean description: Use true to enable the mirror link name: type: string description: Name of the campaign params: type: object additionalProperties: description: Any type 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** ' previewText: type: string description: Preview text or preheader of the email campaign recipients: $ref: '#/components/schemas/EmailCampaignsPostRequestBodyContentApplicationJsonSchemaRecipients' description: Segment ids and List ids to include/exclude from campaign replyTo: type: string format: email description: Email on which the campaign recipients will be able to reply to scheduledAt: type: string description: 'Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result**. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). For example: **2017-06-01T12:30:00+02:00** ' sendAtBestTime: type: boolean default: false description: Set this to true if you want to send your campaign at best time. sender: $ref: '#/components/schemas/EmailCampaignsPostRequestBodyContentApplicationJsonSchemaSender' 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. Passing both `email` and `id` will result in an error. For example: **{"name":"xyz", "email":"example@abc.com"}** or **{"name":"xyz", "id":123}** ' splitRule: type: integer format: int64 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 ' subject: type: string description: 'Subject of the campaign. **Mandatory if abTesting is false**. Ignored if abTesting is true. ' subjectA: type: string description: 'Subject A of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value ' subjectB: type: string description: 'Subject B of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value ' tag: type: string description: Tag of the campaign templateId: type: integer format: int64 description: '**Mandatory if htmlContent and htmlUrl are empty.** Id of the transactional email template with status _active_. Used to copy only its content fetched from htmlContent/htmlUrl to an email campaign for RSS feature. Cannot be used together with `htmlContent` or `htmlUrl`. ' toField: type: string 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 ' unsubscriptionPageId: type: string 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. ' updateFormId: type: string 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. ' utmCampaign: type: string description: Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed utmContent: type: string description: Customize the utm_content value. Appears on outgoing tracking links alongside utm_campaign. Only alphanumeric characters and spaces are allowed utmTerm: type: string description: Customize the utm_term value. Appears on outgoing tracking links alongside utm_campaign. Only alphanumeric characters and spaces are allowed winnerCriteria: $ref: '#/components/schemas/EmailCampaignsPostRequestBodyContentApplicationJsonSchemaWinnerCriteria' description: 'Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed ' winnerDelay: type: integer format: int64 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 ' required: - name - sender /emailCampaigns/{campaignId}: put: operationId: updateEmailCampaign summary: Update an email campaign description: Update an existing email campaign''s properties such as name, subject, content, sender, recipients, schedule, and A/B testing configuration. The campaign must exist and the request body must contain at least one valid field to update. Only draft or scheduled campaigns can be modified; if sendAtBestTime is enabled, IP warmup will be automatically disabled. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: Email campaign updated content: application/json: schema: type: object properties: {} '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/UpdateEmailCampaignRequestBadRequestError' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/UpdateEmailCampaignRequestNotFoundError' '405': description: Method not allowed. Returned when using sendAtBestTime or abTesting features without the required premium plan. content: application/json: schema: $ref: '#/components/schemas/errorModel' requestBody: description: Values to update a campaign content: application/json: schema: type: object properties: abTesting: type: boolean default: false 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. subjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**. You 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 ' attachmentUrl: type: string format: url description: 'Absolute url of the attachment (no local file). Extension allowed: #### 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'' ' emailExpirationDate: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDate' description: To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy. footer: type: string description: Footer of the email campaign header: type: string description: Header of the email campaign htmlContent: type: string 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** ' htmlUrl: type: string format: url description: 'Url which contents the body of the email message. **REQUIRED if htmlContent is empty** ' increaseRate: type: integer format: int64 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%. ' initialQuota: type: integer format: int64 description: 'Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000. ' inlineImageActivation: type: boolean default: false description: 'Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. You 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_. ' ipWarmupEnable: type: boolean default: false description: '**Available for dedicated ip clients**. Set this to true if you wish to warm up your ip. ' mirrorActive: type: boolean description: Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign name: type: string description: Name of the campaign params: type: object additionalProperties: description: Any type 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** ' previewText: type: string description: Preview text or preheader of the email campaign recipients: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaRecipients' description: Segment ids and List ids to include/exclude from campaign recurring: type: boolean default: 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 ' replyTo: type: string format: email description: Email on which campaign recipients will be able to reply to scheduledAt: type: string 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.** If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). ' sendAtBestTime: type: boolean description: 'Set this to true if you want to send your campaign at best time. Note:- **if true, warmup ip will be disabled.** ' sender: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaSender' 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: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}** ' splitRule: type: integer format: int64 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 ' subject: type: string description: Subject of the campaign subjectA: type: string description: 'Subject A of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value ' subjectB: type: string description: 'Subject B of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value ' tag: type: string description: Tag of the campaign toField: type: string 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 ' unsubscriptionPageId: type: string 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. ' updateFormId: type: string 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. ' utmCampaign: type: string description: Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed utmContent: type: string description: Customize the utm_content value. Appears on outgoing tracking links alongside utm_campaign. Only alphanumeric characters and spaces are allowed utmTerm: type: string description: Customize the utm_term value. Appears on outgoing tracking links alongside utm_campaign. Only alphanumeric characters and spaces are allowed winnerCriteria: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaWinnerCriteria' description: 'Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed ' winnerDelay: type: integer format: int64 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 ' delete: operationId: deleteEmailCampaign summary: Delete an email campaign description: Delete an email campaign by its campaign ID. Only campaigns that have not been scheduled can be deleted; attempting to delete a campaign that has already been scheduled will return a 403 permission denied error. Related data in templates, newsletter builder, and schedule collections is also cleaned up. tags: - emailCampaigns parameters: - name: campaignId in: path description: id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: Email campaign has been deleted content: application/json: schema: type: object properties: {} '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/DeleteEmailCampaignRequestBadRequestError' '403': description: Permission denied. A campaign that has already been scheduled cannot be deleted. content: application/json: schema: $ref: '#/components/schemas/errorModel' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/DeleteEmailCampaignRequestNotFoundError' get: operationId: getEmailCampaign summary: Get an email campaign report description: Retrieve detailed information about a specific email campaign by its ID, including recipients, statistics, and HTML content. Use the statistics query parameter to select which statistics to include (globalStats, linksStats, statsByDomain, statsByDevice, or statsByBrowser); statsByDevice and statsByBrowser are only available on this single-campaign endpoint. You can exclude HTML content from the response by setting excludeHtmlContent to true. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: statistics in: query description: 'Filter on the type of statistics required. Example: **globalStats** value will only fetch globalStats info of the campaign in the returned response. `statsByDevice` and `statsByBrowser` are only available when retrieving a single campaign (not in the list endpoint).' required: false schema: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetParametersStatistics' - name: excludeHtmlContent in: query description: 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 required: false schema: type: boolean - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '200': description: Email campaign information content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_getEmailCampaign_Response_200' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/GetEmailCampaignRequestBadRequestError' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/GetEmailCampaignRequestNotFoundError' /emailCampaigns/{campaignId}/sendNow: post: operationId: sendEmailCampaignNow summary: Send an email campaign immediately, based on campaignId description: Send an existing email campaign immediately by scheduling it for the current time. The campaign must have valid recipients and content configured before sending. The system verifies your account''s send limit and credit balance before dispatching; if credits are insufficient, a 402 error is returned. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: Email campaign has been scheduled content: application/json: schema: type: object properties: {} '400': description: Campaign could not be sent content: application/json: schema: $ref: '#/components/schemas/errorModel' '402': description: You don't have enough credit to send your campaign. Please update your plan content: application/json: schema: $ref: '#/components/schemas/errorModel' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/SendEmailCampaignNowRequestNotFoundError' /emailCampaigns/{campaignId}/sendTest: post: operationId: sendTestEmail summary: Send an email campaign to your test list description: Send a test version of an email campaign to specified email addresses or your entire test list. If the emailTo array is left empty, the test mail will be sent to all addresses in your test list. You can send a maximum of 50 test emails per day. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: Test email has been sent successfully to all recipients content: application/json: schema: type: object properties: {} '400': description: Test email could not be sent to the following email addresses content: application/json: schema: $ref: '#/components/schemas/postSendFailed' '404': description: Campaign ID not found content: application/json: schema: $ref: '#/components/schemas/postSendFailed' requestBody: content: application/json: schema: $ref: '#/components/schemas/sendTestEmail' /emailCampaigns/{campaignId}/status: put: operationId: updateCampaignStatus summary: Update an email campaign status description: Update the status of an email campaign, such as suspending, archiving, or replicating it. Available status values include suspended, archive, darchive, sent, queued, replicate, replicateTemplate, cancel, and draft. Note that the replicateTemplate status is only available for template type campaigns. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: The campaign status has been updated successfully content: application/json: schema: type: object properties: {} '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/UpdateCampaignStatusRequestBadRequestError' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/UpdateCampaignStatusRequestNotFoundError' requestBody: description: Status of the campaign content: application/json: schema: $ref: '#/components/schemas/updateCampaignStatus' /emailCampaigns/{campaignId}/sharedUrl: get: operationId: getSharedTemplateUrl summary: Get a shared template url description: Get a unique URL to share & import an email template from one Brevo account to another. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign or template required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '200': description: Shared template URL information content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_getSharedTemplateUrl_Response_200' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/GetSharedTemplateUrlRequestBadRequestError' '404': description: Campaign/Template ID not found content: application/json: schema: $ref: '#/components/schemas/errorModel' '405': description: Only email campaigns or templates are allowed content: application/json: schema: $ref: '#/components/schemas/errorModel' /emailCampaigns/{campaignId}/exportRecipients: post: operationId: emailExportRecipients summary: Export the recipients of an email campaign description: Export the recipients of a sent email campaign as an asynchronous process, filtered by recipient type (e.g. openers, clickers, hardBounces). The recipientsType field is required and determines which subset of recipients to export. An optional notifyURL webhook will be called once the export is complete, and the response returns a processId to track the export status. tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '202': description: process id created content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_emailExportRecipients_Response_202' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/EmailExportRecipientsRequestBadRequestError' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/EmailExportRecipientsRequestNotFoundError' requestBody: description: Values to send for a recipient export request content: application/json: schema: type: object properties: notifyURL: type: string format: url description: Webhook called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479 recipientsType: $ref: '#/components/schemas/EmailCampaignsCampaignIdExportRecipientsPostRequestBodyContentApplicationJsonSchemaRecipientsType' description: Type of recipients to export for a campaign required: - recipientsType /emailCampaigns/{campaignId}/sendReport: post: operationId: sendReport summary: Send the report of a campaign description: A PDF will be sent to the specified email addresses tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '204': description: Report has been successfully sent to the defined recipients content: application/json: schema: type: object properties: {} '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/SendReportRequestBadRequestError' '404': description: bad request content: application/json: schema: $ref: '#/components/schemas/SendReportRequestNotFoundError' requestBody: description: Values for send a report content: application/json: schema: $ref: '#/components/schemas/sendReport' /emailCampaigns/{campaignId}/abTestCampaignResult: get: operationId: getAbTestCampaignResult summary: Get an A/B test email campaign results description: Obtain winning version of an A/B test email campaign tags: - emailCampaigns parameters: - name: campaignId in: path description: Id of the A/B test campaign required: true schema: type: integer format: int64 - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '200': description: A/B test email campaign Result content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_getAbTestCampaignResult_Response_200' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/GetAbTestCampaignResultRequestBadRequestError' '404': description: A/B test Email Campaign not found content: application/json: schema: $ref: '#/components/schemas/errorModel' /emailCampaigns/images: post: operationId: uploadImageToGallery summary: Upload an image to your account's image gallery description: Upload an image to your account''s image gallery by providing an absolute URL to the image. The maximum allowed image size is 2MB and supported formats are jpeg, jpg, png, bmp, and gif; local file uploads are not supported. tags: - emailCampaigns parameters: - name: api-key in: header description: The API key should be passed in the request headers as `api-key` for authentication. required: true schema: type: string responses: '201': description: Image has been successfully uploaded content: application/json: schema: $ref: '#/components/schemas/Email_Campaigns_uploadImageToGallery_Response_201' '400': description: bad request content: application/json: schema: $ref: '#/components/schemas/UploadImageToGalleryRequestBadRequestError' requestBody: description: Parameters to upload an image content: application/json: schema: type: object properties: imageUrl: type: string description: 'The absolute url of the image (**no local file**). Maximum allowed size for image is **2MB**. Allowed extensions for images are: #### jpeg, jpg, png, bmp, gif. ' name: type: string description: Name of the image. required: - imageUrl components: schemas: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDateUnit: type: string enum: - days - weeks - months description: Unit of the duration title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDateUnit EmailCampaignsPostResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsPostResponsesContentApplicationJsonSchemaCode EmailCampaignsGetResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCode Email_Campaigns_getSharedTemplateUrl_Response_200: type: object properties: sharedUrl: type: string format: url description: A unique URL for the email campaign or transactional template. This URL can be shared with other Brevo users. required: - sharedUrl title: Email Campaigns_getSharedTemplateUrl_Response_200 EmailExportRecipientsRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdExportRecipientsPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: EmailExportRecipientsRequestBadRequestError EmailCampaignsCampaignIdExportRecipientsPostResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdExportRecipientsPostResponsesContentApplicationJsonSchemaCode EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDate: type: object properties: duration: type: integer format: int64 description: Duration of the email expiry. maximum duration can be 3600 days or 480 weeks or 120 months. unit: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit' description: unit of the duration description: To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy. title: EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDate EmailCampaignsCampaignIdSendReportPostResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdSendReportPostResponsesContentApplicationJsonSchemaCode EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningVersion: type: string enum: - notAvailable - pending - tie - A - B 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. title: EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningVersion GetAbTestCampaignResultRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: GetAbTestCampaignResultRequestBadRequestError EmailCampaignsGetParametersSort: type: string enum: - asc - desc default: desc title: EmailCampaignsGetParametersSort EmailCampaignsCampaignIdDeleteResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdDeleteResponsesContentApplicationJsonSchemaCode UpdateCampaignStatusRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdStatusPutResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: UpdateCampaignStatusRequestBadRequestError Email_Campaigns_getAbTestCampaignResult_Response_200: type: object properties: clickRate: type: string description: Click rate for current winning version clickedLinks: $ref: '#/components/schemas/EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaClickedLinks' openRate: type: string description: Open rate for current winning version statistics: $ref: '#/components/schemas/EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaStatistics' winningCriteria: $ref: '#/components/schemas/EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningCriteria' description: Criteria chosen for winning version (Open/Click) winningSubjectLine: type: string description: Subject Line of current winning version winningVersion: $ref: '#/components/schemas/EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningVersion' 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. winningVersionRate: type: string description: Open/Click rate for the winner version title: Email Campaigns_getAbTestCampaignResult_Response_200 AbTestVersionClicksItems: type: object properties: clickRate: type: string description: Percentage of clicks of link with respect to total clicks clicksCount: type: integer format: int64 description: Number of times a link is clicked link: type: string description: URL of the link required: - clickRate - clicksCount - link title: AbTestVersionClicksItems EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsType: type: string enum: - classic - trigger description: Type of campaign title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsType Email_Campaigns_getEmailCampaign_Response_200: type: object properties: attachmentFile: type: string description: Url of the attachment file. Only available if the campaign has an attachment. abTesting: type: boolean description: Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled. id: type: integer format: int64 description: ID of the campaign name: type: string description: Name of the campaign previewText: type: string description: Preview text or preheader of the email campaign scheduledAt: type: string description: UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ) sendAtBestTime: type: boolean description: It is true if you have chosen to send your campaign at best time, otherwise it is false splitRule: type: integer description: The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true` status: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaStatus' description: Status of the campaign subject: type: string description: Subject of the campaign. Only available if `abTesting` flag of the campaign is `false` subjectA: type: string description: Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` subjectB: type: string description: Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` type: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaType' description: Type of campaign winnerCriteria: type: string description: Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true` winnerDelay: type: integer 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` attachmentUrl: type: string description: URL of the attachment file associated with the campaign. Empty string if no attachment is present. createdAt: type: string description: Creation UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) emailExpirationDate: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDate' description: Expiration date configuration for the email campaign, if set. Contains the duration and unit of the email expiry. footer: type: string description: Footer of the campaign header: type: string description: Header of the campaign htmlContent: type: string description: HTML content of the campaign inlineImageActivation: type: boolean description: Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. mirrorActive: type: boolean description: Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign modifiedAt: type: string description: UTC date-time of last modification of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) recurring: type: boolean 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 replyTo: type: string format: email description: Email defined as the "Reply to" of the campaign returnBounce: type: integer format: int64 description: Total number of non-delivered campaigns for a particular campaign id. sender: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaSender' sentDate: type: string description: Sent UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ). Only available if 'status' of the campaign is 'sent' shareLink: type: string description: Link to share the campaign on social media. For trigger campaigns, this returns a descriptive message instead of a URL. For classic campaigns that have not been sent, this also returns a descriptive message. tag: type: string description: Tag of the campaign tags: type: array items: type: string description: List of tags of the campaign testSent: type: boolean description: Retrieved the status of test email sending. (true=Test email has been sent false=Test email has not been sent) toField: type: string description: Customisation of the "to" field of the campaign utmCampaignValue: type: string description: The utm_campaign value associated with the campaign. Only present if a UTM campaign value was set. utmContent: type: string description: The utm_content value associated with the campaign. Only present if a utm_content value was set on create or update. utmID: type: integer format: int64 description: The campaign ID used as utm_id parameter. Only present if UTM campaign tracking with ID is enabled. utmMedium: type: string description: The utm_medium value. Set to "EMAIL" when UTM campaign tracking is enabled. utmSource: type: string description: The utm_source value. Set to "Brevo" when UTM campaign tracking is enabled. utmTerm: type: string description: The utm_term value associated with the campaign. Only present if a utm_term value was set on create or update. recipients: $ref: '#/components/schemas/getCampaignRecipients' statistics: $ref: '#/components/schemas/getExtendedCampaignStats' required: - id - name - status - type - createdAt - footer - header - htmlContent - modifiedAt - replyTo - sender - testSent - recipients - statistics title: Email Campaigns_getEmailCampaign_Response_200 updateCampaignStatus: type: object properties: status: $ref: '#/components/schemas/UpdateCampaignStatusStatus' description: 'Note:- **replicateTemplate** status will be available **only for template type campaigns.** ' description: Status of the campaign title: updateCampaignStatus GetSharedTemplateUrlRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdSharedUrlGetResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: GetSharedTemplateUrlRequestBadRequestError EmailCampaignsPostRequestBodyContentApplicationJsonSchemaRecipients: type: object properties: exclusionListIds: type: array items: type: integer format: int64 description: List ids to exclude from the campaign exclusionSegmentIds: type: array items: type: integer format: int64 description: 'Segment ids which have to be excluded from a campaign. ' listIds: type: array items: type: integer format: int64 description: '**Mandatory if scheduledAt is not empty**. List Ids to send the campaign to ' segmentIds: type: array items: type: integer format: int64 description: '**Mandatory if listIds are not used**. Segment ids to send the campaign to. ' description: Segment ids and List ids to include/exclude from campaign title: EmailCampaignsPostRequestBodyContentApplicationJsonSchemaRecipients EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsStatus: type: string enum: - draft - sent - archive - queued - suspended - in_process - in_review - cancelling - cancelled description: Status of the campaign title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsStatus EmailCampaignsCampaignIdStatusPutResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdStatusPutResponsesContentApplicationJsonSchemaCode EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDate: type: object properties: duration: type: integer format: int64 description: Duration of the email expiry unit: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDateUnit' description: Unit of the duration description: Expiration date configuration for the email campaign, if set. Contains the duration and unit of the email expiry. title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDate EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaRecipients: type: object properties: exclusionListIds: type: array items: type: integer format: int64 description: List ids which have to be excluded from a campaign exclusionSegmentIds: type: array items: type: integer format: int64 description: 'Segment ids which have to be excluded from a campaign. ' listIds: type: array items: type: integer format: int64 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** ' segmentIds: type: array items: type: integer format: int64 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. ' description: Segment ids and List ids to include/exclude from campaign title: EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaRecipients EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsSender: type: object properties: email: type: string format: email description: Sender email of the campaign id: type: integer format: int64 description: Sender id of the campaign name: type: string description: Sender name of the campaign title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsSender Email_Campaigns_emailExportRecipients_Response_202: type: object properties: processId: type: integer format: int64 description: Id of the process created required: - processId title: Email Campaigns_emailExportRecipients_Response_202 EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaClickedLinks: type: object properties: Version A: $ref: '#/components/schemas/abTestVersionClicks' Version B: $ref: '#/components/schemas/abTestVersionClicks' required: - Version A - Version B title: EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaClickedLinks EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDateUnit: type: string enum: - days - weeks - months description: Unit of the duration title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaEmailExpirationDateUnit EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaStatistics: type: object properties: clicks: $ref: '#/components/schemas/abTestVersionStats' complaints: $ref: '#/components/schemas/abTestVersionStats' hardBounces: $ref: '#/components/schemas/abTestVersionStats' openers: $ref: '#/components/schemas/abTestVersionStats' softBounces: $ref: '#/components/schemas/abTestVersionStats' unsubscribed: $ref: '#/components/schemas/abTestVersionStats' required: - clicks - complaints - hardBounces - openers - softBounces - unsubscribed title: EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaStatistics EmailCampaignsCampaignIdGetParametersStatistics: type: string enum: - globalStats - linksStats - statsByDomain - statsByDevice - statsByBrowser title: EmailCampaignsCampaignIdGetParametersStatistics EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit: type: string enum: - days - weeks - months description: unit of the duration title: EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit UpdateCampaignStatusRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdStatusPutResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: UpdateCampaignStatusRequestNotFoundError EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDate: type: object properties: duration: type: integer format: int64 description: Duration of the email expiry unit: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDateUnit' description: Unit of the duration description: Expiration date configuration for the email campaign, if set. Contains the duration and unit of the email expiry. title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDate getCampaignRecipients: type: object properties: excludedSegments: type: array items: type: integer format: int64 description: Segment IDs excluded from the campaign exclusionLists: type: array items: type: integer format: int64 lists: type: array items: type: integer format: int64 segments: type: array items: type: integer format: int64 description: Segment IDs included in the campaign required: - exclusionLists - lists title: getCampaignRecipients errorModel: type: object properties: code: type: string description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - message title: errorModel EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDate: type: object properties: duration: type: integer format: int64 description: Duration of the email expiry. maximum duration can be 3600 days or 480 weeks or 120 months. unit: $ref: '#/components/schemas/EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit' description: unit of the duration description: To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipient’s inbox, saving storage space and energy. Learn more about setting an email expiration date. For reference , ``https://help.brevo.com/hc/en-us/articles/4413566705298-Create-an-email-campaign`` title: EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDate EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaCode EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningCriteria: type: string enum: - Open - Click description: Criteria chosen for winning version (Open/Click) title: EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaWinningCriteria GetEmailCampaignRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: GetEmailCampaignRequestNotFoundError UpdateEmailCampaignRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: UpdateEmailCampaignRequestNotFoundError postSendFailed: type: object properties: blackListedEmails: type: array items: type: string format: email code: type: string description: Response code message: type: string description: Response message unexistingEmails: type: array items: type: string format: email withoutListEmails: type: array items: type: string format: email required: - code - message title: postSendFailed SendReportEmail: type: object properties: body: type: string description: Custom text message to be presented in the report email. to: type: array items: type: string format: email description: Email addresses of the recipients required: - body - to description: Custom attributes for the report email. title: SendReportEmail sendReport: type: object properties: email: $ref: '#/components/schemas/SendReportEmail' description: Custom attributes for the report email. language: $ref: '#/components/schemas/SendReportLanguage' default: fr description: Language of email content for campaign report sending. required: - email title: sendReport EmailCampaignsCampaignIdSendNowPostResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdSendNowPostResponsesContentApplicationJsonSchemaCode SendReportRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdSendReportPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: SendReportRequestBadRequestError Email_Campaigns_createEmailCampaign_Response_201: type: object properties: id: type: integer format: int64 description: ID of the object created required: - id title: Email Campaigns_createEmailCampaign_Response_201 EmailCampaignsCampaignIdPutResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdPutResponsesContentApplicationJsonSchemaCode EmailCampaignsCampaignIdExportRecipientsPostRequestBodyContentApplicationJsonSchemaRecipientsType: type: string enum: - all - nonClickers - nonOpeners - clickers - openers - softBounces - hardBounces - unsubscribed description: Type of recipients to export for a campaign title: EmailCampaignsCampaignIdExportRecipientsPostRequestBodyContentApplicationJsonSchemaRecipientsType getCampaignStats: type: object properties: appleMppOpens: type: - integer - 'null' format: int64 description: Numbers of times your email has been opened automatically through Apple MPP. clickers: type: - integer - 'null' format: int64 description: Number of total clicks for the campaign complaints: type: - integer - 'null' format: int64 description: Number of complaints (Spam reports) for the campaign deferred: type: integer format: int64 description: Number of deferred emails for the campaign delivered: type: - integer - 'null' format: int64 description: Number of delivered emails for the campaign estimatedViews: type: integer format: int64 description: Rate of recipients without any privacy protection option enabled in their email client, applied to all delivered emails hardBounces: type: - integer - 'null' format: int64 description: Number of hard bounces for the campaign listId: type: integer format: int64 description: List Id of email campaign (only in case of get email campaign(s)(not for global stats)) opensRate: type: - string - 'null' title: float description: Percentage of recipients who open the email out of your total number of recipients. Depending on your Campaign settings, they may include Apple MPP opens. returnBounce: type: integer format: int64 description: Total number of non-delivered campaigns for a particular campaign id. sent: type: - integer - 'null' format: int64 description: Number of sent emails for the campaign softBounces: type: - integer - 'null' format: int64 description: Number of softbounce for the campaign trackableViews: type: - integer - 'null' format: int64 description: Recipients without any privacy protection option enabled in their email email client trackableViewsRate: type: string title: float description: Rate of recipients without any privacy protection option enabled in their email client uniqueClicks: type: - integer - 'null' format: int64 description: Number of unique clicks for the campaign uniqueViews: type: - integer - 'null' format: int64 description: Number of unique openings for the campaign unsubscriptions: type: - integer - 'null' format: int64 description: Number of unsubscription for the campaign viewed: type: - integer - 'null' format: int64 description: Number of openings for the campaign required: - appleMppOpens - clickers - complaints - delivered - hardBounces - opensRate - sent - softBounces - trackableViews - uniqueClicks - uniqueViews - unsubscriptions - viewed title: getCampaignStats EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaSender: type: object properties: email: type: string format: email description: Sender email of the campaign id: type: integer format: int64 description: Sender id of the campaign name: type: string description: Sender name of the campaign title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaSender CreateEmailCampaignRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: CreateEmailCampaignRequestBadRequestError EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaStatus: type: string enum: - draft - sent - archive - queued - suspended - in_process - in_review - cancelling - cancelled description: Status of the campaign title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaStatus EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaType: type: string enum: - classic - trigger description: Type of campaign title: EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaType DeleteEmailCampaignRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdDeleteResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: DeleteEmailCampaignRequestBadRequestError EmailExportRecipientsRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdExportRecipientsPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: EmailExportRecipientsRequestNotFoundError EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit: type: string enum: - days - weeks - months description: unit of the duration title: EmailCampaignsPostRequestBodyContentApplicationJsonSchemaEmailExpirationDateUnit SendReportLanguage: type: string enum: - fr - es - pt - it - de - en default: fr description: Language of email content for campaign report sending. title: SendReportLanguage Email_Campaigns_getEmailCampaigns_Response_200: type: object properties: campaigns: type: array items: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItems' count: type: integer format: int64 description: Number of Email campaigns retrieved title: Email Campaigns_getEmailCampaigns_Response_200 getDeviceBrowserStats: type: object properties: clickers: type: integer format: int64 description: Number of total clicks for the campaign using the particular browser uniqueClicks: type: integer format: int64 description: Number of unique clicks for the campaign using the particular browser uniqueViews: type: integer format: int64 description: Number of unique openings for the campaign using the particular browser viewed: type: integer format: int64 description: Number of openings for the campaign using the particular browser required: - clickers - uniqueClicks - uniqueViews - viewed title: getDeviceBrowserStats abTestVersionClicks: type: array items: $ref: '#/components/schemas/AbTestVersionClicksItems' description: Information on clicked links for a particular version title: abTestVersionClicks EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaWinnerCriteria: type: string enum: - open - click description: 'Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed ' title: EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaWinnerCriteria EmailCampaignsPostRequestBodyContentApplicationJsonSchemaSender: type: object properties: email: type: string format: email description: 'Sender email. Must be a valid email address. Cannot be used together with `id` in the same request. ' id: type: integer format: int64 description: 'Select the sender for the campaign on the basis of sender id. Cannot be used together with `email` in the same request. _In order to select a sender with a specific pool of IPs, dedicated IP users shall pass id (instead of email)._ ' name: type: string description: Sender Name 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. Passing both `email` and `id` will result in an error. For example: **{"name":"xyz", "email":"example@abc.com"}** or **{"name":"xyz", "id":123}** ' title: EmailCampaignsPostRequestBodyContentApplicationJsonSchemaSender SendEmailCampaignNowRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdSendNowPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: SendEmailCampaignNowRequestNotFoundError EmailCampaignsImagesPostResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsImagesPostResponsesContentApplicationJsonSchemaCode abTestVersionStats: type: object properties: Version A: type: string description: percentage of an event for version A Version B: type: string description: percentage of an event for version B required: - Version A - Version B description: Percentage of a particular event for both versions title: abTestVersionStats EmailCampaignsCampaignIdSharedUrlGetResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdSharedUrlGetResponsesContentApplicationJsonSchemaCode EmailCampaignsGetParametersStatus: type: string enum: - suspended - archive - sent - queued - draft - inProcess - inReview - cancelling - cancelled title: EmailCampaignsGetParametersStatus Email_Campaigns_uploadImageToGallery_Response_201: type: object properties: url: type: string description: URL of the image uploaded title: Email Campaigns_uploadImageToGallery_Response_201 GetEmailCampaignsRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: GetEmailCampaignsRequestBadRequestError UploadImageToGalleryRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsImagesPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: UploadImageToGalleryRequestBadRequestError EmailCampaignsPostRequestBodyContentApplicationJsonSchemaWinnerCriteria: type: string enum: - open - click description: 'Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed ' title: EmailCampaignsPostRequestBodyContentApplicationJsonSchemaWinnerCriteria getExtendedCampaignStats: type: object properties: campaignStats: type: array items: $ref: '#/components/schemas/getCampaignStats' description: List-wise statistics of the campaign. globalStats: $ref: '#/components/schemas/getCampaignStats' description: Overall statistics of the campaign linksStats: type: object additionalProperties: type: integer format: int64 description: Statistics about the number of clicks for each link in the campaign. Keys are the link URLs, values are click counts. Only populated when the `statistics` query parameter is set to `linksStats`. mirrorClick: type: integer format: int64 description: Number of clicks on mirror link remaining: type: integer format: int64 description: Number of remaining emails to send statsByBrowser: type: object additionalProperties: $ref: '#/components/schemas/getDeviceBrowserStats' description: Statistics of the campaign grouped by browser. Only available when retrieving a single campaign with the `statistics` query parameter set to `statsByBrowser`. statsByDevice: $ref: '#/components/schemas/GetExtendedCampaignStatsStatsByDevice' statsByDomain: type: object additionalProperties: $ref: '#/components/schemas/getCampaignStats' description: Statistics of the campaign grouped by email domain. Only populated when the `statistics` query parameter is set to `statsByDomain`. required: - campaignStats - globalStats - linksStats - mirrorClick - remaining title: getExtendedCampaignStats EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaSender: type: object properties: email: type: string format: email description: Sender email from which the campaign emails are sent id: type: integer format: int64 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)**. ' name: type: string description: Sender Name 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: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}** ' title: EmailCampaignsCampaignIdPutRequestBodyContentApplicationJsonSchemaSender EmailCampaignsGetParametersType: type: string enum: - classic - trigger title: EmailCampaignsGetParametersType EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItems: type: object properties: attachmentFile: type: string description: Url of the attachment file. Only available if the campaign has an attachment. abTesting: type: boolean description: Status of A/B Test for the campaign. abTesting = false means it is disabled, & abTesting = true means it is enabled. id: type: integer format: int64 description: ID of the campaign name: type: string description: Name of the campaign previewText: type: string description: Preview text or preheader of the email campaign scheduledAt: type: string description: UTC date-time on which campaign is scheduled (YYYY-MM-DDTHH:mm:ss.SSSZ) sendAtBestTime: type: boolean description: It is true if you have chosen to send your campaign at best time, otherwise it is false splitRule: type: integer description: The size of your ab-test groups. Only available if `abTesting` flag of the campaign is `true` status: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsStatus' description: Status of the campaign subject: type: string description: Subject of the campaign. Only available if `abTesting` flag of the campaign is `false` subjectA: type: string description: Subject A of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` subjectB: type: string description: Subject B of the ab-test campaign. Only available if `abTesting` flag of the campaign is `true` type: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsType' description: Type of campaign winnerCriteria: type: string description: Criteria for the winning version. Only available if `abTesting` flag of the campaign is `true` winnerDelay: type: integer 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` attachmentUrl: type: string description: URL of the attachment file associated with the campaign. Empty string if no attachment is present. createdAt: type: string description: Creation UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) emailExpirationDate: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsEmailExpirationDate' description: Expiration date configuration for the email campaign, if set. Contains the duration and unit of the email expiry. footer: type: string description: Footer of the campaign header: type: string description: Header of the campaign htmlContent: type: string description: HTML content of the campaign inlineImageActivation: type: boolean description: Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email. mirrorActive: type: boolean description: Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign modifiedAt: type: string description: UTC date-time of last modification of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ) recurring: type: boolean 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 replyTo: type: string format: email description: Email defined as the "Reply to" of the campaign returnBounce: type: integer format: int64 description: Total number of non-delivered campaigns for a particular campaign id. sender: $ref: '#/components/schemas/EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItemsSender' sentDate: type: string description: Sent UTC date-time of the campaign (YYYY-MM-DDTHH:mm:ss.SSSZ). Only available if 'status' of the campaign is 'sent' shareLink: type: string format: url description: Link to share the campaign on social medias tag: type: string description: Tag of the campaign tags: type: array items: type: string description: List of tags of the campaign testSent: type: boolean description: Retrieved the status of test email sending. (true=Test email has been sent false=Test email has not been sent) toField: type: string description: Customisation of the "to" field of the campaign utmCampaignValue: type: string description: The utm_campaign value associated with the campaign. Only present if a UTM campaign value was set. utmContent: type: string description: The utm_content value associated with the campaign. Only present if a utm_content value was set on create or update. utmID: type: integer format: int64 description: The campaign ID used as utm_id parameter. Only present if UTM campaign tracking with ID is enabled. utmMedium: type: string description: The utm_medium value. Set to "EMAIL" when UTM campaign tracking is enabled. utmSource: type: string description: The utm_source value. Set to "Brevo" when UTM campaign tracking is enabled. utmTerm: type: string description: The utm_term value associated with the campaign. Only present if a utm_term value was set on create or update. recipients: $ref: '#/components/schemas/getCampaignRecipients' statistics: $ref: '#/components/schemas/getExtendedCampaignStats' required: - id - name - status - type - createdAt - footer - header - htmlContent - modifiedAt - replyTo - sender - testSent - recipients - statistics title: EmailCampaignsGetResponsesContentApplicationJsonSchemaCampaignsItems sendTestEmail: type: object properties: emailTo: type: array items: type: string format: email description: 'List of the email addresses of the recipients whom you wish to send the test mail. _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_. ' title: sendTestEmail UpdateCampaignStatusStatus: type: string enum: - suspended - archive - darchive - sent - queued - replicate - replicateTemplate - cancel - draft description: 'Note:- **replicateTemplate** status will be available **only for template type campaigns.** ' title: UpdateCampaignStatusStatus UpdateEmailCampaignRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdPutResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: UpdateEmailCampaignRequestBadRequestError SendReportRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdSendReportPostResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: SendReportRequestNotFoundError GetExtendedCampaignStatsStatsByDevice: type: object properties: desktop: type: object additionalProperties: $ref: '#/components/schemas/getDeviceBrowserStats' description: Statistics of the campaign on the basis of desktop devices mobile: type: object additionalProperties: $ref: '#/components/schemas/getDeviceBrowserStats' description: Statistics of the campaign on the basis of mobile devices tablet: type: object additionalProperties: $ref: '#/components/schemas/getDeviceBrowserStats' description: Statistics of the campaign on the basis of tablet devices unknown: type: object additionalProperties: $ref: '#/components/schemas/getDeviceBrowserStats' description: Statistics of the campaign on the basis of unknown devices title: GetExtendedCampaignStatsStatsByDevice DeleteEmailCampaignRequestNotFoundError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdDeleteResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: DeleteEmailCampaignRequestNotFoundError EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaCode: type: string enum: - invalid_parameter - missing_parameter - out_of_range - campaign_processing - campaign_sent - document_not_found - not_enough_credits - permission_denied - duplicate_parameter - duplicate_request - method_not_allowed - unauthorized - account_under_validation - not_acceptable - bad_request - unprocessable_entity - Domain does not exist - Contact email not found - Attribute not found - Category id not found - Invalid parameters passed - Record(s) for identifier not found - Returned when query params are invalid - Returned when invalid data posted - Feed not found - Campaign ID not found - api-key not found - DMARC policy requires domain authentication - DNS records not properly configured - Invalid OTP code provided - OTP code has expired - Domain already exists in your account - The sum of all IP weights must equal 100 - Authentication failed - Insufficient credits - Request already processed description: Error code displayed in case of a failure title: EmailCampaignsCampaignIdAbTestCampaignResultGetResponsesContentApplicationJsonSchemaCode EmailCampaignsGetParametersStatistics: type: string enum: - globalStats - linksStats - statsByDomain title: EmailCampaignsGetParametersStatistics GetEmailCampaignRequestBadRequestError: type: object properties: code: $ref: '#/components/schemas/EmailCampaignsCampaignIdGetResponsesContentApplicationJsonSchemaCode' description: Error code displayed in case of a failure message: type: string description: Readable message associated to the failure required: - code - message title: GetEmailCampaignRequestBadRequestError securitySchemes: api-key: type: apiKey in: header name: api-key description: The API key should be passed in the request headers as `api-key` for authentication.