Explorer — Brevo-compatible API

All 74 operations of the Brevo-compatible API, grouped like Brevo's own reference. Each entry shows the parameters, the expected body and the responses; with your key you can send the request from this page and copy a ready-to-run sample (cURL, Node, PHP, Python).

Note

Same paths, same JSON bodies and same error codes as https://api.brevo.com/v3: only replace the base URL with https://<site-domain>/api/brevo/v3 and use a key issued by Inklura. Getting started guide.

74 operations · Download the OpenAPI specification

Your site & API keyKept in your browser; the key is forgotten when the tab closes unless you tick "Remember".
How do I get a key?
74 operations

Transactional emails 22

DELETE/smtp/blockedContacts/{email}Unblock or resubscribe a transactional contact
delete/smtp/blockedContacts/{email}api-key

Unblock or resubscribe a transactional contact by removing their email address from the blacklist. The email address must be URL-encoded in the path parameter and must be a valid email format. If the contact is not found in the blocklist, a 404 error is returned.

Parameters
emailstring · pathrequired
contact email (urlencoded) to unblock.
Request body
No body.
Responses
204 Contact unblocked400 bad request404 bad request
Try it
GET/smtp/blockedContactsGet the list of blocked or unsubscribed transactional contacts
getTransacBlockedContactsapi-key

Retrieve a paginated list of transactional contacts that have been blocked or unsubscribed, along with the reason for blocking (e.g. hard bounce, admin blocked, spam complaint, or unsubscription via email/API/Marketing Automation). Both startDate and endDate must be provided together when filtering by date range, and neither date can be in the future. Results default to 50 per page (max 100) and are sorted in descending order of record creation unless overridden with the sort parameter.

Parameters
startDatestring · queryoptional
Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts
endDatestring · queryoptional
Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts
limitinteger · int64 · queryoptional
Number of documents returned per page
offsetinteger · int64 · queryoptional
Index of the first document on the page
sendersstring[] · queryoptional
Comma separated list of emails of the senders from which contacts are blocked or unsubscribed
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 List of blocked or unsubscribed transactional contacts400 bad request
contactsobject[]optional
6 fields
blockedAtstringrequired
Date when the contact was blocked or unsubscribed on
emailstring · emailrequired
Email address of the blocked or unsubscribed contact
reasonobjectrequired
Reason for blocking / unsubscribing
2 fields
codeenumoptional
Reason code for blocking / unsubscribing (This code is safe for comparison)
"unsubscribedViaMA" "unsubscribedViaEmail" "adminBlocked" "unsubscribedViaApi" "hardBounce" "contactFlaggedAsSpam"
messagestringoptional
Reason for blocking / unsubscribing (This string is not safe for comparison)
senderEmailstring · emailrequired
Sender email address of the blocked or unsubscribed contact
countinteger · int64optional
Count of blocked or unsubscribed contact
Try it
DELETE/smtp/blockedDomains/{domain}Unblock an existing domain from the list of blocked domains
deleteBlockedDomainapi-key

Unblocks an existing domain from the list of blocked domains

Parameters
domainstring · pathrequired
The name of the domain to be deleted
Request body
No body.
Responses
204 Domain is successfully deleted from the list of blocked domains400 bad request404 Domain not found
Try it
GET/smtp/blockedDomainsGet the list of blocked domains
getBlockedDomainsapi-key
Request body
No body.
Responses
200 List of blocked domains400 bad request
domainsstring[]required
List of all blocked domains
Try it
POST/smtp/blockedDomainsAdd a new domain to the list of blocked domains
blockNewDomainapi-key

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

Request body
domainstringrequired
name of the domain to be blocked
Responses
201 Domain is successfully blocked400 bad request
Try it
POST/smtp/deleteHardbouncesDelete hardbounces
deleteHardbouncesapi-key

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

Request body
contactEmailstring · emailoptional
Target a specific email address
endDatestringoptional
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
startDatestringoptional
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
Responses
200 No matching hardbounces found for the given filters. The request was processed successfully but no records were deleted.204 Hardbounces deleted successfully400 bad request
Try it
DELETE/smtp/email/{identifier}Delete scheduled emails by batchId or messageId
deleteScheduledEmailByIdapi-key

Delete scheduled batch of emails by batchId or single scheduled email by messageId

Parameters
identifierstring · pathrequired
The batchId of scheduled emails batch (must be a valid UUIDv4) or the messageId of scheduled email (enclosed in angle brackets with @ sign, e.g. <...@domain>).
Request body
No body.
Responses
204 Scheduled email(s) deleted400 bad request404 bad request
Try it
POST/smtp/emailSend a transactional email
sendTransacEmailapi-key

Send a transactional email to one or more recipients, either using inline HTML content or a pre-built template via templateId. You can schedule emails for future delivery using scheduledAt (UTC, up to 5-minute delay), send multiple personalized versions with messageVersions (max 2000 total recipients, 99 per version), and attach files via URL or base64-encoded content. A sender and subject are required when no templateId is provided; when a templateId is used, the template''s sender and subject are applied unless overridden.

Request body
attachmentobject[]optional
Array of attachment objects. Each attachment must include either an absolute URL (no local file paths) or base64-encoded content, along with the attachment filename. The name field is required when content is provided. Supported file extensions: 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, xlsm. When templateId is specified: if the template uses the New Template Language format, both url and content attachment types are supported; if the template uses the Old Template Language format, the attachment parameter is ignored.
3 fields
contentstring · byteoptional
Base64-encoded attachment data
namestringoptional
Attachment filename. Required when content is provided.
urlstring · urloptional
Absolute URL of the attachment. Local file paths are not supported.
batchIdstringoptional
UUIDv4 identifier for the scheduled batch of transactional emails. If omitted, a valid UUIDv4 batch identifier is automatically generated.
bccobject[]optional
Array of BCC recipient objects. Each object contains an email address and an optional name.
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient in bcc for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
BCC recipient email address
namestringoptional
Display name of the BCC recipient. Maximum length is 70 characters.
ccobject[]optional
Array of CC recipient objects. Each object contains an email address and an optional name.
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient in cc for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
CC recipient email address
namestringoptional
Display name of the CC recipient. Maximum length is 70 characters.
headersobjectoptional
Custom email headers (non-standard headers) to include in the email. The sender.ip header can be set to specify the IP address used for sending transactional emails (dedicated IP users only). Header names must use Title-Case-Format (words separated by hyphens with the first letter of each word capitalized). Headers not in this format are automatically converted. Standard email headers are not supported. Example: {"sender.ip":"1.2.3.4", "X-Mailin-custom":"some_custom_value", "Idempotency-Key":"abc-123"}
htmlContentstringoptional
HTML body content of the email. Required when templateId is not provided. Ignored when templateId is provided.
messageVersionsobject[]optional
Array of message version objects for sending customized email variants. The templateId can be customized per version only if a global templateId is provided. The htmlContent and textContent can be customized per version only if at least one of these is present in the global parameters. Global parameters such as to (required), bcc, cc, replyTo, and subject can be customized per version. Maximum total recipients per API request is 2000. Maximum recipients per message version is 99. Individual params objects must not exceed 100 KB. Cumulative params across all versions must not exceed 1000 KB. See https://developers.brevo.com/docs/batch-send-transactional-emails for detailed usage instructions.
19 fields
bccobject[]optional
Array of BCC recipient objects. Each object contains an email address and an optional name.
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient in bcc for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
BCC recipient email address
namestringoptional
Display name of the BCC recipient. Maximum length is 70 characters.
ccobject[]optional
Array of CC recipient objects. Each object contains an email address and an optional name.
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient in cc for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
CC recipient email address
namestringoptional
Display name of the CC recipient. Maximum length is 70 characters.
htmlContentstringoptional
HTML body content of the email. Required when templateId is not provided. Ignored when templateId is provided.
paramsobjectoptional
Key-value pairs for template variable substitution. Only applicable when the template uses the New Template Language format.
replyToobjectoptional
Reply-to email address (required) and optional display name. Recipients will use this address when replying to the email.
2 fields
emailstring · emailrequired
Email address in reply to
namestringoptional
Display name for the reply-to address. Maximum length is 70 characters.
subjectstringoptional
Email subject line for this message version
textContentstringoptional
Plain text body content of the email. Ignored when templateId is provided.
toobject[]required
Array of recipient objects. Each object contains an email address and an optional display name.
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
Email address of the recipient
namestringoptional
Display name of the recipient. Maximum length is 70 characters.
paramsobjectoptional
Key-value pairs for template variable substitution. Only applicable when the template uses the New Template Language format.
replyToobjectoptional
Reply-to email address (required) and optional display name. Recipients will use this address when replying to the email.
2 fields
emailstring · emailrequired
Email address in reply to
namestringoptional
Display name for the reply-to address. Maximum length is 70 characters.
scheduledAtstring · date-timeoptional
UTC date-time when the email should be sent (format: YYYY-MM-DDTHH:mm:ss.SSSZ). Include timezone information in the date-time value. Scheduled emails may be delayed by up to 5 minutes.
senderobjectoptional
Sender information. Required when templateId is not provided. Specify either an email address (with optional name) or a sender ID. The name field is ignored when id is provided.
3 fields
emailstring · emailoptional
Sender email address. Required when id is not provided.
idinteger · int64optional
Sender identifier. Required when email is not provided. Use this field to select a sender with a specific IP pool (dedicated IP users only).
namestringoptional
Display name of the sender. Maximum length is 70 characters. Only applicable when email is provided.
subjectstringoptional
Email subject line. Required when templateId is not provided.
tagsstring[]optional
Array of tags for categorizing and filtering emails
templateIdinteger · int64optional
Template identifier
textContentstringoptional
Plain text body content of the email. Ignored when templateId is provided.
toobject[]optional
Array of recipient objects. Each object contains an email address and an optional display name. Required when messageVersions is not provided. Ignored when messageVersions is provided. Example: [{"name":"Jimmy", "email":"jimmy@example.com"}, {"name":"Joe", "email":"joe@example.com"}]
3 fields
contactPixelTrackingConsentbooleanoptional
Consent of the recipient for open (pixel) and click tracking, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
Email address of the recipient
namestringoptional
Display name of the recipient. Maximum length is 70 characters.
Responses
201 Transactional email sent successfully202 Transactional email scheduled successfully400 bad request
messageIdstringoptional
Message ID of the transactional email sent
messageIdsstring[]optional
Try it
GET/smtp/emails/{uuid}Get the personalized content of a sent transactional email
getTransacEmailContentapi-key

