Send Batch Emails Using Template
Send a batch of transactional emails to multiple recipients using a pre-created CPaaS template.
Endpoint
Request URL
https://cpaas.zoho.com/v1.1/email/template/batch Copied!
Request Parameters
- Request Headers
API Key of an agent. Send the header as Authorization: Zoho-enczapikey {apiKey}.
Follow the steps here to generate an API key
- Request Body
application/json
Show Sub-Attributes
Array of CC recipient email addresses.
Show Sub-Attributes
Unique key of the email template. Use either template_key or template_alias.
Array of BCC recipient email addresses.
Show Sub-Attributes
Array of file attachments. For each attachment supply EITHER content (inline base64) OR file_cache_key (a key returned by the file-upload API) — the two are mutually exclusive. If both are present, file_cache_key takes precedence and content is ignored. When content is used, name and mime_type are required; when file_cache_key is used, name is optional.
[
{
"mime_type": "application/pdf",
"name": "invoice.pdf",
"content": "JVBERi0xLjQKJcTl8uXrp... (base64-encoded bytes)"
},
{
"file_cache_key": "ea36f19a.a59e41437e3e1a1.h1.bbeabef0-d2c5-11f1-8876-2a30dd3b833c.1a18258b05f",
"name": "terms.pdf"
}
]Show Sub-Attributes
Key of a file previously uploaded via the file-upload API (POST /v1.1/files). Required unless content is provided. Mutually exclusive with content.
MIME type of the file. Required when content is used.
File name shown to the recipient. Required when content is used; optional with file_cache_key.
Base64-encoded file content. Required unless file_cache_key is provided. Mutually exclusive with file_cache_key.
Reply-to email address.
Verified bounce (Return-Path) address that receives bounce notifications for this email. Must be a bounce address created and verified under the sending agent's domain.
The sender's email address and optional display name.
Show Sub-Attributes
Enable or disable open tracking.
Alias of the email template. Use either template_alias or template_key.
List of recipients. Each recipient can have individual merge info.
Show Sub-Attributes
Show Sub-Attributes
Merge variables specific to this recipient.
Show Sub-Attributes
Enable or disable click tracking.
Sample Request
curl --request POST \
--url https://cpaas.zoho.com/v1.1/email/template/batch \
--header 'Authorization: Zoho-enczapikey {apiKey}' \
--header 'content-type: application/json' \
--data '{"cc":[{"email_address":{"address":"manager@zylker.com","name":"Manager"}}],"template_key":"1234567890","bcc":[{"email_address":{"address":"archive@zylker.com","name":"Archive"}}],"attachments":[{"mime_type":"application/pdf","name":"invoice.pdf","content":"JVBERi0xLjQKJcTl8uXrp... (base64-encoded bytes)"},{"file_cache_key":"ea36f19a.a59e41437e3e1a1.h1.bbeabef0-d2c5-11f1-8876-2a30dd3b833c.1a18258b05f","name":"terms.pdf"}],"reply_to":[{"address":"support@zylker.com","name":"Support"}],"bounce_address":"bounce@bounce-zem.zylker.com","from":{"address":"accounts@info.zylker.com","name":"Paula"},"track_opens":true,"template_alias":"account-confirmation","to":[{"email_address":{"address":"accounts@info.zylker.com","name":"accounts"},"merge_info":{"property1":"string","property2":"string"}}],"track_clicks":true}'Sample Request Body
{
"cc": [
{
"email_address": {
"address": "manager@zylker.com",
"name": "Manager"
}
}
],
"template_key": "1234567890",
"bcc": [
{
"email_address": {
"address": "archive@zylker.com",
"name": "Archive"
}
}
],
"attachments": [
{
"mime_type": "application/pdf",
"name": "invoice.pdf",
"content": "JVBERi0xLjQKJcTl8uXrp... (base64-encoded bytes)"
},
{
"file_cache_key": "ea36f19a.a59e41437e3e1a1.h1.bbeabef0-d2c5-11f1-8876-2a30dd3b833c.1a18258b05f",
"name": "terms.pdf"
}
],
"reply_to": [
{
"address": "support@zylker.com",
"name": "Support"
}
],
"bounce_address": "bounce@bounce-zem.zylker.com",
"from": {
"address": "accounts@info.zylker.com",
"name": "Paula"
},
"track_opens": true,
"template_alias": "account-confirmation",
"to": [
{
"email_address": {
"address": "accounts@info.zylker.com",
"name": "accounts"
},
"merge_info": {
"property1": "string",
"property2": "string"
}
}
],
"track_clicks": true
}
Response Parameters
- HTTP code 200
Response Body - application/json
Show Sub-Attributes
- HTTP code 400
Response Body - application/json
Show Sub-Attributes
Show Sub-Attributes
Sample Response: HTTP 200
{
"data": [
{
"code": "EM_104",
"message": "OK"
}
],
"message": "OK",
"request_id": "req-xxxx"
}
Sample Response: HTTP 400
{
"data": {
"error_code": "TM_3004",
"message": "Invalid request"
},
"message": "error"
}
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.