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).
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
No operation matches this filter.
Transactional emails 22
DELETE/smtp/blockedContacts/{email}Unblock or resubscribe a transactional contact
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.
emailstring · pathrequiredGET/smtp/blockedContactsGet the list of blocked or unsubscribed transactional contacts
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.
startDatestring · queryoptionalendDatestring · queryoptionallimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsendersstring[] · queryoptionalsortenum · queryoptionalsort is not passedcontactsobject[]optional6 fields
blockedAtstringrequiredemailstring · emailrequiredreasonobjectrequired2 fields
codeenumoptional"unsubscribedViaMA" "unsubscribedViaEmail" "adminBlocked" "unsubscribedViaApi" "hardBounce" "contactFlaggedAsSpam"messagestringoptionalsenderEmailstring · emailrequiredcountinteger · int64optionalDELETE/smtp/blockedDomains/{domain}Unblock an existing domain from the list of blocked domains
Unblocks an existing domain from the list of blocked domains
domainstring · pathrequiredGET/smtp/blockedDomainsGet the list of blocked domains
domainsstring[]requiredPOST/smtp/blockedDomainsAdd a new domain to the list of blocked domains
Blocks a new domain in order to avoid messages being sent to the same
domainstringrequiredPOST/smtp/deleteHardbouncesDelete hardbounces
Delete hardbounces. To use carefully (e.g. in case of temporary ISP failures)
contactEmailstring · emailoptionalendDatestringoptionalstartDatestringoptionalDELETE/smtp/email/{identifier}Delete scheduled emails by batchId or messageId
Delete scheduled batch of emails by batchId or single scheduled email by messageId
identifierstring · pathrequiredbatchId of scheduled emails batch (must be a valid UUIDv4) or the messageId of scheduled email (enclosed in angle brackets with @ sign, e.g. <...@domain>).POST/smtp/emailSend a transactional email
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.
attachmentobject[]optionalname 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 · byteoptionalnamestringoptionalcontent is provided.
urlstring · urloptionalbatchIdstringoptionalbccobject[]optional3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalccobject[]optional3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalheadersobjectoptionalsender.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"}
htmlContentstringoptionaltemplateId is not provided. Ignored when templateId is provided.
messageVersionsobject[]optionaltemplateId 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[]optional3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalccobject[]optional3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalhtmlContentstringoptionaltemplateId is not provided. Ignored when templateId is provided.
paramsobjectoptionalreplyToobjectoptional2 fields
emailstring · emailrequirednamestringoptionalsubjectstringoptionaltextContentstringoptionaltemplateId is provided.
toobject[]required3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalparamsobjectoptionalreplyToobjectoptional2 fields
emailstring · emailrequirednamestringoptionalscheduledAtstring · date-timeoptionalsenderobjectoptionaltemplateId 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 · emailoptionalid is not provided.idinteger · int64optionalemail is not provided. Use this field to select a sender with a specific IP pool (dedicated IP users only).namestringoptionalemail is provided.
subjectstringoptionaltemplateId is not provided.
tagsstring[]optionaltemplateIdinteger · int64optionaltextContentstringoptionaltemplateId is provided.
toobject[]optionalmessageVersions is not provided. Ignored when messageVersions is provided. Example: [{"name":"Jimmy", "email":"jimmy@example.com"}, {"name":"Joe", "email":"joe@example.com"}]
3 fields
contactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequirednamestringoptionalmessageIdstringoptionalmessageIdsstring[]optionalGET/smtp/emails/{uuid}Get the personalized content of a sent transactional email
<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>
uuidstring · pathrequiredattachmentCountinteger · int64optionalbodystringoptionaldatestringrequiredemailstring · emailrequiredeventsobject[]required2 fields
namestringrequiredtimestringrequiredsubjectstringrequiredtemplateIdinteger · int64optionalGET/smtp/emailsGet the list of transactional emails on the basis of allowed filters
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.
emailstring · queryoptionaltemplateIdinteger · int64 · queryoptionalmessageIdstring · queryoptionalstartDatestring · queryoptionalendDatestring · queryoptionalsortenum · queryoptionalsort is not passedlimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalcountinteger · int64optionaltransactionalEmailsobject[]optional8 fields
datestringrequiredemailstring · emailrequiredfromstring · emailoptionalmessageIdstringrequiredsubjectstringrequiredtagsstring[]optionaltemplateIdinteger · int64optionaluuidstringrequiredGET/smtp/emailStatus/{identifier}Fetch scheduled emails by batchId or messageId
Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)
identifierstring · pathrequiredbatchId 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 · queryoptionalendDate 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 · queryoptionalstartDate 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 · queryoptionalsort is not passed. Not valid when identifier is messageId.statusenum · queryoptionalstatus of the scheduled email batch or message. Not valid when identifier is messageId.limitinteger · int64 · queryoptionalmessageId.offsetinteger · int64 · queryoptionalmessageId.DELETE/smtp/log/{identifier}Delete an SMTP transactional log
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.
identifierstring · pathrequiredfrom_datestring · queryoptionalto_datestring · queryoptionalGET/smtp/statistics/aggregatedReportGet your transactional email activity aggregated over a period of time
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
startDatestring · queryoptionalendDatestring · queryoptionaldaysinteger · int64 · queryoptionaltagstring · queryoptionalblockedinteger · int64optionalclicksinteger · int64optionaldeliveredinteger · int64optionalhardBouncesinteger · int64optionalinvalidinteger · int64optionalopensinteger · int64optionalrangestringoptionalrequestsinteger · int64optionalsoftBouncesinteger · int64optionalspamReportsinteger · int64optionaluniqueClicksinteger · int64optionaluniqueOpensinteger · int64optionalunsubscribedinteger · int64optionalGET/smtp/statistics/eventsGet all your transactional email activity (unaggregated events)
This endpoint will show the aggregated stats for past 30 days by default if startDate and endDate OR days is not passed. The date range can not exceed 90 days
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalstartDatestring · queryoptionalendDatestring · queryoptionaldaysinteger · int64 · queryoptionalemailstring · email · queryoptionaleventenum · queryoptionaltagsstring · queryoptionalmessageIdstring · queryoptionaltemplateIdinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedeventsobject[]optional11 fields
datestringrequiredemailstring · emailrequiredeventenumrequired"bounces" "hardBounces" "softBounces" "delivered" "spam" "requests" "opened" "clicks" "invalid" "deferred" …fromstring · emailoptionalipstringoptionallinkstringoptionalmessageIdstringrequiredreasonstringoptionalsubjectstringoptionaltagstringoptionaltemplateIdinteger · int64optionalGET/smtp/statistics/reportsGet your transactional email activity aggregated per day
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.
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalstartDatestring · queryoptionalendDatestring · queryoptionaldaysinteger · int64 · queryoptionaltagstring · queryoptionalsortenum · queryoptionalsort is not passedreportsobject[]optional13 fields
blockedinteger · int64requiredclicksinteger · int64requireddatestring · daterequireddeliveredinteger · int64requiredhardBouncesinteger · int64requiredinvalidinteger · int64requiredopensinteger · int64requiredrequestsinteger · int64requiredsoftBouncesinteger · int64requiredspamReportsinteger · int64requireduniqueClicksinteger · int64requireduniqueOpensinteger · int64requiredunsubscribedinteger · int64requiredPOST/smtp/template/previewGenerate the rendered preview of transactional template
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.
emailstringoptionalparamsobjectoptional2 fields
FirstnamestringoptionalLastnamestringoptionaltemplateIdintegerrequiredfromEmailstringoptionalfromNamestringoptionalhtmlstringoptionalpreviewTextstringoptionalsubjectstringoptionalusedFeedNamesstring[]optionalPOST/smtp/templates/{templateId}/sendTestSend a template to your test list
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.
templateIdinteger · int64 · pathrequiredemailTostring · email[]optionalDELETE/smtp/templates/{templateId}Delete an inactive email template
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.
templateIdinteger · int64 · pathrequiredGET/smtp/templates/{templateId}Returns the template information
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).
templateIdinteger · int64 | string · pathrequiredcreatedAtstringrequireddoiTemplatebooleanoptionalhtmlContentstringrequiredidinteger · int64requiredisActivebooleanrequiredmodifiedAtstringrequirednamestringrequiredreplyTostring · emailrequiredsenderobjectrequired3 fields
emailstring · emailoptionalidstringoptionalnamestringoptionalsubjectstringrequiredtagstringrequiredtestSentbooleanrequiredtoFieldstringrequiredcustomTemplateIdstringoptionalPUT/smtp/templates/{templateId}Update an email template
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.
templateIdinteger · int64 | string · pathrequiredattachmentUrlstring · urloptionalhtmlContentstringoptionalhtmlUrlstring · urloptionalisActivebooleanoptionalreplyTostring · emailoptionalsenderobjectoptional3 fields
emailstring · emailoptionalidinteger · int64optionalnamestringoptionalsubjectstringoptionaltagstringoptionaltemplateNamestringoptionaltoFieldstringoptionalGET/smtp/templatesGet the list of email templates
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).
templateStatusboolean · queryoptionallimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passededitorTypeenum · queryoptionalrichTextEditor is supported as a filter value.countinteger · int64optionaltemplatesobject[]optional17 fields
createdAtstringrequireddoiTemplatebooleanoptionalhtmlContentstringrequiredidinteger · int64requiredisActivebooleanrequiredmodifiedAtstringrequirednamestringrequiredreplyTostring · emailrequiredsenderobjectrequired3 fields
emailstring · emailoptionalidstringoptionalnamestringoptionalsubjectstringrequiredtagstringrequiredtestSentbooleanrequiredtoFieldstringrequiredcustomTemplateIdstringoptionalPOST/smtp/templatesCreate an email template
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.
attachmentUrlstring · urloptionalhtmlContentstringoptionalhtmlUrlstring · urloptionalisActivebooleanoptionalreplyTostring · emailoptionalsenderobjectrequired3 fields
emailstring · emailoptionalidinteger · int64optionalnamestringoptionalsubjectstringrequiredtagstringoptionaltemplateNamestringrequiredtoFieldstringoptionalidinteger · int64requiredContacts 30
GET/contacts/{identifier}/campaignStatsGet email campaigns' statistics for a contact
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.
identifierstring | integer · pathrequiredstartDatestring · queryoptionalendDatestring · queryoptionalclickedobject[]optional6 fields
campaignIdinteger · int64requiredlinksobject[]required4 fields
countinteger · int64requiredeventTimestringrequiredipstringrequiredurlstringrequiredcomplaintsobject[]optional2 fields
campaignIdinteger · int64requiredeventTimestringrequireddeliveredobject[]optional2 fields
campaignIdinteger · int64requiredeventTimestringrequiredhardBouncesobject[]optional2 fields
campaignIdinteger · int64requiredeventTimestringrequiredmessagesSentobject[]optional2 fields
campaignIdinteger · int64requiredeventTimestringrequiredopenedobject[]optional4 fields
campaignIdinteger · int64requiredcountinteger · int64requiredeventTimestringrequiredipstringrequiredsoftBouncesobject[]optional2 fields
campaignIdinteger · int64requiredeventTimestringrequiredtransacAttributesobject[]optional3 fields
orderDatestring · daterequiredorderIdinteger · int64requiredorderPricenumber · floatrequiredunsubscriptionsobjectoptional7 fields
adminUnsubscriptionobject[]required2 fields
eventTimestringrequiredipstringoptionaluserUnsubscriptionobject[]required3 fields
campaignIdinteger · int64requiredeventTimestringrequiredipstringoptionalDELETE/contacts/{identifier}Delete a contact
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.
identifierstring | integer · pathrequiredidentifierTypeenum · queryoptionalGET/contacts/{identifier}Get a contact's details
<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.
identifierstring | integer · pathrequiredidentifierTypeenum · queryoptionalstartDatestring · queryoptionalendDatestring · queryoptionalPUT/contacts/{identifier}Update a contact
<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
identifierstring | integer · pathrequiredidentifierTypeenum · queryoptionalattributesobjectoptionalemailBlacklistedbooleanoptionalext_idstringoptionallistIdsinteger · int64[]optionalsmsBlacklistedbooleanoptionalsmtpBlacklistSenderstring · email[]optionalunlinkListIdsinteger · int64[]optionalforceMergebooleanoptionallast_modified timestamp is retained; the other is deleted. When false (default), a 4xx error is returned on identifier conflict.falseDELETE/contacts/attributes/{attributeCategory}/{attributeName}Delete an attribute
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.
attributeCategoryenum · pathrequiredattributeNamestring · pathrequiredPOST/contacts/attributes/{attributeCategory}/{attributeName}Create contact attribute
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.
attributeCategoryenum · pathrequiredattributeNamestring · pathrequiredenumerationobject[]optional2 fields
labelstringrequiredvalueintegerrequiredisRecurringbooleanoptionalmultiCategoryOptionsstring[]optionaltypeenumoptional"text" "date" "float" "boolean" "id" "category" "multiple-choice" "user"valuestringoptionalPUT/contacts/attributes/{attributeCategory}/{attributeName}Update contact attribute
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.
attributeCategoryenum · pathrequiredattributeNamestring · pathrequiredenumerationobject[]optional2 fields
labelstringrequiredvalueintegerrequiredmultiCategoryOptionsstring[]optionalvaluestringoptionalDELETE/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}Delete a multiple-choice attribute option
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.
attributeTypeenum · pathrequiredmultipleChoiceAttributestring · pathrequiredmultipleChoiceAttributeOptionstring · pathrequiredGET/contacts/attributesList all attributes
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.
attributesobject[]required9 fields
calculatedValuestringoptionalcategoryenumrequired"normal" "transactional" "category" "calculated" "global"enumerationobject[]optional3 fields
labelstringrequiredvalueinteger · int64requiredvalueStr for the original string representation.valueStrstringrequiredvalue.multiCategoryOptionsstring[]optionalnamestringrequiredtypeenumoptional"text" "date" "float" "id" "boolean" "multiple-choice" "user"POST/contacts/batchUpdate multiple contacts
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.
contactsobject[]optional10 fields
attributesobjectoptionalemailstring · emailoptionalemailBlacklistedbooleanoptionalext_idstringoptionalidinteger · int64optionallistIdsinteger · int64[]optionalsmsstringoptionalsmsBlacklistedbooleanoptionalsmtpBlacklistSenderstring · email[]optionalunlinkListIdsinteger · int64[]optionalPOST/contacts/doubleOptinConfirmationCreate Contact via DOI (Double-Opt-In) Flow
<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>
attributesobjectoptionalcontactPixelTrackingConsentbooleanoptionaltrue 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 · emailrequiredexcludeListIdsinteger · int64[]optionalincludeListIdsinteger · int64[]requiredredirectionUrlstring · urlrequiredtemplateIdinteger · int64requiredPOST/contacts/exportExport contacts
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.
customContactFilterobjectrequired7 fields
actionForContactsenumoptional"allContacts" "subscribed" "unsubscribed" "unsubscribedPerList"actionForEmailCampaignsenumoptional"openers" "nonOpeners" "clickers" "nonClickers" "unsubscribed" "hardBounces" "softBounces"actionForSmsCampaignsenumoptional"hardBounces" "softBounces" "unsubscribed"emailCampaignIdinteger · int64optionallistIdinteger · int64optionalsegmentIdinteger · int64optionalsmsCampaignIdinteger · int64optionaldisableNotificationbooleanoptionalfalseexportAttributesstring[]optionalexportMandatoryAttributesbooleanoptionaltrueexportMetadatastring[]optionalexportDateInUTCbooleanoptionalfalseexportSubscriptionStatusstring[]optionalnotifyUrlstring · urloptionalprocessIdinteger · int64requiredGET/contacts/folders/{folderId}/listsGet lists in a folder
<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>
folderIdinteger · int64 · pathrequiredlimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcountinteger · int64optionallistsobject[]optionalDELETE/contacts/folders/{folderId}Delete a folder (and all its lists)
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.
folderIdinteger · int64 · pathrequiredGET/contacts/folders/{folderId}Returns a folder's details
<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>
folderIdinteger · int64 · pathrequiredidinteger · int64requirednamestringrequiredtotalBlacklistedinteger · int64requiredtotalSubscribersinteger · int64requireduniqueSubscribersinteger · int64requiredPUT/contacts/folders/{folderId}Update a folder
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.
folderIdinteger · int64 · pathrequirednamestringoptionalGET/contacts/foldersGet all folders
<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>
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcountinteger · int64optionalfoldersobject[]optionalPOST/contacts/foldersCreate a folder
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.
namestringoptionalidinteger · int64requiredPOST/contacts/importImport contacts
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.
disableNotificationbooleanoptionalfalseemailBlacklistbooleanoptionalfalseemptyContactsAttributesbooleanoptionalupdateExistingContacts set to true )
falsefileBodystringoptionalfileUrlstring · urloptionaljsonBodyobject[]optional2 fields
attributesobjectoptionalemailstringoptionallistIdsinteger · int64[]optionalconsentGroupIdsinteger · int64[]optionalnewListobjectoptional2 fields
folderIdinteger · int64optionallistNamestringoptionalnotifyUrlstring · urloptionalsmsBlacklistbooleanoptionalfalseupdateExistingContactsbooleanoptionaltrueprocessIdinteger · int64requiredPOST/contacts/lists/{listId}/contacts/addAdd existing contacts to a list
listIdinteger · int64 · pathrequiredcontactsobjectrequired4 fields
failurestring · email[] | integer · int64[]optionalprocessIdinteger · int64optionalsuccessstring · email[] | integer · int64[]optionaltotalinteger · int64optionalPOST/contacts/lists/{listId}/contacts/removeDelete a contact from a list
listIdinteger · int64 · pathrequiredcontactsobjectrequired4 fields
failurestring · email[] | integer · int64[]optionalprocessIdinteger · int64optionalsuccessstring · email[] | integer · int64[]optionaltotalinteger · int64optionalGET/contacts/lists/{listId}/contactsGet contacts in a list
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.
listIdinteger · int64 · pathrequiredmodifiedSincestring · queryoptionallimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcontactsobject[]requiredcountinteger · int64requiredDELETE/contacts/lists/{listId}Delete a list
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.
listIdinteger · int64 · pathrequiredGET/contacts/lists/{listId}Get a list's details
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).
listIdinteger · int64 · pathrequiredstartDatestring · queryoptionalendDatestring · queryoptionalPUT/contacts/lists/{listId}Update a list
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.
listIdinteger · int64 · pathrequiredfolderIdinteger · int64optionalnamestringoptionalGET/contacts/listsGet all the lists
<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>
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcountinteger · int64optionallistsobject[]optionalPOST/contacts/listsCreate a list
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.
folderIdinteger · int64requirednamestringrequiredidinteger · int64requiredGET/contacts/segmentsGet all the segments
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.
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcountinteger · int64optionalsegmentsobject[]optional4 fields
categoryNamestringrequiredidinteger · int64requiredsegmentNamestringrequiredupdatedAtstringoptionalGET/contactsGet all the contacts
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.
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalmodifiedSincestring · queryoptionalcreatedSincestring · queryoptionalsortenum · queryoptionalsort is not passedidsinteger · int64[] · queryoptionalsegmentIdinteger · int64 · queryoptionallistIdsinteger · int64[] · queryoptionalfilterstring · queryoptionalcontactsobject[]requiredcountinteger · int64requiredPOST/contactsCreate a contact
<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>
attributesobjectoptionalemailstring · emailoptionalemailBlacklistedbooleanoptionalext_idstringoptionallistIdsinteger · int64[]optionalsmsBlacklistedbooleanoptionalsmtpBlacklistSenderstring · email[]optionalupdateEnabledbooleanoptionalfalseforceMergebooleanoptionallast_modified timestamp is retained; the other is deleted. When false (default), a 4xx error is returned on identifier conflict.falsegetIdbooleanoptionalid of the surviving contact after merge.falseidinteger · int64optionalSenders 7
GET/senders/{senderId}/ipsGet all the dedicated IPs for a specific sender
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
senderIdinteger · int64 · pathrequiredipsobject[]required4 fields
domainstringrequiredidinteger · int64requiredipstringrequiredweightinteger · int64requiredPUT/senders/{senderId}/validateValidate a sender using OTP
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
senderIdinteger · int64 · pathrequiredotpintegerrequiredDELETE/senders/{senderId}Delete a sender
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
senderIdinteger · int64 · pathrequiredPUT/senders/{senderId}Update a sender
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
senderIdinteger · int64 · pathrequiredemailstring · emailoptionalipsobject[]optional3 fields
domainstringrequiredipstringrequiredweightinteger · int64optionalnamestringoptionalGET/senders/ipsGet all the dedicated IPs for your account
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
ipsobject[]required4 fields
idinteger · int64requiredactivebooleanrequireddomainstringrequiredipstringrequiredGET/sendersGet email senders
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
ipstring · queryoptionaldomainstring · queryoptionalsendersobject[]optional8 fields
activebooleanrequiredemailstring · emailrequiredidinteger · int64requiredipsobject[]required3 fields
domainstringrequiredipstringrequiredweightinteger · int64requirednamestringrequiredPOST/sendersCreate email sender
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
emailstring · emailrequiredipsobject[]optional3 fields
domainstringrequiredipstringrequiredweightinteger · int64optionalnamestringrequireddkimErrorbooleanoptionalidinteger · int64requiredspfErrorbooleanoptionalDomains 5
PUT/senders/domains/{domainName}/authenticateAuthenticate a sender domain
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
domainNamestring · pathrequireddomain_namestringrequiredmessagestringrequiredDELETE/senders/domains/{domainName}Delete a sender domain
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
domainNamestring · pathrequiredGET/senders/domains/{domainName}Get a sender domain configuration
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
domainNamestring · pathrequireddomainstringrequiredverifiedbooleanrequiredauthenticatedbooleanrequireddns_recordsobjectrequired15 fields
brevo_codeobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequireddkim_recordobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequireddmarc_recordobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequiredGET/senders/domainsGet the list of all sender domains
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
domainsobject[]required10 fields
idstringrequireddomain_namestringrequiredauthenticatedbooleanrequiredverifiedbooleanrequiredipstringoptionalproviderstringrequiredcreatorobjectrequired3 fields
idstringrequiredemailstringrequiredcreationDatestring · date-timerequiredcountintegerrequiredcurrent_pageintegerrequiredtotal_pagesintegerrequiredPOST/senders/domainsCreate a new sender domain
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
namestring · hostnamerequiredidinteger · int64requireddomain_namestringrequireddomain_providerstringoptionalmessagestringrequireddns_recordsobjectoptional15 fields
brevo_codeobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequireddkim_recordobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequireddmarc_recordobjectrequired4 fields
host_namestringrequiredtypestringrequiredvaluestringrequiredstatusbooleanrequiredWebhooks 6
DELETE/webhooks/{webhookId}Delete a webhook
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
webhookIdinteger · int64 · pathrequiredGET/webhooks/{webhookId}Get a webhook details
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
webhookIdinteger · int64 · pathrequiredauthobjectoptionalbatchedbooleanoptionalcreatedAtstringrequireddescriptionstringrequiredeventsstring[]requiredheadersobject[]optionalidinteger · int64requiredmodifiedAtstringrequiredtypeenumrequired"marketing" "transactional" "inbound"domainstringoptionalurlstring · urlrequiredPUT/webhooks/{webhookId}Update a webhook
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
webhookIdinteger · int64 · pathrequiredauthobjectoptional2 fields
tokenstringoptionaltypestringoptionalbatchedbooleanoptionaldescriptionstringoptionaldomainstringoptionalinboundeventsenum[]optionalsent 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
#### replyheadersobject[]optional2 fields
keystringoptionalvaluestringoptionalurlstring · urloptionalPOST/webhooks/exportExport webhook event history as CSV file
<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
daysintegeroptionalemailstringoptionalendDatestringoptionaleventenumrequired"invalid_parameter" "missing_parameter" "hardBounce" "softBounce" "delivered" "spam" "request" "opened" "click" "invalid" …messageIdstringoptionalnotifyURLstringrequiredsortstringoptionalstartDatestringoptionaltypeenumrequired"transactional" "marketing"webhookIdintegeroptionalprocessIdinteger · int64requiredGET/webhooksGet all webhooks
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
typeenum · queryoptionalsortenum · queryoptionalwebhooksobject[]requiredPOST/webhooksCreate a webhook
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
authobjectoptional2 fields
tokenstringoptionaltypestringoptionalbatchedbooleanoptionalchannelenumoptional"email" "sms" · default "email"descriptionstringoptionaldomainstringoptionalinboundeventsenum[]optionalinboundEmailProcessed). 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[]optional2 fields
keystringoptionalvaluestringoptionaltypeenumoptional"transactional" "marketing" "inbound" · default "transactional"urlstring · urlrequiredidinteger · int64requiredAccount 2
GET/accountGet account details
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
GET/organization/activitiesGet user activity logs
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.
startDatestring · queryoptionalendDatestring · queryoptionalemailstring · queryoptionallimitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionallogsobject[]optional5 fields
actionstringrequireddatestringrequireduser_agentstringrequireduser_emailstringrequireduser_ipstringrequiredProcess 2
GET/processes/{processId}Get process details
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
processIdinteger · int64 · pathrequiredidinteger · int64requirednameenumrequired"IMPORTUSER" "SEARCH_EXPORT_USERS" "TRANS-CALC" "TRANS-GLOBAL-CALC" "CAMPAIGN_PROCESSING" "LIST_EXPORT" "CONTACT_EXPORT"statusenumrequired"queued" "processing" "completed" "failed" "cancelled"infoobjectoptional8 fields
importobjectoptional7 fields
invalid_emailsstringoptionalduplicate_contact_idstringoptionalduplicate_ext_idstringoptionalduplicate_email_idstringoptionalduplicate_phone_idstringoptionalduplicate_whatsapp_idstringoptionalduplicate_landline_number_idstringoptionalexport_urlstring · urloptionalGET/processesGet background processes
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
limitinteger · int64 · queryoptionaloffsetinteger · int64 · queryoptionalsortenum · queryoptionalsort is not passedcountinteger · int64requiredprocessesobject[]required13 fields
idinteger · int64requirednameenumrequired"IMPORTUSER" "SEARCH_EXPORT_USERS" "TRANS-CALC" "TRANS-GLOBAL-CALC" "CAMPAIGN_PROCESSING" "LIST_EXPORT" "CONTACT_EXPORT"statusenumrequired"queued" "processing" "completed" "failed" "cancelled"infoobjectoptional8 fields
importobjectoptional7 fields
invalid_emailsstringoptionalduplicate_contact_idstringoptionalduplicate_ext_idstringoptionalduplicate_email_idstringoptionalduplicate_phone_idstringoptionalduplicate_whatsapp_idstringoptionalduplicate_landline_number_idstringoptionalexport_urlstring · urloptional