<Note title="How to get uuid">You can get the uuid using either of the following methods: Send a GET request to https://api.brevo.com/v3/smtp/emails and pass the message_id in the url. Use your api-key to authenticate the request and you will get your uuid as a response. The uuid can also be fetched from the transactional logs page in your Brevo account, from the address URL.</Note>

Parameters
uuidstring · pathrequired
Unique id of the transactional email that has been sent to a particular contact
Request body
No body.
Responses
200 Transactional email content400 bad request404 bad request
attachmentCountinteger · int64optional
Count of the attachments that were sent in the email
bodystringoptional
Actual content of the transactional email that has been sent
datestringrequired
Date on which transactional email was sent
emailstring · emailrequired
Email address to which transactional email has been sent
eventsobject[]required
Series of events which occurred on the transactional email
2 fields
namestringrequired
Name of the event that occurred on the sent email
timestringrequired
Time at which the event occurred
subjectstringrequired
Subject of the sent email
templateIdinteger · int64optional
Id of the template
Try it
GET/smtp/emailsGet the list of transactional emails on the basis of allowed filters
getTransacEmailsListapi-key

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.

Parameters
emailstring · queryoptional
Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent.
templateIdinteger · int64 · queryoptional
Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email.
messageIdstring · queryoptional
Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent.
startDatestring · queryoptional
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.
endDatestring · queryoptional
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.
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
limitinteger · int64 · queryoptional
Number of documents returned per page
offsetinteger · int64 · queryoptional
Index of the first document in the page
Request body
No body.
Responses
200 List of transactional emails400 bad request
countinteger · int64optional
Total number of transactional emails available on your account according to the passed filter
transactionalEmailsobject[]optional
8 fields
datestringrequired
Date on which transactional email was sent
emailstring · emailrequired
Email address to which transactional email has been sent
fromstring · emailoptional
Email address of the sender from which the email was sent
messageIdstringrequired
Message Id of the sent email
subjectstringrequired
Subject of the sent email
tagsstring[]optional
Tags used for your email
templateIdinteger · int64optional
Id of the template
uuidstringrequired
Unique id of the email sent to a particular contact
Try it
GET/smtp/emailStatus/{identifier}Fetch scheduled emails by batchId or messageId
getScheduledEmailByIdapi-key

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

Parameters
identifierstring · pathrequired
The batchId of scheduled emails batch (must be a valid UUIDv4) or the messageId of scheduled email (enclosed in angle brackets with @ sign, e.g. <...@domain>). When using messageId, the limit, offset, sort, and status query parameters are ignored.
startDatestring · date · queryoptional
Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Cannot be more than 30 days older than the current date.
endDatestring · date · queryoptional
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.
sortenum · queryoptional
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.
statusenum · queryoptional
Filter the records by status of the scheduled email batch or message. Not valid when identifier is messageId.
limitinteger · int64 · queryoptional
Number of documents returned per page. Not valid when identifier is messageId.
offsetinteger · int64 · queryoptional
Index of the first document on the page. Not valid when identifier is messageId.
Request body
No body.
Responses
200 Scheduled email batches400 bad request404 bad request
Try it
DELETE/smtp/log/{identifier}Delete an SMTP transactional log
delete/smtp/log/{identifier}api-key

Delete SMTP transactional log entries identified by a message ID (enclosed in angle brackets with an @ sign) or a valid email address. Optionally narrow the deletion to a specific date range using from_date and to_date query parameters (YYYY-MM-DD format). The operation also removes any associated stored email preview content.

Parameters
identifierstring · pathrequired
MessageId or email address of the transactional log(s) to delete. Must be a valid message ID (enclosed in angle brackets with @ sign) or a valid email address.
from_datestring · queryoptional
Starting date (YYYY-MM-DD) to narrow down logs for deletion
to_datestring · queryoptional
Ending date (YYYY-MM-DD) to narrow down logs for deletion
Request body
No body.
Responses
204 Transactional Logs deleted400 bad request404 Message ID not found
Try it
GET/smtp/statistics/aggregatedReportGet your transactional email activity aggregated over a period of time
getAggregatedSmtpReportapi-key

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

Parameters
startDatestring · queryoptional
Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
endDatestring · queryoptional
Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
daysinteger · int64 · queryoptional
Number of days in the past including today (positive integer, maximum 90). _Not compatible with 'startDate' and 'endDate'_. Defaults to 90 if neither dates nor days are provided.
tagstring · queryoptional
Tag of the emails
Request body
No body.
Responses
200 Aggregated report informations400 bad request
blockedinteger · int64optional
Number of blocked contact emails for the timeframe
clicksinteger · int64optional
Number of clicks for the timeframe
deliveredinteger · int64optional
Number of delivered emails for the timeframe
hardBouncesinteger · int64optional
Number of hardbounces for the timeframe
invalidinteger · int64optional
Number of invalid emails for the timeframe
opensinteger · int64optional
Number of openings for the timeframe
rangestringoptional
Time frame of the report
requestsinteger · int64optional
Number of requests for the timeframe
softBouncesinteger · int64optional
Number of softbounces for the timeframe
spamReportsinteger · int64optional
Number of complaint (spam report) for the timeframe
uniqueClicksinteger · int64optional
Number of unique clicks for the timeframe
uniqueOpensinteger · int64optional
Number of unique openings for the timeframe
unsubscribedinteger · int64optional
Number of unsubscribed emails for the timeframe
Try it
GET/smtp/statistics/eventsGet all your transactional email activity (unaggregated events)
getEmailEventReportapi-key

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

Parameters
limitinteger · int64 · queryoptional
Number limitation for the result returned
offsetinteger · int64 · queryoptional
Beginning point in the list to retrieve from.
startDatestring · queryoptional
Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
endDatestring · queryoptional
Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
daysinteger · int64 · queryoptional
Number of days in the past including today (positive integer, maximum 90). _Not compatible with 'startDate' and 'endDate'_. Defaults to 30 if neither dates nor days are provided.
emailstring · email · queryoptional
Filter the report for a specific email addresses
eventenum · queryoptional
Filter the report for a specific event type
tagsstring · queryoptional
Filter the report for tags (serialized and urlencoded array)
messageIdstring · queryoptional
Filter on a specific message id
templateIdinteger · int64 · queryoptional
Filter on a specific template id
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Email events report informations400 bad request
eventsobject[]optional
11 fields
datestringrequired
UTC date-time on which the event has been generated
emailstring · emailrequired
Email address which generates the event
eventenumrequired
Event which occurred
"bounces" "hardBounces" "softBounces" "delivered" "spam" "requests" "opened" "clicks" "invalid" "deferred" …
fromstring · emailoptional
Sender email from which the emails are sent
ipstringoptional
IP from which the user has opened the email or clicked on the link (only available if the event is opened or clicks)
linkstringoptional
The link which is sent to the user (only available if the event is requests or opened or clicks)
messageIdstringrequired
Message ID which generated the event
reasonstringoptional
Reason of bounce (only available if the event is hardbounce or softbounce)
subjectstringoptional
Subject of the event
tagstringoptional
Tag of the email which generated the event
templateIdinteger · int64optional
ID of the template (only available if the email is template based)
Try it
GET/smtp/statistics/reportsGet your transactional email activity aggregated per day
getSmtpReportapi-key

This endpoint will show the aggregated stats per day for the past 10 days by default if startDate and endDate OR days is not passed. The date range can not exceed 30 days.

Parameters
limitinteger · int64 · queryoptional
Number of documents returned per page
offsetinteger · int64 · queryoptional
Index of the first document on the page
startDatestring · queryoptional
Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD)
endDatestring · queryoptional
Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD)
daysinteger · int64 · queryoptional
Number of days in the past including today (positive integer, maximum 30). _Not compatible with 'startDate' and 'endDate'_
tagstring · queryoptional
Tag of the emails
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Aggregated report informations400 bad request
reportsobject[]optional
13 fields
blockedinteger · int64required
Number of blocked emails for the date
clicksinteger · int64required
Number of clicks for the date
datestring · daterequired
Date of the statistics
deliveredinteger · int64required
Number of delivered emails for the date
hardBouncesinteger · int64required
Number of hardbounces for the date
invalidinteger · int64required
Number of invalid emails for the date
opensinteger · int64required
Number of openings for the date
requestsinteger · int64required
Number of requests for the date
softBouncesinteger · int64required
Number of softbounces for the date
spamReportsinteger · int64required
Number of complaints (spam reports) for the date
uniqueClicksinteger · int64required
Number of unique clicks for the date
uniqueOpensinteger · int64required
Number of unique openings for the date
unsubscribedinteger · int64required
Number of unsubscribed emails for the date
Try it
POST/smtp/template/previewGenerate the rendered preview of transactional template
postPreviewSmtpEmailTemplatesapi-key

Generate a fully rendered preview of a transactional email template by resolving dynamic variables. Provide either an email address (to populate variables from the contact''s attributes) or a params object with key-value pairs for manual substitution; at least one of these is required alongside the mandatory templateId. The response includes the rendered HTML, subject, sender details, preview text, and any feed names used in the template.

Request body
emailstringoptional
Email of the contact.(Required if params not provided)
paramsobjectoptional
Key-value pairs of dynamic parameters for template rendering.(Required if email not provided) For example: {"Firstname":"John", "Lastname":"Doe"}
2 fields
Firstnamestringoptional
firstname of the contact. Dynamic parameter
Lastnamestringoptional
Lastname of the contact. Dynamic parameter
templateIdintegerrequired
Id of the template.
Responses
200 successfully fetched template's preview fields400 bad request
fromEmailstringoptional
Sender email address
fromNamestringoptional
Sender Name
htmlstringoptional
Html content of the template
previewTextstringoptional
Preview text of the template
subjectstringoptional
subject of the template
usedFeedNamesstring[]optional
Try it
POST/smtp/templates/{templateId}/sendTestSend a template to your test list
sendTestTemplateapi-key

