Skip to content

Send transactional email (without template)

Send a fully custom transactional email without using a predefined template. You can define all content manually, including subject, HTML, text, variables, headers, and attachments.

HTTP method: POST

https://api.sender.net/v2/message/send


ParameterTypeDescription
fromobject requiredSender object containing ‘email’ and ‘name’. Both fields are required.
toobject requiredRecipient object containing ‘email’ (required) and optional ‘name’. This replaces ‘recipient_email’, which is still supported for backward compatibility.
recipient_emailstringDeprecated. Use the ‘to’ object instead. Retained for backward compatibility.
subjectstring requiredSubject line of the email.
textstringPlain-text version of the email body.
htmlstringHTML version of the email body.
headersobjectOptional headers to include (e.g., custom X- headers or charset).
variablesobjectA key-value list of dynamic variables to personalize the message content.
attachmentsobjectA list of files to attach, where keys are filenames and values are publicly accessible URLs.

const url = new URL("https://api.sender.net/v2/message/send");
let headers = {
"Authorization": "Bearer [your-token]",
"Content-Type": "application/json",
"Accept": "application/json",
};
let bodyContent = {
"from": {
"email": "[email protected]",
"name": "Sender"
},
"to": {
"email": "[email protected]",
"name": "Sender Support"
},
"subject": "Hello from Sender",
"text": "Hello from Sender",
"html": "Hello from <b>Sender</b>.",
"headers": {
"X-smth-custom": "custom_value_1",
"charset": "utf-8"
},
"variables": {
"firstname": "Sender",
"lastname": "Support"
},
"attachments": {
"FILE_NAME_1": "https://ATTACHMENT_URL/",
"FILE_NAME_2": "https://ATTACHMENT_URL/"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(bodyContent)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

Example Response
{
"success": true,
"message": "Email sent",
"emailId": "ep2W4y-7pn8o21-YPpLY9PR5Jy9-x7GYQ"
}