Plain text content of the email body.
Send Email
Send a transactional email to one or more recipients.
Endpoint
Request URL
https://cpaas.zoho.com/v1.1/email 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
HTML content of the email body.
A custom reference string to identify the email in your system.
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.
Subject line of the email.
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.
Array of images embedded in the HTML body. Reference each image from htmlbody using its cid, e.g. <img src="cid:logo">. For each image supply EITHER content (inline base64) OR file_cache_key — the two are mutually exclusive; if both are present file_cache_key takes precedence and content is ignored. cid is always required. When content is used, mime_type is also required and name is optional; when file_cache_key is used, only cid is required.
[
{
"mime_type": "image/png",
"name": "logo.png",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
"cid": "logo"
}
]Show Sub-Attributes
Key of an image previously uploaded via the file-upload API (POST /v1.1/files). Required unless content is provided. Mutually exclusive with content.
MIME type of the image. Required when content is used.
Optional file name for the image. When omitted with content, a name is derived from the cid and mime_type.
Base64-encoded image content. Required unless file_cache_key is provided. Mutually exclusive with file_cache_key.
Content-ID referenced from the HTML body via <img src="cid:...">. Always required.
Enable or disable open tracking.
Reply-to email address.
Custom MIME headers as a flat JSON object of header name to string value. Use custom (for example X- prefixed) headers for your own metadata. Reserved headers such as Content-Type, From, To, Subject and Date cannot be overridden.
{
"X-Campaign-Id": "camp-2026-10",
"X-Custom-Tag": "transmail-qa"
}Show Sub-Attributes
The sender's email address and optional display name.
Show Sub-Attributes
Array of recipient email addresses.
Show Sub-Attributes
Enable or disable click tracking.
Sample Request
curl --request POST \
--url https://cpaas.zoho.com/v1.1/email \
--header 'Authorization: Zoho-enczapikey {apiKey}' \
--header 'content-type: application/json' \
--data '{"cc":[{"email_address":{"address":"manager@zylker.com","name":"Manager"}}],"htmlbody":"<div><b>Kindly click on Verify Account to confirm your account.</b></div>","client_reference":"order-12345","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"}],"subject":"Account Confirmation","bounce_address":"bounce@bounce-zem.zylker.com","inline_images":[{"mime_type":"image/png","name":"logo.png","content":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==","cid":"logo"}],"track_opens":true,"reply_to":[{"address":"support@zylker.com","name":"Support"}],"mime_headers":{"X-Campaign-Id":"camp-2026-10","X-Custom-Tag":"transmail-qa"},"from":{"address":"accounts@info.zylker.com","name":"Paula"},"to":[{"email_address":{"address":"rudra.d@zylker.com","name":"Rudra"}}],"textbody":"Kindly click on Verify Account to confirm your account.","track_clicks":true}'Sample Request Body
{
"cc": [
{
"email_address": {
"address": "manager@zylker.com",
"name": "Manager"
}
}
],
"htmlbody": "<div><b>Kindly click on Verify Account to confirm your account.</b></div>",
"client_reference": "order-12345",
"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"
}
],
"subject": "Account Confirmation",
"bounce_address": "bounce@bounce-zem.zylker.com",
"inline_images": [
{
"mime_type": "image/png",
"name": "logo.png",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
"cid": "logo"
}
],
"track_opens": true,
"reply_to": [
{
"address": "support@zylker.com",
"name": "Support"
}
],
"mime_headers": {
"X-Campaign-Id": "camp-2026-10",
"X-Custom-Tag": "transmail-qa"
},
"from": {
"address": "accounts@info.zylker.com",
"name": "Paula"
},
"to": [
{
"email_address": {
"address": "rudra.d@zylker.com",
"name": "Rudra"
}
}
],
"textbody": "Kindly click on Verify Account to confirm your account.",
"track_clicks": true
}
Response Parameters
- HTTP code 200
Response Body - application/json
Show Sub-Attributes
Show Sub-Attributes
Show Sub-Attributes
Show Sub-Attributes
- HTTP code 400
Response Body - application/json
Show Sub-Attributes
Show Sub-Attributes
Sample Response: HTTP 200
{
"data": [
{
"code": "EM_104",
"additional_info": [
{
"to": {
"email_address": {}
}
}
],
"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.