Send a test email of the specified transactional template to one or more recipients. Provide an array of email addresses in the emailTo field; if left empty, the test mail is sent to your entire test list. You can send a maximum of 50 test emails per day, and all provided email addresses must be valid.

Parameters
templateIdinteger · int64 · pathrequired
Id of the template
Request body
emailTostring · email[]optional
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_.
Responses
204 Test email has been sent successfully to all recipients400 Test email could not be sent to the following email addresses404 Template ID not found
Try it
DELETE/smtp/templates/{templateId}Delete an inactive email template
deleteSmtpTemplateapi-key

Permanently delete a transactional email template by its numeric ID. Only inactive templates can be deleted; attempting to delete an active template returns a 405 error. To deactivate a template before deletion, use PUT /smtp/templates/{templateId} with isActive set to false. Deletion also removes associated newsletter template data and triggers asynchronous cleanup of shared assets.

Parameters
templateIdinteger · int64 · pathrequired
id of the template
Request body
No body.
Responses
204 Inactive transactional email template has been deleted400 bad request404 Template ID not found
Try it
GET/smtp/templates/{templateId}Returns the template information
getSmtpTemplateapi-key

Retrieve the full details of a specific transactional email template by its numeric ID or custom template identifier string. The response includes the template name, subject, sender information, HTML content, active status, creation and modification timestamps, reply-to address, tag, and a doiTemplate flag indicating whether the template is a double opt-in template (detected by the presence of optin-related tags or variables in the content).

Parameters
templateIdinteger · int64 | string · pathrequired
ID of the template. Can be a numeric template ID or a custom template identifier string (alphanumeric, hyphens, and underscores only, max 64 characters, must start with a letter).
Request body
No body.
Responses
200 Email template informations400 bad request404 Template ID not found
createdAtstringrequired
Creation UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)
doiTemplatebooleanoptional
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.
htmlContentstringrequired
HTML content of the template
idinteger · int64required
ID of the template
isActivebooleanrequired
Status of template (true=active, false=inactive)
modifiedAtstringrequired
Last modification UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)
namestringrequired
Name of the template
replyTostring · emailrequired
Email defined as the "Reply to" for the template
senderobjectrequired
3 fields
emailstring · emailoptional
From email for the template
idstringoptional
Sender id of the template
namestringoptional
Sender name for the template
subjectstringrequired
Subject of the template
tagstringrequired
Tag of the template
testSentbooleanrequired
Status of test sending for the template (true=test email has been sent, false=test email has not been sent)
toFieldstringrequired
Customisation of the "to" field for the template
customTemplateIdstringoptional
Custom template identifier, if one was assigned during template creation. Only present when the template has a custom ID.
Try it
PUT/smtp/templates/{templateId}Update an email template
updateSmtpTemplateapi-key

Update an existing transactional email template by its numeric ID or custom template identifier string. All fields in the request body are optional; only the provided fields will be updated. You can update the template name, subject, sender, reply-to address, HTML content (via htmlContent or htmlUrl), active status, tag, attachment URL, and the personalized toField. Only one of sender email or sender ID should be provided per request.

Parameters
templateIdinteger · int64 | string · pathrequired
ID of the template. Can be a numeric template ID or a custom template identifier string.
Request body
attachmentUrlstring · urloptional
Absolute url of the attachment (no local file). Extensions 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
htmlContentstringoptional
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)
htmlUrlstring · urloptional
Required if htmlContent is empty. URL to the body of the email (HTML)
isActivebooleanoptional
Status of the template. isActive = false means template is inactive, isActive = true means template is active
replyTostring · emailoptional
Email on which campaign recipients will be able to reply to
senderobjectoptional
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}
3 fields
emailstring · emailoptional
Email of the sender
idinteger · int64optional
Select the sender for the template 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)_.
namestringoptional
Name of the sender
subjectstringoptional
Subject of the email
tagstringoptional
Tag of the template
templateNamestringoptional
Name of the template
toFieldstringoptional
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
Responses
204 transactional email template updated400 bad request404 Template ID not found
Try it
GET/smtp/templatesGet the list of email templates
getSmtpTemplatesapi-key

Retrieve a paginated list of all transactional email templates (including automation templates) with their details such as name, subject, sender, status, HTML content, and timestamps. Results default to 50 per page (max 1000) and are sorted in descending creation order unless overridden. You can filter by active/inactive status using templateStatus and by editor type using editorType (currently only richTextEditor is supported).

Parameters
templateStatusboolean · queryoptional
Filter on the status of the template. Active = true, inactive = false
limitinteger · int64 · queryoptional
Number of documents returned per page
offsetinteger · int64 · queryoptional
Index of the first document in the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
editorTypeenum · queryoptional
Filter on the editor type used to create the template. Currently only richTextEditor is supported as a filter value.
Request body
No body.
Responses
200 transactional email templates informations400 bad request
countinteger · int64optional
Count of transactional email templates
templatesobject[]optional
17 fields
createdAtstringrequired
Creation UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)
doiTemplatebooleanoptional
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.
htmlContentstringrequired
HTML content of the template
idinteger · int64required
ID of the template
isActivebooleanrequired
Status of template (true=active, false=inactive)
modifiedAtstringrequired
Last modification UTC date-time of the template (YYYY-MM-DDTHH:mm:ss.SSSZ)
namestringrequired
Name of the template
replyTostring · emailrequired
Email defined as the "Reply to" for the template
senderobjectrequired
3 fields
emailstring · emailoptional
From email for the template
idstringoptional
Sender id of the template
namestringoptional
Sender name for the template
subjectstringrequired
Subject of the template
tagstringrequired
Tag of the template
testSentbooleanrequired
Status of test sending for the template (true=test email has been sent, false=test email has not been sent)
toFieldstringrequired
Customisation of the "to" field for the template
customTemplateIdstringoptional
Custom template identifier, if one was assigned during template creation. Only present when the template has a custom ID.
Try it
POST/smtp/templatesCreate an email template
createSmtpTemplateapi-key

Create a new transactional email template with the specified sender, subject, and content. The sender, subject, and templateName fields are required. Template content can be provided via htmlContent (minimum 10 characters) or htmlUrl; at least one must be supplied. Templates are created as inactive by default unless isActive is explicitly set to true.

Request body
attachmentUrlstring · urloptional
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'
htmlContentstringoptional
Body of the message (HTML version). The field must have more than 10 characters. REQUIRED if htmlUrl is empty
htmlUrlstring · urloptional
Url which contents the body of the email message. REQUIRED if htmlContent is empty
isActivebooleanoptional
Status of template. isActive = true means template is active and isActive = false means template is inactive
replyTostring · emailoptional
Email on which campaign recipients will be able to reply to
senderobjectrequired
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}
3 fields
emailstring · emailoptional
Email of the sender
idinteger · int64optional
Select the sender for the template 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)_.
namestringoptional
Name of the sender. If not passed, will be set to default
subjectstringrequired
Subject of the template
tagstringoptional
Tag of the template
templateNamestringrequired
Name of the template
toFieldstringoptional
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
Responses
201 successfully created400 bad request
idinteger · int64required
ID of the object created
Try it

Contacts 30

GET/contacts/{identifier}/campaignStatsGet email campaigns' statistics for a contact
getContactStatsapi-key

Retrieve email campaign statistics for a specific contact identified by email address or numeric ID. Statistics include messages sent, opens, clicks, hard/soft bounces, deliveries, unsubscriptions, complaints, and transactional attributes. By default, data covers the last 90 days; use startDate and endDate parameters (YYYY-MM-DD) to specify a custom range with a maximum span of 90 days.

Parameters
identifierstring | integer · pathrequired
Email (urlencoded) OR ID of the contact
startDatestring · queryoptional
Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate. Must not be greater than the current date.
endDatestring · queryoptional
Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Must not be greater than the current date. Maximum difference between startDate and endDate should not be greater than 90 days.
Request body
No body.
Responses
200 Contact campaign statistics informations400 bad request404 Contact not found
clickedobject[]optional
6 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
linksobject[]required
4 fields
countinteger · int64required
Number of clicks on this link for the campaign
eventTimestringrequired
UTC date-time of the event
ipstringrequired
IP from which the user has clicked on the link
urlstringrequired
URL of the clicked link
complaintsobject[]optional
2 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
deliveredobject[]optional
2 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
hardBouncesobject[]optional
2 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
messagesSentobject[]optional
2 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
openedobject[]optional
4 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
countinteger · int64required
Number of openings of the campaign
eventTimestringrequired
UTC date-time of the event
ipstringrequired
IP from which the user has opened the campaign
softBouncesobject[]optional
2 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
transacAttributesobject[]optional
3 fields
orderDatestring · daterequired
Date of the order
orderIdinteger · int64required
ID of the order
orderPricenumber · floatrequired
Price of the order
unsubscriptionsobjectoptional
7 fields
adminUnsubscriptionobject[]required
Contact has been unsubscribed from the administrator
2 fields
eventTimestringrequired
UTC date-time of the event
ipstringoptional
IP from which the user has been unsubscribed
userUnsubscriptionobject[]required
Contact has unsubscribed via the unsubscription link in the email
3 fields
campaignIdinteger · int64required
ID of the campaign which generated the event
eventTimestringrequired
UTC date-time of the event
ipstringoptional
IP from which the user has unsubscribed
Try it
DELETE/contacts/{identifier}Delete a contact
deleteContactapi-key

There are 2 ways to delete a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute.

Parameters
identifierstring | integer · pathrequired
Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded)
identifierTypeenum · queryoptional
email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
Request body
No body.
Responses
204 Contact deleted400 bad request404 Contact not found405 You're not allowed to delete registered email contact with Brevo
Try it
GET/contacts/{identifier}Get a contact's details
getContactInfoapi-key

<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note> There are 2 ways to get a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL), phone_id (for SMS) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL, SMS and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute <br><br>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.

