Skip to content

Send Transactional Email

POST
/v1/send/email
curl --request POST \
--url https://api.contacta.mx/v1/send/email \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "from": { "name": "John Doe", "email": "john@doe.com" }, "to": [ { "name": "Jane Smith", "email": "jane@smith.com" } ], "subject": "Welcome to Our Service", "text": "Hello, this is a test email.", "html": "<p>Hello, this is a test email.</p>", "variables": { "variable_a_var": "Variable A Value" }, "attachment": [ { "name": "document.pdf", "url": "https://www.buildquickbots.com/whatsapp/media/sample/pdf/sample01.pdf" } ], "attachment_buffer": [ { "name": "document.pdf", "content": "data:(mime type),base64,JVBERi0xLjQKJazc..." } ] }'

Sends a transactional email using a custom from, subject, and html/text body.

Use this endpoint when you need full control over the email content. For template-based sends, use POST /v1/send/template instead.

Request body for sending a transactional email.

Either html or text must be provided. Both are accepted simultaneously.

Media typeapplication/json
object
from
required
object
name
required

Sender display name

string
Example
John Doe
email
required

Sender email address (must be an authorized sender in your account)

string format: email
Example
john@doe.com
to
required

List of recipients

Array<object>
object
name
required

Recipient display name

string
Example
Jane Smith
email
required

Recipient email address

string format: email
Example
jane@smith.com
subject
required

Email subject line

string
Example
Welcome to Our Service
text
required

Plain-text version of the email body

string
Example
Hello, this is a test email.
html
required

HTML version of the email body

string
Example
<p>Hello, this is a test email.</p>
variables

Dynamic variables to inject into the email content. Available from variable_a_var to variable_z_var.

Use them in your content with {{variable_a_var}} syntax.

object
variable_a_var

Use in dynamic content as {{variable_a_var}}

string
Example
Variable A Value
attachment

Files to attach via URL. The server will download and attach each file. (Max size per file: 10MB)

Array<object>
object
name
required

File name as it will appear in the attachment

string
Example
document.pdf
url
required

Publicly accessible URL of the file

string format: uri
Example
https://www.buildquickbots.com/whatsapp/media/sample/pdf/sample01.pdf
attachment_buffer

Files to attach via base64-encoded content. (Max size per file: 10MB)

Array<object>
object
name
required

File name as it will appear in the attachment

string
Example
document.pdf
content
required

Base64-encoded file content

string format: byte
Example
data:(mime type),base64,JVBERi0xLjQKJazc...

Email successfully queued

Media typeapplication/json
object
status
boolean
message
string
data

UUIDs assigned to each queued email, one per recipient

Array<string>
Example
{
"status": true,
"message": "Succesfully queued email",
"data": [
"1b9d6e34-634a-4762-8d5a-f9cb9165d432"
]
}

Unauthorized — invalid or missing API token

Media typeapplication/json
object
status
boolean
message
string
data
object
message
string
code
integer
Example
{
"status": false,
"message": "An http error occurred. If error persists, contact soporte@contacta.mx",
"data": {
"message": "Your key auth is not valid, please check with your administrator",
"code": 401
}
}

Insufficient credits to complete the send

Media typeapplication/json
object
status
boolean
message
string
data
object
message
string
code
integer
Example
{
"status": false,
"message": "An http error occurred. If error persists, contact soporte@contacta.mx",
"data": {
"message": "Not enough credits for make this send, please check and retry",
"code": 402
}
}

Unprocessable entity — validation failed on request body

Media typeapplication/json
object
status
boolean
message
string
data
object
message
string
code
integer
Example
{
"status": false,
"message": "An http error occurred. If error persists, contact soporte@contacta.mx",
"data": {
"message": "Missing required fields, please verify your request",
"code": 422
}
}

One or more recipients are blacklisted (unsubscribed)

Media typeapplication/json
object
status
boolean
message
string
data
object
message
string
code
integer
Example
{
"status": false,
"message": "An http error occurred. If error persists, contact soporte@contacta.mx",
"data": {
"message": "One or more email addresses are blacklisted for unsubscribing, please check.",
"code": 451
}
}