Send a transactional email

Authentication

api-keystring

The API key should be passed in the request headers as api-key for authentication.

Request

Request body parameters for sending a transactional email
attachmentlist of objectsOptional
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.
batchIdstringOptional
UUIDv4 identifier for the scheduled batch of transactional emails. If omitted, a valid UUIDv4 batch identifier is automatically generated.
bcclist of objectsOptional
Array of BCC recipient objects. Each object contains an email address and an optional name.
cclist of objectsOptional
Array of CC recipient objects. Each object contains an email address and an optional name.
headersmap from strings to anyOptional
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.

messageVersionslist of objectsOptional
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.
paramsmap from strings to anyOptional

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.

scheduledAtdatetimeOptional

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.

subjectstringOptional

Email subject line. Required when templateId is not provided.

tagslist of stringsOptional
Array of tags for categorizing and filtering emails
templateIdlongOptional
Template identifier
textContentstringOptional

Plain text body content of the email. Ignored when templateId is provided.

tolist of objectsOptional
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"}]`

Response

Transactional email sent successfully
messageIdstring or null
Message ID of the transactional email sent
messageIdslist of strings or null

Errors