Parameters
identifierstring | integer · pathrequired
Email (urlencoded) OR ID of the contact OR its SMS attribute value OR EXT_ID attribute (urlencoded)
identifierTypeenum · queryoptional
email_id for Email, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
startDatestring · queryoptional
Mandatory if endDate is used. Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate. Must not be greater than the current date.
endDatestring · queryoptional
Mandatory if startDate is used. Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Must not be greater than the current date.
Request body
No body.
Responses
200 Contact informations400 bad request404 Contact not found
Try it
PUT/contacts/{identifier}Update a contact
updateContactapi-key

<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note> There are 2 ways to update a contact <br><br> Option 1- https://api.brevo.com/v3/contacts/{identifier} <br><br> Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={} <br> <br> Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact. <br><br> Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute

Parameters
identifierstring | integer · pathrequired
Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded) OR its SMS attribute value OR its WHATSAPP attribute value OR its LANDLINE_NUMBER attribute value
identifierTypeenum · queryoptional
email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
Request body
attributesobjectoptional
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", "COUNTRIES":["India","China"]}. The 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"}
emailBlacklistedbooleanoptional
Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)
ext_idstringoptional
Pass your own Id to update ext_id of a contact.
listIdsinteger · int64[]optional
Ids of the lists to add the contact to
smsBlacklistedbooleanoptional
Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)
smtpBlacklistSenderstring · email[]optional
transactional email forbidden sender for contact. Use only for email Contact
unlinkListIdsinteger · int64[]optional
Ids of the lists to remove the contact from
forceMergebooleanoptional
When true, if the contact being updated shares an identifier (email, SMS, ext_id, whatsapp, landline) with an existing contact, the two contacts are force-merged. The contact with the most recent last_modified timestamp is retained; the other is deleted. When false (default), a 4xx error is returned on identifier conflict.
default false
Responses
204 Contact updated400 bad request404 Contact not found425 Too Early
Try it
DELETE/contacts/attributes/{attributeCategory}/{attributeName}Delete an attribute
deleteAttributeapi-key

Permanently delete an existing contact attribute by its category and name. The attribute must exist in the specified category (normal, transactional, category, calculated, or global), otherwise a 404 error is returned.

Parameters
attributeCategoryenum · pathrequired
Category of the attribute
attributeNamestring · pathrequired
Name of the existing attribute
Request body
No body.
Responses
204 Attribute deleted400 bad request404 bad request
Try it
POST/contacts/attributes/{attributeCategory}/{attributeName}Create contact attribute
createAttributeapi-key

Create a new contact attribute under the specified category and name. The required body properties depend on the category: use "type" for normal, transactional, or category attributes; use "value" for calculated or global attributes; use "enumeration" for category attributes; and use "multiCategoryOptions" for normal multiple-choice attributes. None of the category or multicategory option values can exceed 200 characters.

Parameters
attributeCategoryenum · pathrequired
Category of the attribute
attributeNamestring · pathrequired
Name of the attribute
Request body
enumerationobject[]optional
List of values and labels that the attribute can take. Use only if the attribute's category is "category". None of the category options can exceed max 200 characters. For example: [{"value":1, "label":"male"}, {"value":2, "label":"female"}]
2 fields
labelstringrequired
Label of the value
valueintegerrequired
Id of the value
isRecurringbooleanoptional
Type of the attribute. Use only if the attribute's category is 'calculated' or 'global'
multiCategoryOptionsstring[]optional
List of options you want to add for multiple-choice attribute. Use only if the attribute's category is "normal" and attribute's type is "multiple-choice". None of the multicategory options can exceed max 200 characters. For example: ["USA","INDIA"]
typeenumoptional
Type of the attribute. Use only if the attribute's category is 'normal', 'category' or 'transactional' Type user and multiple-choice is only available if the category is normal attribute Type id is only available if the category is transactional attribute Type category is only available if the category is category attribute
"text" "date" "float" "boolean" "id" "category" "multiple-choice" "user"
valuestringoptional
Value of the attribute. Use only if the attribute's category is 'calculated' or 'global'
Responses
201 Attribute created400 bad request
Try it
PUT/contacts/attributes/{attributeCategory}/{attributeName}Update contact attribute
updateAttributeapi-key

Update an existing contact attribute identified by its category and name. For category-type attributes, you can update the enumeration values; for calculated or global attributes, update the computed value formula; and for normal multiple-choice attributes, update the multicategory options. None of the category or multicategory option values can exceed 200 characters.

Parameters
attributeCategoryenum · pathrequired
Category of the attribute
attributeNamestring · pathrequired
Name of the existing attribute
Request body
enumerationobject[]optional
List of the values and labels that the attribute can take. Use only if the attribute's category is "category" None of the category options can exceed max 200 characters. For example, [{"value":1, "label":"male"}, {"value":2, "label":"female"}]
2 fields
labelstringrequired
Label of the value
valueintegerrequired
Id of the value
multiCategoryOptionsstring[]optional
Use this option to add multiple-choice attributes options only if the attribute's category is "normal". This option is specifically designed for updating multiple-choice attributes. None of the multicategory options can exceed max 200 characters.. For example: ["USA","INDIA"]
valuestringoptional
Value of the attribute to update. Use only if the attribute's category is 'calculated' or 'global'
Responses
204 Attribute updated400 bad request404 bad request
Try it
DELETE/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}Delete a multiple-choice attribute option
deleteMultiAttributeOptionsapi-key

Delete a specific option from an existing multiple-choice contact attribute. The attribute type must be "multiple-choice", and both the attribute name and the option to delete must already exist in your account.

Parameters
attributeTypeenum · pathrequired
Type of the attribute
multipleChoiceAttributestring · pathrequired
Name of the existing multiple-choice attribute
multipleChoiceAttributeOptionstring · pathrequired
Name of the existing multiple-choice attribute option that you want to delete
Request body
No body.
Responses
204 Multiple-Choice Attribute Option Deleted Successfully.400 bad request404 bad request
Try it
GET/contacts/attributesList all attributes
getAttributesapi-key

Retrieve all contact attributes defined in your Brevo account, grouped by category (normal, transactional, category, calculated, global). Each attribute includes its name, type, and category, along with enumeration values for category-type attributes and options for multiple-choice-type attributes.

Request body
No body.
Responses
200 Attributes listed400 bad request
attributesobject[]required
Listing of available contact attributes in your account
9 fields
calculatedValuestringoptional
Calculated value formula
categoryenumrequired
Category of the attribute
"normal" "transactional" "category" "calculated" "global"
enumerationobject[]optional
Parameter only available for "category" type attributes.
3 fields
labelstringrequired
Label of the "category" type attribute
valueinteger · int64required
Numeric ID of the "category" type attribute value. Set to 0 when the raw value cannot be converted to an integer (for example non-numeric values such as "en" or "fr"). Refer to valueStr for the original string representation.
valueStrstringrequired
String representation of the "category" type attribute value. Always contains the original value as stored. Use this field when the attribute value is non-numeric (e.g. "en", "fr") or when you need the exact string form alongside the numeric value.
multiCategoryOptionsstring[]optional
Parameter only available for "multiple-choice" type attributes.
namestringrequired
Name of the attribute
typeenumoptional
Type of the attribute
"text" "date" "float" "id" "boolean" "multiple-choice" "user"
Try it
POST/contacts/batchUpdate multiple contacts
updateBatchContactsapi-key

Update multiple contacts in a single API call by passing an array of contact objects. Each contact in the array must be identified by one of: email, id, or sms (only one identifier per contact). You can update attributes, blacklist status, list memberships, ext_id, and transactional email forbidden senders for each contact in the batch.

Request body
contactsobject[]optional
List of contacts to be updated
10 fields
attributesobjectoptional
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"}. 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"}
emailstring · emailoptional
Email address of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)
emailBlacklistedbooleanoptional
Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)
ext_idstringoptional
Pass your own Id to update ext_id of a contact.
idinteger · int64optional
id of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)
listIdsinteger · int64[]optional
Ids of the lists to add the contact to
smsstringoptional
SMS of the user to be updated (For each operation only pass one of the supported contact identifiers. Email, id or sms)
smsBlacklistedbooleanoptional
Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)
smtpBlacklistSenderstring · email[]optional
transactional email forbidden sender for contact. Use only for email Contact
unlinkListIdsinteger · int64[]optional
Ids of the lists to remove the contact from
Responses
204 All contacts updated400 bad request
Try it
POST/contacts/doubleOptinConfirmationCreate Contact via DOI (Double-Opt-In) Flow
createDoiContactapi-key

<Note title="How to use attributes param?">attributes param in this endpoint is an object containing key-value pairs where values can be either a string, integer, array, or boolean. You can create key-value pairs with these four datatypes. When a value is an array, it should be an array of strings.</Note>

Request body
attributesobjectoptional
Pass the set of attributes and their values. These attributes must be present in your Brevo account. For eg. {'FNAME':'Elly', 'LNAME':'Roger', 'COUNTRIES': ['India','China']}
contactPixelTrackingConsentbooleanoptional
Consent of the DOI recipient for open (pixel) and click tracking in the double opt-in confirmation email, resolved by the sender at send time. Considered only if the per-contact pixel tracking consent feature is enabled for your account. Pass true if this recipient has consented to open and click tracking, in which case the open pixel and tracked links identify the recipient. Pass false to anonymise the open and click events (counted in aggregate statistics only). If it is not passed, the recipient is treated as unknown consent status and the email is still sent (the open and click are anonymised unless your account tracks unknown-consent contacts). A value other than true/false is rejected. Ignored when the feature is not enabled for your account.
emailstring · emailrequired
Email address where the confirmation email will be sent. This email address will be the identifier for all other contact attributes.
excludeListIdsinteger · int64[]optional
Lists under user account where contact should not be added
includeListIdsinteger · int64[]required
Lists under user account where contact should be added
redirectionUrlstring · urlrequired
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 }}.
templateIdinteger · int64required
Id of the Double opt-in (DOI) template
Responses
201 DOI Contact created204 DOI Contact updated400 bad request
Try it
POST/contacts/exportExport contacts
requestContactExportapi-key

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

