Send Email API
The transmission API lets you to send emails to numerous recipients.
Note: Transmission refers to a campaign. For example, transmission_id means the campaign's unique ID.
Request Type
POST
Request URL
https://campaigns.zoho.com/emailapi/v2/transmission
Content-Type
application/json
List of Request Body Attributes
Parameters | Data Type | Description |
transmission_name | String | A name for the email. (Max length: 150) |
from | JSON object | A sender address. |
recipients | JSON array | A list of recipients who will receive the email. |
address | String | The email address to deliver the emails. (Max length: 100) |
name | String | Indicates the sender's name (Max length: 100) |
reply_to | String | The email address to which the subscribers reply. This is an optional parameter. (Max length: 100) |
subject | String | The email's subject line. (Max length: 200) |
content | String | The generated message for the email. |
html | String | The HTML for the email's text/HTML part. |
text | String | The text for the email's text/plain part. If 'html' node is provided, text need not be specified as it is automatically generated. |
additional_data | String | Any additional information for the email. |
merge_data | String | Any merge tags used in the email. |
recipient_list_id | String | The ID of a List in which the recipients are a part of. |
template_id | String | The ID of the template used to load the content of the email. |
options | JSONObject | Options to customize your transmission. |
schedule_at | Long | UTC timestamp in milliseconds that represents the time at which the transmission must be sent |
tracking (deprecated, will be removed soon) | String | Indicates whether opens/clicks tracking must be enabled or disabled for this campaign. If this parameter is absent, tracking will be enabled by default. Values: enabled/disabled |
open_tracking | String | Indicates whether open tracking must be enabled or disabled for this transmission. If the parameter is absent, tracking will be enabled by default. Values: enabled/disabled |
click_tracking | String | Indicates whether click tracking must be enabled or disabled for this transmission. If the parameter is absent, tracking will be enabled by default. Values: enabled/disabled |
List of Response Body Attributes
Parameters | Data Type | Description |
rejected_recipients | Integer | The count of the recipients rejected by our API. Rejection maybe due to invalid syntax. |
accepted_recipients | Integer | The count of the recipients accepted by our API. |
response | JSON Object | Contains the response details of the API. |
code | Integer | Success or failure code. |
message | String | Success or failure message returned by the API. |
transmission_id | String | Unique ID of the transmission. |
errors | JSON Array | Contains the error details of the API such as 'code' and 'message'. |
Unsubscribe Link
Unsubscribe links can be included in the content using an anchor tag with the attribute data-zcea-unsubcribe="1". Refer to the 'Sample Request Payload for transmission with unsubscribe link' to your right. If you had configured an unsubscribe webhook, it will be called when a contact clicks this link. This webhook will contain the contact details, from which you can get the contact email and add them to your suppression list using our Suppression API.
Possible Error Cases
Error Codes | Description |
400001 | Transmission name not provided. |
400002 | The recipient list is not provided. |
400003 | Content details are not provided. |
400004 | Sender details are not provided. |
400005 | The sender address is not provided. |
400006 | Subject is not provided. |
400007 | Content body is not provided. |
400008 | Invalid sender address. |
400009 | The sender domain is not authenticated. Please authenticate your domain before sending emails. |
400011 | Recipient limit exceeded. |
400012 | CNAME record not verified for bounce domain. |
400013 | None of the recipients are valid. |
400015 | Your account license has expired. |
400016 | You do not have sufficient credits to perform this action. |
400017 | Schedule time is lesser than current time. |
400024 | Invalid tracking option |
400025 | Invalid Reply-To address |
400026 | Your trial period has ended |
Sample Request Payload for Transmission with inline content
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"name": "Lucy Girea",
"additional_data": {
"phone" : "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"content": {
"from": {
"address": "aron@marketing.campaigns.zoho.com",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker",
"html": "<html><body>Welcome $[first_name|Customer]$, your content here!<br></body></html>",
}
}
Show full
Show less
Sample Request Payload for Transmission with pre-configured recipient list
Copied{
"transmission_name": "hello_customer",
"recipient_list_id": "8000000097065",
"content": {
"from": {
"address": "aron@vnaash.in",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker 2",
"text": "Welcome, $[first_name], your content here!"
}
}
Sample Request Payload for Transmission with template content
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"additional_data": {
"phone": "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"content": {
"from": {
"address": "aron@vnaash.in",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker 2",
"template_id": "8000000124003"
}
}
Show full
Show less
Sample Request Payload for scheduled transmission
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"name": "Lucy Girea",
"additional_data": {
"phone": "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"options": {
"schedule_at": 1728366058000
},
"content": {
"from": {
"address": "aron@marketing.campaigns.zoho.com",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker",
"html": "<html><body>Welcome $[first_name|Customer]$, your content here!<br></body></html>"
}
}
Show full
Show less
Sample Request Payload for transmission with tracking disabled
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"name": "Lucy Girea",
"additional_data": {
"phone": "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"options": {
"open_tracking": "disabled",
"click_tracking": "disabled"
},
"content": {
"from": {
"address": "aron@marketing.campaigns.zoho.com",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker",
"html": "<html><body>Welcome $[first_name|Customer]$, your content here!<br></body></html>"
}
}
Show full
Show less
Sample Request Payload for transmission with unsubscribe link
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"additional_data": {
"phone": "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"content": {
"from": {
"address": "aron@vnaash.in",
"name": "Aron Fletcher"
},
"subject": "Welcome to Zylker 2",
"html": "<html><body>Welcome $[first_name|Customer]$, your content goes here <br/><br/> <a href=\"https://zylker.com.com/unsubscribe\" data-zcea-unsubscribe=\"1\" title=\"Unsub\">Unsubscribe</a></body></html>"
}
}
Show full
Show less
Sample Request Payload for transmission with reply-to address
Copied{
"transmission_name": "hello_customer",
"recipients": [
{
"address": "lucy@example.campaigns.zoho.com",
"name": "Lucy Girea",
"additional_data": {
"phone" : "+919876543210",
"country": "CA"
},
"merge_data": {
"first_name": "Lucy"
}
}
],
"content": {
"from": {
"address": "aron@marketing.campaigns.zoho.com",
"name": "Aron Fletcher"
},
"reply_to": "aron@reply.campaigns.zoho.com",
"subject": "Welcome to Zylker",
"html": "<html><body>Welcome $[first_name|Customer]$, your content here!<br></body></html>",
}
Show full
Show less
Sample Response - Success
Copied{
"rejected_recipients": 1,
"accepted_recipients": 1,
"response": {
"code": 200001,
"message": "Your transmission has been scheduled successfully"
},
"transmission_id": "146429000000058021"
}
Sample Response - Failure
Copied{
"errors": [
{
"code": 400012,
"message": "CNAME not verified for bounce domain"
},
{
"code": 400009,
"message": "Sender domain not authenticated. Please authenticate your domain before sending"
}
]
}