Request body
customContactFilterobjectrequired
Set the filter for the contacts to be exported.
7 fields
actionForContactsenumoptional
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. * allContacts - Fetch the list of all contacts for a particular list. * subscribed & unsubscribed - Fetch the list of subscribed / unsubscribed (blacklisted via any means) contacts for a particular list. * unsubscribedPerList - Fetch the list of contacts that are unsubscribed from a particular list only.
"allContacts" "subscribed" "unsubscribed" "unsubscribedPerList"
actionForEmailCampaignsenumoptional
Mandatory if neither actionForContacts nor actionForSmsCampaigns is passed. This will export the contacts on the basis of provided action applied on email campaigns. * openers & nonOpeners - emailCampaignId is mandatory. Fetch the list of readers / non-readers for a particular email campaign. * clickers & nonClickers - emailCampaignId is mandatory. Fetch the list of clickers / non-clickers for a particular email campaign. * unsubscribed - emailCampaignId is mandatory. Fetch the list of all unsubscribed (blacklisted via any means) contacts for a particular email campaign. * hardBounces & softBounces - emailCampaignId is optional. Fetch the list of hard bounces / soft bounces for a particular / all email campaign(s).
"openers" "nonOpeners" "clickers" "nonClickers" "unsubscribed" "hardBounces" "softBounces"
actionForSmsCampaignsenumoptional
Mandatory if neither actionForContacts nor actionForEmailCampaigns is passed. This will export the contacts on the basis of provided action applied on sms campaigns. * unsubscribed - Fetch the list of all unsubscribed (blacklisted via any means) contacts for all / particular sms campaigns. * hardBounces & softBounces - Fetch the list of hard bounces / soft bounces for all / particular sms campaigns.
"hardBounces" "softBounces" "unsubscribed"
emailCampaignIdinteger · int64optional
Considered only if actionForEmailCampaigns is passed, ignored otherwise. Mandatory if action is one of the following - openers, nonOpeners, clickers, nonClickers, unsubscribed. The id of the email campaign for which the corresponding action shall be applied in the filter.
listIdinteger · int64optional
ID of the list. This is mandatory if actionForContacts is specified and segmentId is not provided. Either segmentId or listId must be included.
segmentIdinteger · int64optional
ID of the segment. This is mandatory if actionForContacts is specified and listId is not provided. Either segmentId or listId must be included.
smsCampaignIdinteger · int64optional
Considered only if actionForSmsCampaigns is passed, ignored otherwise. The id of sms campaign for which the corresponding action shall be applied in the filter.
disableNotificationbooleanoptional
To avoid generating the email notification upon contact export, pass true
default false
exportAttributesstring[]optional
List of all the attributes that you want to export. These attributes must be present in your contact database. It is required if exportMandatoryAttributes is set false. For example: ['fname', 'lname', 'email']
exportMandatoryAttributesbooleanoptional
To export mandatory attributes like EMAIL, ADDED_TIME, MODIFIED_TIME
default true
exportMetadatastring[]optional
Export metadata of contacts such as _listIds, ADDED_TIME, MODIFIED_TIME.
exportDateInUTCbooleanoptional
Specifies whether the date fields createdAt, modifiedAt in the exported data should be returned in UTC format.
default false
exportSubscriptionStatusstring[]optional
Export subscription status of contacts for email & sms marketting. Pass email_marketing to obtain the marketing email subscription status & sms_marketing to retrieve the marketing SMS status of the contact.
notifyUrlstring · urloptional
Webhook that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
Responses
202 process id created400 bad request429 Too Many Requests
processIdinteger · int64required
Id of the process created
Try it
GET/contacts/folders/{folderId}/listsGet lists in a folder
getFolderListsapi-key

<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>

Parameters
folderIdinteger · int64 · pathrequired
Id of the folder
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Folder's Lists details400 bad request404 Folder ID not found
countinteger · int64optional
Number of lists in the folder
listsobject[]optional
Try it
DELETE/contacts/folders/{folderId}Delete a folder (and all its lists)
deleteFolderapi-key

Permanently delete a folder identified by its ID. Deleting a folder will also delete all the contact lists contained within it. This action cannot be undone.

Parameters
folderIdinteger · int64 · pathrequired
Id of the folder
Request body
No body.
Responses
204 Folder deleted400 bad request404 Folder ID not found
Try it
GET/contacts/folders/{folderId}Returns a folder's details
getFolderapi-key

<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>

Parameters
folderIdinteger · int64 · pathrequired
id of the folder
Request body
No body.
Responses
200 Folder details400 bad request404 Folder ID not found
idinteger · int64required
ID of the folder
namestringrequired
Name of the folder
totalBlacklistedinteger · int64required
Number of blacklisted contacts in the folder
totalSubscribersinteger · int64required
Number of contacts in the folder
uniqueSubscribersinteger · int64required
Number of unique contacts in the folder
Try it
PUT/contacts/folders/{folderId}Update a folder
updateFolderapi-key

Update the name of an existing folder identified by its ID. The new folder name must be provided in the request body. Returns a 404 error if the folder ID does not exist.

Parameters
folderIdinteger · int64 · pathrequired
Id of the folder
Request body
namestringoptional
Name of the folder
Responses
204 Folder updated400 bad request404 Folder ID not found
Try it
GET/contacts/foldersGet all folders
getFoldersapi-key

<Note>Ongoing changes for this endpoint We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0. The uniqueSubscribers field is deprecated</Note>

Parameters
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Folders informations400 bad request
countinteger · int64optional
Number of folders available in your account
foldersobject[]optional
Try it
POST/contacts/foldersCreate a folder
createFolderapi-key

Create a new folder to organize your contact lists. Folders serve as containers for grouping related lists together. The folder name is required and must be provided in the request body.

Request body
namestringoptional
Name of the folder
Responses
201 successfully created400 bad request
idinteger · int64required
ID of the object created
Try it
POST/contacts/importImport contacts
importContactsapi-key

It returns the background process ID which on completion calls the notify URL that you have set in the input. Note: - Any contact attribute that doesn't exist in your account will be ignored at import end.

Request body
disableNotificationbooleanoptional
To disable email notification
default false
emailBlacklistbooleanoptional
To blacklist all the contacts for email
default false
emptyContactsAttributesbooleanoptional
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 )
default false
fileBodystringoptional
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.
fileUrlstring · urloptional
Mandatory if fileBody and jsonBody is not defined. URL of the file to be imported (no local file). Possible file formats: #### .txt, .csv, .json
jsonBodyobject[]optional
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.
2 fields
attributesobjectoptional
List of attributes to be imported
emailstringoptional
listIdsinteger · int64[]optional
Mandatory if newList is not defined. Ids of the lists in which the contacts shall be imported. For example, [2, 4, 7].
consentGroupIdsinteger · int64[]optional
Optional. Ids of the consent groups to which all imported contacts will be added. Requires consent groups to be enabled for the organisation. For example, [1, 3].
newListobjectoptional
To create a new list and import the contacts into it, pass the listName and an optional folderId.
2 fields
folderIdinteger · int64optional
Id of the folder where this new list shall be created. Mandatory if listName is not empty
listNamestringoptional
List with listName will be created first and users will be imported in it. Mandatory if listIds is empty.
notifyUrlstring · urloptional
URL that will be called once the import process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
smsBlacklistbooleanoptional
To blacklist all the contacts for sms
default false
updateExistingContactsbooleanoptional
To facilitate the choice to update the existing contacts
default true
Responses
202 process id created400 bad request
processIdinteger · int64required
Id of the process created
Try it
POST/contacts/lists/{listId}/contacts/addAdd existing contacts to a list
addContactToListapi-key
Parameters
listIdinteger · int64 · pathrequired
Id of the list
Request body
object
Responses
201 All contacts have been added successfully to the list with details of failed ones400 bad request404 List ID not found
contactsobjectrequired
4 fields
failurestring · email[] | integer · int64[]optional
processIdinteger · int64optional
Id of the process created to remove contacts from list when user opts for "all" option.
successstring · email[] | integer · int64[]optional
totalinteger · int64optional
Displays the count of total number of contacts removed from list when user opts for "all" option.
Try it
POST/contacts/lists/{listId}/contacts/removeDelete a contact from a list
removeContactFromListapi-key
Parameters
listIdinteger · int64 · pathrequired
Id of the list
Request body
object
Responses
201 All contacts have been removed successfully from the list with details of failed ones400 bad request404 List ID not found
contactsobjectrequired
4 fields
failurestring · email[] | integer · int64[]optional
processIdinteger · int64optional
Id of the process created to remove contacts from list when user opts for "all" option.
successstring · email[] | integer · int64[]optional
totalinteger · int64optional
Displays the count of total number of contacts removed from list when user opts for "all" option.
Try it
GET/contacts/lists/{listId}/contactsGet contacts in a list
getContactsFromListapi-key

Retrieve all contacts belonging to a specific list, identified by its list ID. Results are paginated with a default of 50 contacts per page (maximum 500) and sorted in descending order of creation. You can optionally filter contacts by their modification date using the modifiedSince parameter.

Parameters
listIdinteger · int64 · pathrequired
Id of the list
modifiedSincestring · queryoptional
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.
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Contact informations400 bad request404 List ID not found429 Too Many Requests
contactsobject[]required
countinteger · int64required
Number of contacts
Try it
DELETE/contacts/lists/{listId}Delete a list
deleteListapi-key

Permanently delete a contact list identified by its ID. The contacts in the list are not deleted; they are only removed from this list. Returns a 404 error if the list ID does not exist.

Parameters
listIdinteger · int64 · pathrequired
Id of the list
Request body
No body.
Responses
204 List deleted400 bad request404 List ID not found
Try it
GET/contacts/lists/{listId}Get a list's details
getListapi-key

Retrieve the details of a specific contact list by its ID, including its name, folder ID, creation date, subscriber counts, and campaign statistics. You can optionally filter campaign statistics by providing startDate and endDate parameters (both must be used together in YYYY-MM-DD format).

Parameters
listIdinteger · int64 · pathrequired
Id of the list
startDatestring · queryoptional
Mandatory if endDate is used. Starting (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
endDatestring · queryoptional
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
Request body
No body.
Responses
200 List informations400 bad request404 List ID not found
Try it
PUT/contacts/lists/{listId}Update a list
updateListapi-key

Update an existing contact list identified by its ID. You can update the list name, move it to a different folder by providing a new folderId, or both. Only one of the two parameters (name, folderId) needs to be provided per request.

Parameters
listIdinteger · int64 · pathrequired
Id of the list
Request body
folderIdinteger · int64optional
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.
namestringoptional
Name of the list. Either of the two parameters (name, folderId) can be updated at a time.
Responses
204 List updated400 bad request404 List ID not found
Try it
GET/contacts/listsGet all the lists
getListsapi-key

<Note>Ongoing changes for this endpoint. We're dropping support for the response attributes totalSubscribers and totalBlacklisted. These are non breaking changes. The default value for the attributes will be 0.</Note>

Parameters
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Lists informations400 bad request
countinteger · int64optional
Number of lists in your account
listsobject[]optional
Listing of all the lists available in your account
Try it
POST/contacts/listsCreate a list
createListapi-key

Create a new contact list inside a specified folder. Both the list name and the parent folder ID are required. The newly created list will be empty and ready to receive contacts via the add contacts endpoint.

Request body
folderIdinteger · int64required
Id of the parent folder in which this list is to be created
namestringrequired
Name of the list
Responses
201 successfully created400 bad request
idinteger · int64required
ID of the object created
Try it
GET/contacts/segmentsGet all the segments
getSegmentsapi-key

Retrieve all contact segments defined in your Brevo account with support for pagination and sorting. Results default to 10 segments per page (maximum 50) sorted in descending order of creation. Each segment includes its ID, name, category name, and last update timestamp.

Parameters
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Segments informations400 bad request
countinteger · int64optional
Number of Segments in your account
segmentsobject[]optional
Listing of all the segments available in your account
4 fields
categoryNamestringrequired
Name of the Segment Category
idinteger · int64required
ID of the segment
segmentNamestringrequired
Name of the Segment
updatedAtstringoptional
Last update UTC date-time of the segment (YYYY-MM-DDTHH:mm:ss.SSSZ)
Try it
GET/contactsGet all the contacts
getContactsapi-key

Retrieve all contacts from your Brevo account with support for pagination, filtering, and sorting. Results default to 50 contacts per page (maximum 1000) sorted in descending order of creation, and can be filtered by modification date, creation date, contact IDs (up to 20), list IDs, segment ID, or contact attributes using the equals operator. Note that either listIds or segmentId can be passed but not both simultaneously.

Parameters
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document of the page
modifiedSincestring · queryoptional
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.
createdSincestring · queryoptional
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.
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
idsinteger · int64[] · queryoptional
Filter by a list of contact IDs. You can pass a maximum of 20 IDs. All elements must be integers.
segmentIdinteger · int64 · queryoptional
Id of the segment. Either listIds or segmentId can be passed. Must be a positive integer (minimum value of 1).
listIdsinteger · int64[] · queryoptional
Ids of the list. Either listIds or segmentId can be passed.
filterstring · queryoptional
Filter the contacts on the basis of attributes. Allowed operator: equals. For multiple-choice options, the filter will apply an AND condition between the options. For category attributes, the filter will work with both id and value. (e.g. filter=equals(FIRSTNAME,"Antoine"), filter=equals(B1, true), filter=equals(DOB, "1989-11-23"), filter=equals(GENDER, "1"), filter=equals(GENDER, "MALE"), filter=equals(COUNTRY,"USA, INDIA")
Request body
No body.
Responses
200 All contacts listed400 bad request429 Too Many Requests
contactsobject[]required
countinteger · int64required
Number of contacts
Try it
POST/contactsCreate a contact
createContactapi-key

<Note>Follow this format when passing a "SMS" phone number as an attribute. Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx</Note> Creates new contacts on Brevo. Contacts can be created by passing either - <br><br> 1. email address of the contact (email_id), <br> 2. phone number of the contact (to be passed as "SMS" field in "attributes" along with proper country code), For example- {"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"} <br> 3. ext_id <br>

Request body
attributesobjectoptional
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: {"FNAME":"Elly", "LNAME":"Roger", "COUNTRIES": ["India","China"]}
emailstring · emailoptional
Email address of the user. Mandatory if "ext_id" & "SMS" field is not passed.
emailBlacklistedbooleanoptional
Set this field to blacklist the contact for emails (emailBlacklisted = true)
ext_idstringoptional
Pass your own Id to create a contact.
listIdsinteger · int64[]optional
Ids of the lists to add the contact to
smsBlacklistedbooleanoptional
Set this field to blacklist the contact for SMS (smsBlacklisted = true)
smtpBlacklistSenderstring · email[]optional
transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true )
updateEnabledbooleanoptional
Facilitate to update the existing contact in the same request (updateEnabled = true)
default false
forceMergebooleanoptional
When true, if the contact being created shares an identifier (email, SMS, ext_id, whatsapp, landline) with an existing contact, the two contacts are force-merged. The contact with the most recent last_modified timestamp is retained; the other is deleted. When false (default), a 4xx error is returned on identifier conflict.
default false
getIdbooleanoptional
When true, the response returns the id of the surviving contact after merge.
default false
Responses
201 Contact created204 Contact updated400 bad request425 Too Early
idinteger · int64optional
ID of the contact when a new contact is created
Try it

Senders 7

GET/senders/{senderId}/ipsGet all the dedicated IPs for a specific sender
getIpsFromSenderapi-key

Retrieves the dedicated IPs associated with a specific sender.

Use this to: - Check IP configuration for a sender - Verify dedicated IP associations - Get IP details for troubleshooting - Monitor sender IP configuration

Key information returned: - List of associated dedicated IPs - IP addresses and domain configurations - IP status and settings

Parameters
senderIdinteger · int64 · pathrequired
Id of the sender
Request body
No body.
Responses
200 List of dedicated IPs retrieved successfully400 bad request404 Sender ID not found
ipsobject[]required
Dedicated IP(s) linked to a sender. Returns empty array for standard accounts without dedicated IPs.
4 fields
domainstringrequired
Domain associated to the IP
idinteger · int64required
ID of the dedicated IP
ipstringrequired
Dedicated IP address
weightinteger · int64required
Weight of the IP for this sender
Try it
PUT/senders/{senderId}/validateValidate a sender using OTP
validateSenderByOTPapi-key

Validates a sender using the OTP (One-Time Password) received via email.

Use this to: - Complete sender verification process - Activate a newly created sender - Verify ownership of the sender email address - Enable the sender for use in email campaigns

Key information returned: - Success confirmation of sender verification - Sender activation status

Parameters
senderIdinteger · int64 · pathrequired
Id of the sender
Request body
otpintegerrequired
6 digit OTP received on email
100000–999999
Responses
204 Sender verified successfully400 bad request404 Sender ID not found
Try it
DELETE/senders/{senderId}Delete a sender
deleteSenderapi-key

Deletes an email sender from your Brevo account.

Use this to: - Remove senders that are no longer needed - Clean up sender configurations - Remove duplicate or test senders

Key information returned: - Success confirmation message

Parameters
senderIdinteger · int64 · pathrequired
Id of the sender
Request body
No body.
Responses
204 Sender deleted successfully400 bad request404 Sender ID not found
Try it
PUT/senders/{senderId}Update a sender
updateSenderapi-key

Updates an existing email sender's configuration.

Use this to: - Modify sender display name or email address - Update dedicated IP associations - Change sender configuration settings - Correct sender information

Key information returned: - Success confirmation - Updated sender details

Parameters
senderIdinteger · int64 · pathrequired
Id of the sender
Request body
emailstring · emailoptional
From Email to update the sender
ipsobject[]optional
Only in case of dedicated IP. IPs to associate to the sender. If passed, will replace all the existing IPs. Not required for standard accounts.
3 fields
domainstringrequired
Domain of the IP
ipstringrequired
Dedicated IP available in your account
weightinteger · int64optional
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.
1–100
namestringoptional
From Name to update the sender
Responses
204 Sender updated successfully400 bad request404 Sender ID not found
Try it
GET/senders/ipsGet all the dedicated IPs for your account
getIpsapi-key

Retrieves all dedicated IPs associated with your Brevo account.

Use this to: - List all your dedicated IPs - Check the status of your dedicated IPs (active/inactive) - Find IP addresses and associated domains for configuration purposes - Monitor your IP reputation and deliverability - Verify available IPs for sender configuration

Key information returned: - IP ID and address - Associated domain - Active status - IP configuration details

Request body
No body.
Responses
200 List of dedicated IPs retrieved successfully400 bad request
ipsobject[]required
Dedicated IP(s) available on your account. Returns empty array for standard accounts without dedicated IPs.
4 fields
idinteger · int64required
ID of the dedicated IP
activebooleanrequired
Status of the IP (true=active, false=inactive)
domainstringrequired
Domain associated to the IP
ipstringrequired
Dedicated IP address
Try it
GET/sendersGet email senders
getSendersapi-key

Retrieves a list of all email senders from your Brevo account with optional filtering.

Use this to: - Get all available senders for email campaign setup - Find sender details including ID, name, and email address - Filter senders by IP address for dedicated IP users - Filter senders by domain for domain-specific configurations - Monitor sender configuration and status

Key information returned: - Sender details (ID, name, email address) - Sender status and verification information - Associated IP addresses and domains (for dedicated IP accounts) - Sender configuration settings

Important considerations: - Standard accounts show empty IP arrays, dedicated IP accounts show IP assignments - Filtering by IP only available for accounts with dedicated IPs - Domain filtering helps organize senders by business units or brands - Sender status indicates if sender is active and ready for campaign use - Email verification required before sender can be used in campaigns

Parameters
ipstring · queryoptional
Filter your senders for a specific ip. Available for dedicated IP usage only
domainstring · queryoptional
Filter your senders for a specific domain
Request body
No body.
Responses
200 List of senders retrieved successfully400 bad request
sendersobject[]optional
List of the senders available in your account
8 fields
activebooleanrequired
Status of sender (true=activated, false=deactivated)
emailstring · emailrequired
From Email associated to the sender
idinteger · int64required
Id of the sender
ipsobject[]required
List of dedicated IP(s) available in the account. This data is displayed only for dedicated IPs. For standard accounts, this will be an empty array.
3 fields
domainstringrequired
Domain of the IP
ipstringrequired
Dedicated IP available in your account
weightinteger · int64required
Weight of the IP for this sender
namestringrequired
From Name associated to the sender
Try it
POST/sendersCreate email sender
createSenderapi-key

Creates a new email sender in your Brevo account.

Use this to: - Add new senders for email campaigns - Configure sender identity (name and email) - Associate dedicated IPs with the sender (for dedicated IP accounts) - Set up domain-based sender configurations

Key information returned: - Created sender ID - DKIM and SPF configuration status - Success confirmation

Important considerations: - Verification email sent to specified sender address - DKIM and SPF configuration affects deliverability - Dedicated IP accounts require IP association during creation - IP weights must sum to 100 when specified - Sender must be verified before use in campaigns

Request body
emailstring · emailrequired
From email to use for the sender. A verification email will be sent to this address.
ipsobject[]optional
Mandatory in case of dedicated IP. IPs to associate to the sender. Not required for standard accounts.
3 fields
domainstringrequired
Domain of the IP
ipstringrequired
Dedicated IP available in your account
weightinteger · int64optional
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.
1–100
namestringrequired
From Name to use for the sender
Responses
201 Sender created successfully400 bad request
dkimErrorbooleanoptional
Status of DKIM configuration for the sender (true = DKIM not well configured, false = DKIM well configured)
idinteger · int64required
ID of the Sender created
spfErrorbooleanoptional
Status of SPF configuration for the sender (true = SPF not well configured, false = SPF well configured)
Try it

Domains 5

PUT/senders/domains/{domainName}/authenticateAuthenticate a sender domain
authenticateDomainapi-key

Authenticates a specific domain.

Use this to: - Authenticate a domain - Verify DNS record configuration - Complete domain setup for sending - Enable domain for email authentication

Key information returned: - Authentication success confirmation - Domain readiness status for email sending

Parameters
domainNamestring · pathrequired
Domain name
Request body
No body.
Responses
200 Domain authenticated successfully400 bad request404 bad request
domain_namestringrequired
Domain name that was authenticated
messagestringrequired
Success message confirming authentication
Try it
DELETE/senders/domains/{domainName}Delete a sender domain
deleteDomainapi-key

Deletes a domain from Brevo.

Use this to: - Remove existing domains - Clean up unused domain configurations - Remove test domains

Key information returned: - Success confirmation message

Parameters
domainNamestring · pathrequired
Domain name
Request body
No body.
Responses
200 Domain deleted successfully400 bad request404 bad request
Try it
GET/senders/domains/{domainName}Get a sender domain configuration
getDomainConfigurationapi-key

Retrieves configuration of a specific domain, to know if the domain is valid or not.

Use this to: - Check domain configuration - Validate a domain configuration - Monitor DNS record status - Troubleshoot authentication issues

Key information returned: - Domain verification and authentication status - DNS records configuration and validation status - Detailed authentication requirements

Parameters
domainNamestring · pathrequired
Domain name
Request body
No body.
Responses
200 Domain configuration retrieved successfully400 bad request404 bad request
domainstringrequired
Domain name
verifiedbooleanrequired
Status of domain verification (true=verified, false=non verified)
authenticatedbooleanrequired
Status of domain authentication (true=authenticated, false=non authenticated)
dns_recordsobjectrequired
DNS records configuration and status
15 fields
brevo_codeobjectrequired
Brevo verification code record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
dkim_recordobjectrequired
DKIM authentication record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
dmarc_recordobjectrequired
DMARC policy record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
Try it
GET/senders/domainsGet the list of all sender domains
getDomainsapi-key

Retrieves all domains associated with the account.

Use this to: - List all domains - Verify domain existence - Check domain authentication and verification status - Monitor domain configuration and provider information - Review domain creation history and ownership

Key information returned: - Domain details (ID, name, authentication status) - Verification and authentication states - Associated IP addresses and DNS providers - Creator information and creation timestamps - Pagination information for large domain lists

Request body
No body.
Responses
200 List of domains retrieved successfully400 bad request
domainsobject[]required
List of the domains available in your account
10 fields
idstringrequired
Unique identifier of the domain
domain_namestringrequired
Domain name
authenticatedbooleanrequired
Status of domain authentication (true=authenticated, false=non authenticated)
verifiedbooleanrequired
Status of domain verification (true=verified, false=non verified)
ipstringoptional
Dedicated IP associated with domain (null if none)
providerstringrequired
DNS provider for the domain
creatorobjectrequired
Information about who created the domain
3 fields
idstringrequired
Creator's user ID
emailstringrequired
Creator's email address
creationDatestring · date-timerequired
Domain creation date
countintegerrequired
Total number of domains
current_pageintegerrequired
Current page number
total_pagesintegerrequired
Total number of pages
Try it
POST/senders/domainsCreate a new sender domain
createDomainapi-key

Creates a new domain in Brevo.

Use this to: - Add new domains for sending emails - Set up domain authentication for better deliverability - Configure DNS records for email authentication - Establish domain-based sender identities

Key information returned: - Created domain ID and configuration - Required DNS records for authentication - Domain provider detection results - Setup instructions and next steps

Request body
namestring · hostnamerequired
Domain name to be added
Responses
200 Domain created successfully400 bad request
idinteger · int64required
ID of the Domain created
domain_namestringrequired
Domain name
domain_providerstringoptional
Detected domain provider
messagestringrequired
Success message with next steps
dns_recordsobjectoptional
DNS records required for domain authentication
15 fields
brevo_codeobjectrequired
Brevo verification code record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
dkim_recordobjectrequired
DKIM authentication record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
dmarc_recordobjectrequired
DMARC policy record
4 fields
host_namestringrequired
DNS record hostname
typestringrequired
DNS record type
valuestringrequired
DNS record value
statusbooleanrequired
Whether the record is properly configured
Try it

Webhooks 6

DELETE/webhooks/{webhookId}Delete a webhook
deleteWebhookapi-key

Permanently deletes a webhook and stops all event notifications.

Use this to: - Remove unused or obsolete webhook configurations - Clean up webhook endpoints and subscriptions - Stop event notifications to specific URLs - Maintain organized webhook management

Key information returned: - Success confirmation of webhook deletion

Parameters
webhookIdinteger · int64 · pathrequired
Id of the webhook
Request body
No body.
Responses
204 Webhook deleted400 bad request404 bad request
Try it
GET/webhooks/{webhookId}Get a webhook details
getWebhookapi-key

Retrieves detailed information about a specific webhook configuration.

Use this to: - Get complete webhook configuration and settings - Check webhook event subscriptions and triggers - Review authentication and security settings - Verify webhook URL and custom headers - Access webhook creation and modification history

Key information returned: - Complete webhook details and configuration - Event types and channel subscriptions - Authentication credentials and methods - Custom headers and request settings - Webhook status and activity information

Parameters
webhookIdinteger · int64 · pathrequired
Id of the webhook
Request body
No body.
Responses
200 Webhook informations400 bad request404 bad request
authobjectoptional
Authentication header to be send with the webhook requests
batchedbooleanoptional
Batching configuration of the webhook, we send batched webhooks if its true
createdAtstringrequired
Creation UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)
descriptionstringrequired
Description of the webhook
eventsstring[]required
headersobject[]optional
idinteger · int64required
ID of the webhook
modifiedAtstringrequired
Last modification UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)
typeenumrequired
Type of webhook (marketing, transactional, or inbound)
"marketing" "transactional" "inbound"
domainstringoptional
Inbound domain of the webhook, only returned for inbound type webhooks
urlstring · urlrequired
URL of the webhook
Try it
PUT/webhooks/{webhookId}Update a webhook
updateWebhookapi-key

Updates an existing webhook configuration and event subscriptions.

Use this to: - Modify webhook event subscriptions and triggers - Update webhook URL and endpoint configuration - Change authentication settings and credentials - Adjust custom headers and request parameters - Enable or disable specific webhook events

Key information returned: - Success confirmation of webhook updates

Parameters
webhookIdinteger · int64 · pathrequired
Id of the webhook
Request body
authobjectoptional
Add authentication on webhook url
2 fields
tokenstringoptional
Webhook authentication token
typestringoptional
Type of authentication
batchedbooleanoptional
To send batched webhooks
descriptionstringoptional
Description of the webhook
domainstringoptional
Inbound domain of webhook, used in case of event type inbound
eventsenum[]optional
- Events triggering the webhook. Possible values for Transactional type webhook: #### sent OR request, delivered, hardBounce, softBounce, blocked, spam, invalid, deferred, click, opened, uniqueOpened and unsubscribed - Possible values for Marketing type webhook: #### spam, opened, click, hardBounce, softBounce, unsubscribed, listAddition & delivered - Possible values for Inbound type webhook: #### inboundEmailProcessed #### reply
headersobject[]optional
Custom headers to be send with webhooks
2 fields
keystringoptional
Header key name
valuestringoptional
Header value
urlstring · urloptional
URL of the webhook
Responses
204 Webhook updated400 bad request404 bad request
Try it
POST/webhooks/exportExport webhook event history as CSV file
exportWebhooksHistoryapi-key

<Note>This is an enterprise feature.

To have it activated please send us a request and we will activate it for your account.</Note>

Exports webhook event history to CSV format for analysis and reporting.

Use this to: - Generate comprehensive webhook event reports - Analyze webhook delivery patterns and success rates - Export event data for external analysis tools - Create historical reports for compliance and auditing - Track webhook performance and reliability metrics

Key information returned: - Process ID for tracking export completion - CSV file will be delivered to specified webhook URL

Request body
daysintegeroptional
Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
emailstringoptional
Filter the history for a specific email
endDatestringoptional
Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
eventenumrequired
Filter the history for a specific event type
"invalid_parameter" "missing_parameter" "hardBounce" "softBounce" "delivered" "spam" "request" "opened" "click" "invalid" …
messageIdstringoptional
Filter the history for a specific message id. Applicable only for transactional webhooks.
notifyURLstringrequired
Webhook URL to receive CSV file link
sortstringoptional
Sorting order of records (asc or desc)
startDatestringoptional
Mandatory if endDate is used. Starting date of the history (YYYY-MM-DD). Must be lower than equal to endDate
typeenumrequired
Filter the history based on webhook type
"transactional" "marketing"
webhookIdintegeroptional
Filter the history for a specific webhook id
Responses
202 process id created400 bad request
processIdinteger · int64required
Id of the process created
Try it
GET/webhooksGet all webhooks
getWebhooksapi-key

Retrieves all webhooks from your Brevo account with filtering and sorting options.

Use this to: - Monitor webhook configurations and event handling - List webhooks by type (transactional, marketing, inbound) - Review webhook endpoints and authentication - Track webhook creation and modification history - Audit webhook event subscriptions

Key information returned: - Complete webhook details and configuration - Event types and channel subscriptions - Authentication and security settings - Webhook URLs and custom headers - Creation and modification timestamps

Parameters
typeenum · queryoptional
Filter on webhook type
sortenum · queryoptional
Sort the results in the ascending/descending order of webhook creation
Request body
No body.
Responses
200 Webhooks informations400 bad request
webhooksobject[]required
Try it
POST/webhooksCreate a webhook
createWebhookapi-key

Creates a new webhook to receive real-time notifications for specified events.

Use this to: - Set up event notifications for transactional or marketing emails - Configure webhook endpoints for campaign tracking - Enable real-time monitoring of email delivery status - Subscribe to contact list changes and updates - Implement custom event handling and automation

Key information returned: - Created webhook ID and configuration - Success confirmation and setup details

Request body
authobjectoptional
Add authentication on webhook url
2 fields
tokenstringoptional
Webhook authentication token
typestringoptional
Type of authentication
batchedbooleanoptional
To send batched webhooks
channelenumoptional
Channel of the webhook
"email" "sms" · default "email"
descriptionstringoptional
Description of the webhook
domainstringoptional
Inbound domain of webhook, required in case of event type inbound
eventsenum[]optional
Events triggering the webhook. Required for transactional and marketing types, optional for inbound type (defaults to inboundEmailProcessed). Possible values for Transactional type webhook: sent OR request, delivered, hardBounce, softBounce, blocked, spam, invalid, deferred, click, opened, uniqueOpened and unsubscribed. Possible values for Marketing type webhook: spam, opened, click, hardBounce, softBounce, unsubscribed, listAddition, delivered, contactUpdated & contactDeleted. Possible values for Inbound type webhook: inboundEmailProcessed.
headersobject[]optional
Custom headers to be send with webhooks
2 fields
keystringoptional
Header key name
valuestringoptional
Header value
typeenumoptional
Type of the webhook
"transactional" "marketing" "inbound" · default "transactional"
urlstring · urlrequired
URL of the webhook
Responses
201 successfully created400 bad request
idinteger · int64required
ID of the object created
Try it

Account 2

GET/accountGet account details
getAccountapi-key

Retrieves details of your Brevo account.

Use this to: - Get account information (email, name, company, address) - Check plan details (type, credits, expiration) - Get relay information (for transactional emails) - Check Marketing Automation status - Access organization and user identifiers

Key information returned: - Complete account details (organization ID, user ID, company information) - Address and contact information - Plan configurations and credit allocations across different verticals - Marketing Automation settings and tracker key (when enabled) - SMTP relay configuration for transactional emails - Enterprise features availability status

Important considerations: - Provides comprehensive account overview for billing and configuration management - Essential for understanding current plan limitations and feature availability - Marketing Automation key is only returned when Marketing Automation is enabled on the account - Plan verticals show detailed breakdown across Marketing, Chat, and CRM categories (only returned when plan verticals are available) - Relay configuration crucial for transactional email setup and deliverability - Enterprise status determines access to advanced features and sub-account management

Request body
No body.
Responses
200 Account information retrieved successfully400 bad request
Try it
GET/organization/activitiesGet user activity logs
getAccountActivityapi-key

Retrieves user activity logs from your organization for security monitoring and audit compliance.

Use this to: - Monitor user login activities and access patterns - Track account modifications and configuration changes - Generate security audit reports and compliance documentation - Investigate suspicious activities and unauthorized access - Monitor team member actions and account usage

Key information returned: - Complete user activity details and timestamps - User identification (email, IP address, browser) - Action types and activity descriptions - Security-relevant events and access logs - Historical activity data for audit trails

Note: Requires Enterprise plan for access to organization activity logs.

Parameters
startDatestring · queryoptional
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.
endDatestring · queryoptional
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.
emailstring · queryoptional
Enter the user's email address to filter their activity in the account.
limitinteger · int64 · queryoptional
Number of documents per page
offsetinteger · int64 · queryoptional
Index of the first document in the page.
Request body
No body.
Responses
200 list of user activity logs400 bad request
logsobject[]optional
Get user activity logs
5 fields
actionstringrequired
Type of activity in the account.
datestringrequired
Time of the activity.
user_agentstringrequired
Browser details of the user who performed the activity.
user_emailstringrequired
Email address of the user who performed activity in the account.
user_ipstringrequired
IP address of the user who performed activity in the account.
Try it

Process 2

GET/processes/{processId}Get process details
getProcessapi-key

Retrieves detailed information about a specific background process.

Use this to: - Get detailed status of a specific process - Monitor process progress and completion - Download results from completed export processes - Check error details for failed processes - Track process execution times

Key information returned: - Complete process details (ID, name, status) - Download URLs for completed export processes - Import details with CSV report URLs for completed import processes

Important considerations: - Process ID must exist in your account and not be deleted - Completed export processes include download URLs - Completed import processes include CSV report URLs with details about problematic records - Different process types return different result structures

Parameters
processIdinteger · int64 · pathrequired
Id of the process
Request body
No body.
Responses
200 Process information retrieved successfully400 bad request404 Process ID not found
idinteger · int64required
Unique identifier of the process
nameenumrequired
Name/type of the process
"IMPORTUSER" "SEARCH_EXPORT_USERS" "TRANS-CALC" "TRANS-GLOBAL-CALC" "CAMPAIGN_PROCESSING" "LIST_EXPORT" "CONTACT_EXPORT"
statusenumrequired
Current status of the process
"queued" "processing" "completed" "failed" "cancelled"
infoobjectoptional
Additional process information, only returned for completed IMPORTUSER processes. Contains URLs to CSV files with details about problematic records.
8 fields
importobjectoptional
Import process details with URLs to CSV reports
7 fields
invalid_emailsstringoptional
URL to CSV file containing invalid email addresses, or null if none
duplicate_contact_idstringoptional
URL to CSV file containing duplicate contact IDs, or null if none
duplicate_ext_idstringoptional
URL to CSV file containing duplicate external IDs, or null if none
duplicate_email_idstringoptional
URL to CSV file containing duplicate email IDs, or null if none
duplicate_phone_idstringoptional
URL to CSV file containing duplicate phone numbers, or null if none
duplicate_whatsapp_idstringoptional
URL to CSV file containing duplicate WhatsApp numbers, or null if none
duplicate_landline_number_idstringoptional
URL to CSV file containing duplicate landline numbers, or null if none
export_urlstring · urloptional
Download URL for completed export processes (returned for SEARCH_EXPORT_USERS, SEARCH_EXPORT_USERS_API, CAMPAIGN_USER_DETAILS, and EXPORT_WEBHOOK process types)
Try it
GET/processesGet background processes
getProcessesapi-key

Retrieves a list of background processes from your Brevo account with filtering and pagination.

Use this to: - Monitor background process activity and status - Track long-running operations and tasks - Find process IDs for detailed status checking - Review process history and performance - Identify failed or stuck processes for troubleshooting

Key information returned: - Process details (ID, name, status) - Export download URLs for completed export processes - Import details with CSV report URLs for completed import processes - Total count of processes for pagination

Important considerations: - Background processes handle long-running operations like imports and exports - Process status indicates current state (queued, processing, completed) - Export processes provide download URLs when completed - Import processes provide CSV report URLs with details about problematic records - Use pagination for accounts with many historical processes - Sort options available for creation order (ascending or descending) - Default limit is 10 results per page, maximum is 50

Parameters
limitinteger · int64 · queryoptional
Number limitation for the result returned
offsetinteger · int64 · queryoptional
Beginning point in the list to retrieve from.
sortenum · queryoptional
Sort the results in the ascending/descending order of record creation. Default order is descending if sort is not passed
Request body
No body.
Responses
200 Background processes retrieved successfully400 bad request
countinteger · int64required
Total number of processes available on your account
processesobject[]required
List of background processes on your account
13 fields
idinteger · int64required
Unique identifier of the process
nameenumrequired
Name/type of the process
"IMPORTUSER" "SEARCH_EXPORT_USERS" "TRANS-CALC" "TRANS-GLOBAL-CALC" "CAMPAIGN_PROCESSING" "LIST_EXPORT" "CONTACT_EXPORT"
statusenumrequired
Current status of the process
"queued" "processing" "completed" "failed" "cancelled"
infoobjectoptional
Additional process information, only returned for completed IMPORTUSER processes. Contains URLs to CSV files with details about problematic records.
8 fields
importobjectoptional
Import process details with URLs to CSV reports
7 fields
invalid_emailsstringoptional
URL to CSV file containing invalid email addresses, or null if none
duplicate_contact_idstringoptional
URL to CSV file containing duplicate contact IDs, or null if none
duplicate_ext_idstringoptional
URL to CSV file containing duplicate external IDs, or null if none
duplicate_email_idstringoptional
URL to CSV file containing duplicate email IDs, or null if none
duplicate_phone_idstringoptional
URL to CSV file containing duplicate phone numbers, or null if none
duplicate_whatsapp_idstringoptional
URL to CSV file containing duplicate WhatsApp numbers, or null if none
duplicate_landline_number_idstringoptional
URL to CSV file containing duplicate landline numbers, or null if none
export_urlstring · urloptional
Download URL for completed export processes (returned for SEARCH_EXPORT_USERS, SEARCH_EXPORT_USERS_API, CAMPAIGN_USER_DETAILS, and EXPORT_WEBHOOK process types)
Try it