Skip to content

Zoho Mail

Zoho Mail

Zoho Mail is a secure and ad-free email hosting platform with collaboration tools, calendar integration, and extensive administrative controls. With the Zoho Mail integration in SquadOS, your agents can send emails, read and search messages, create drafts, reply to threads, and manage groups and corporate domain settings.

This tool uses OAuth 2.0 (OAUTH2) to connect.

You will need to authorize access to your Zoho Mail account via OAuth. No manual API key is required — the authorization flow is managed by Composio.

FieldRequiredDescription
OAuth authorizationYesAccess granted via OAuth 2.0 flow on the Composio secure connection page.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Zoho Mail.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access to your Zoho Mail account via OAuth 2.0.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available to your agents. (Connection-flow details in Organization Tools.)

ZOHO_MAIL_ACCOUNTS_LIST_ACCOUNTS

Retrieves all Zoho Mail accounts associated with the authenticated user. Returns account details including accountId (required for other mail operations), email addresses, storage information, account status, user preferences, and security settings. Use this action first to get the accountId needed for subsequent mailbox, message, folder, and email operations. The accountId is a unique identifier for each mail account. Typical workflow: List accounts → Get accountId → Use accountId in other mail operations.

NameTypeRequiredDescription
regionstringNoZoho Mail data center region. Determines which regional API endpoint to use (e.g., ‘com’ → mail.zoho.com, ‘eu’ → mail.zoho.eu). Choose the region where your Zoho account was created. Options: ‘com’ (US), ‘eu’ (Europe), ‘in’ (India), ‘com.au’ (Australia), ‘jp’ (Japan), ‘ca’ (Canada). If not specified, defaults to ‘com’ (US).
accept_languagestringNoLanguage preference for API responses. Use standard locale codes like ‘en-US’ for American English or ‘en-GB’ for British English. This affects error messages and localized content returned by the API.
use_bearer_authbooleanNoInternal parameter for authentication handling. Keep as False (default) unless specifically instructed otherwise. When False, automatically converts OAuth tokens to Zoho’s required ‘Zoho-oauthtoken’ format.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_DOMAIN_OPERATIONS

Tool to perform domain operations like verify, set primary domain, hosting, aliases, MX/SPF checks, DKIM management, and notifications. Use after creating or retrieving a domain.

NameTypeRequiredDescription
modestringYesOperation to perform on the domain. Options: ‘setPrimaryDomain’, ‘enableMailHosting’, ‘disableMailHosting’, ‘verifyDomainByTXT’, ‘verifyDomainByCName’, ‘verifyDomainByHTML’, ‘verifySpfRecord’, ‘verifyMxRecord’, ‘makeDomainAsAlias’, ‘removeDomainAlias’, ‘addDkimDetail’, ‘makeDkimDefault’, ‘deleteDkimDetail’, ‘regenerateDkimKey’, ‘verifyDkimKey’, ‘enableSubDomainStripping’, ‘disableSubDomainStripping’, ‘addCatchAllAddress’, ‘deleteCatchAllAddress’, ‘addNotificationAddress’, ‘deleteNotificationAddress’.
zoidintegerYesOrganization ID (ZOID).
dkimIdintegerNoDKIM record ID; required for makeDkimDefault, deleteDkimDetail, regenerateDkimKey, and verifyDkimKey operations.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
keySizeintegerNoDKIM key size (1024 or 2048); required for addDkimDetail.
selectorstringNoDKIM selector; required for addDkimDetail.
isDefaultbooleanNoMake this DKIM record the default; optional for addDkimDetail.
domainNamestringYesFully qualified domain name to operate on.
domainAliasstringNoAlias domain name; required for alias operations.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
catchAllAddressstringNoCatch-all address; required for addCatchAllAddress.
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
notificationAddressstringNoNotification address; required for addNotificationAddress.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_GET_ALL_BOOKMARKS

Tool to retrieve all personal bookmarks from a Zoho Mail account. Use when you need to fetch saved bookmarks/links with support for pagination and field filtering.

NameTypeRequiredDescription
afterstringNoSpecifies the starting point for pagination. Use the value from the ‘next’ field in previous response pagination to retrieve subsequent pages.
limitintegerNoNumber of bookmarks to retrieve. Minimum: 1, Maximum: 399. Defaults to 20.
fieldsstringNoComma-separated list specifying bookmark details to retrieve (e.g., ‘title,summary,link,linkMetaInfo,collectionName’). If not provided, returns all available details.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
is_prevbooleanNoControls sort order by creation time: true for ascending order, false for descending order. Defaults to descending if not provided.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_GROUPS_DELETE_GROUP_BULK

Delete multiple groups in a single API call. This action permanently removes the specified groups from your Zoho Mail organization. Use this when you need to: remove multiple obsolete or unused groups at once, clean up groups after organizational restructuring, or batch delete groups for administrative purposes. Note: Deleted groups cannot be recovered. Ensure you have the correct group IDs before deletion.

NameTypeRequiredDescription
zoidintegerYesUnique Zoho Organization Identifier (zoid) for your organization. You can retrieve this from the GET /api/organization endpoint or from the Zoho Mail admin console.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
groupListarrayYesArray of zgid values (unique group identifiers) to delete. You can retrieve group IDs using the GET /api/organization/{zoid}/groups endpoint to list all groups.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_GROUPS_DELETE_GROUP_BY_ZGID

Tool to delete a specific mail group by its zgid. Use when you need to remove a group from your organization after confirming the IDs.

NameTypeRequiredDescription
zgidintegerYesZoho Group ID to delete.
zoidintegerYesUnique Zoho Organization ID.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_MESSAGES_CREATE_DRAFT

Tool to create and save an email draft in Zoho Mail without sending it. Use when composing emails that need to be saved for later editing or sending.

NameTypeRequiredDescription
modestringNoOperation mode; must be ‘draft’ to save as draft (not send).
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
contentstringNoEmail body content. Format depends on mailFormat parameter.
subjectstringNoEmail subject line.
encodingstringNoCharacter encoding for the email content (UTF-8 is default). Supports Big5, EUC-JP, ISO-8859-1, etc.
accountIdstringYesUnique Zoho Mail account identifier; obtain via Get All User Accounts API.
ccAddressstringNoCarbon copy recipient email address(es). Can be comma-separated.
toAddressstringYesRecipient email address(es). Required by Zoho Mail API. Can be comma-separated for multiple recipients.
askReceiptstringNoRequest read receipt; ‘yes’ or ‘no’.
bccAddressstringNoBlind carbon copy recipient email address(es). Can be comma-separated.
mailFormatstringNoEmail content format; ‘html’ (default) or ‘plaintext’.
fromAddressstringYesSender’s email address; must be valid and tied to the authenticated account.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_MESSAGES_GET_MESSAGE_CONTENT

Tool to retrieve the full content/body of a specific Zoho Mail email. Use when you need to fetch the complete email content after listing or searching messages, as list/search endpoints typically return only metadata/summary.

NameTypeRequiredDescription
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
folder_idstringYesUnique folder ID (19-digit string) to identify the folder containing the message (retrievable from Get All Folders API).
account_idstringYesUnique Zoho account ID (19-digit string) to identify the specific account (obtainable via Get User Account Details API).
message_idstringYesUnique message ID (19-digit string) of the email to retrieve content for (available from List Emails API).
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
include_block_contentbooleanNoIf true, includes block quote content with the original email; if false, excludes block content. Useful for threaded/reply block retrieval.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_MESSAGES_LIST_EMAILS

Tool to retrieve a list of emails from a Zoho Mail account folder. Use when you need to fetch emails from inbox or specific folder, with support for filtering by read status, attachments, flags, and pagination.

NameTypeRequiredDescription
limitintegerNoNumber of emails to retrieve. Minimum: 1, Maximum: 200. Defaults to 10.
startintegerNoStarting sequence number of the emails to retrieve for pagination. Defaults to 1.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
statusstringNoFilter by read status. Options: ‘read’, ‘unread’. If not provided, retrieves all emails regardless of read status.
flaggedbooleanNoIf true, retrieves only flagged/starred emails. Defaults to false.
sort_bystringNoField to sort results by. Options: ‘date’, ‘messageId’, ‘size’. If not provided, uses API default sorting.
folder_idstringNoUnique folder ID (19-digit string) to identify the folder containing the messages (retrievable from Get All Folders API). If not provided, defaults to inbox.
account_idstringYesUnique Zoho account ID (19-digit string) to identify the specific account (obtainable via Get User Account Details API).
search_keystringNoSearch term to filter emails by subject, sender, or content. Use to find specific emails matching this keyword.
sort_orderbooleanNoSort order: true for ascending, false for descending. Only applies if sort_by is provided.
threaded_mailsbooleanNoIf true, retrieves emails that are part of conversations/threads. Defaults to false.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
only_attachmentbooleanNoIf true, retrieves only emails with attachments. Defaults to false.
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_MESSAGES_REPLY_TO_EMAIL

Tool to reply to an existing email via Zoho Mail API. Use when you need to send a reply to a received email message, maintaining email threading.

NameTypeRequiredDescription
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
contentstringYesEmail body content for the reply. Format depends on mailFormat parameter.
subjectstringNoEmail subject line. If not provided, Zoho Mail will use the original subject with ‘Re:’ prefix.
encodingstringNoCharacter encoding for the email content (UTF-8 is default). Supports Big5, EUC-JP, ISO-8859-1, etc.
timeZonestringNoTime zone for scheduled email. Required when scheduleType is 6.
accountIdstringYesUnique Zoho Mail account identifier; obtain via Get All User Accounts API.
ccAddressstringNoCarbon copy recipient email address(es). Can be comma-separated.
messageIdstringYesUnique identifier for the message to reply to; obtain via List Emails API.
toAddressstringYesRecipient email address(es). Can be comma-separated for multiple recipients.
askReceiptstringNoRequest read receipt; ‘yes’ or ‘no’.
bccAddressstringNoBlind carbon copy recipient email address(es). Can be comma-separated.
isSchedulebooleanNoEnable email scheduling; set to true to schedule the reply for later delivery.
mailFormatstringNoEmail content format; ‘html’ (default) or ‘plaintext’.
fromAddressstringYesSender’s email address; must be valid and tied to the authenticated account.
scheduleTimestringNoCustom schedule time in format MM/DD/YYYY HH:MM:SS. Required when scheduleType is 6.
scheduleTypeintegerNoSchedule type: 1-5 for preset times, 6 for custom scheduling. Required if isSchedule is true.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_MESSAGES_SEND_EMAIL

Tool to send an email via Zoho Mail API. Use when you need to send emails immediately to recipients.

NameTypeRequiredDescription
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
contentstringYesEmail body content. Format depends on mailFormat parameter.
subjectstringYesEmail subject line.
encodingstringNoCharacter encoding for the email content (UTF-8 is default). Supports Big5, EUC-JP, ISO-8859-1, etc.
isInlinebooleanNoWhether attachments should be displayed inline in the email body (useful for images in HTML emails). Default: false (normal attachment).
timeZonestringNoTimezone for custom schedule (required if scheduleType=6). Example: ‘GMT 5:30 (India Standard Time - Asia/Calcutta)’.
accountIdstringYesUnique Zoho Mail account identifier; obtain via Get All User Accounts API.
ccAddressstringNoCarbon copy recipient email address(es). Can be comma-separated.
toAddressstringYesRecipient email address(es). Can be comma-separated for multiple recipients.
askReceiptstringNoRequest read receipt; ‘yes’ or ‘no’.
attachmentstringNoFile(s) to attach to the email. FileUploadable object(s) where ‘name’ is the attachment filename.
bccAddressstringNoBlind carbon copy recipient email address(es). Can be comma-separated.
isSchedulebooleanNoWhether to schedule the email for later sending. Default: false (send immediately).
mailFormatstringNoEmail content format; ‘html’ (default) or ‘plaintext’.
fromAddressstringYesSender’s email address; must be valid and tied to the authenticated account.
scheduleTimestringNoCustom schedule datetime in MM/DD/YYYY HH:MM:SS format (required if scheduleType=6).
scheduleTypeintegerNoScheduling type when isSchedule is true. Values: 1 (1 hour), 2 (2 hours), 3 (4 hours), 4 (next morning), 5 (next afternoon), 6 (custom date/time).
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_ORGANIZATION_GET_USER_STORAGE_DETAILS

Tool to retrieve storage details for a specific user in the organization. Use when you need to know a user’s total and used storage quotas.

NameTypeRequiredDescription
zoidintegerYesUnique Zoho Organization ID (path parameter).
zuidintegerYesUnique Zoho User ID (path parameter).
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_ORGANIZATION_UPDATE_SPAM_PROCESS_TYPE

Tool to update organization spam processing type. Use when changing the spam filtering strategy for an organization.

NameTypeRequiredDescription
modestringNoOperation mode; automatically set to ‘updateSpamProcessType’. This field is managed internally.
zoidintegerYesUnique Zoho Organization Identifier (zoid) for the target organization. Obtain this from organization details API or admin console.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
spamVOobjectYesSpam filtering configuration object containing the desired spam process type setting.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_ORGANIZATION_UPDATE_USER_STORAGE

Updates a user’s storage allocation within a Zoho Mail organization. Can modify either base storage plan or extra storage add-ons. Use this when you need to: change a user’s base storage plan (e.g., from basic to mailPremium) or add/modify extra storage add-ons for a user. Prerequisites: You must have valid zoid (organization ID) and zuid (user ID) before calling this action.

NameTypeRequiredDescription
modestringYesOperation type: ‘updateBaseStorage’ or ‘updateExtraStorage’.
zoidintegerYesZoho Organization ID. Obtain from Organization Details API or list organization users endpoint.
zuidintegerYesZoho User ID for the user whose storage you want to update. Obtain from list organization users API.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
plan_typestringNoBase plan to set; required when mode=‘updateBaseStorage’. Options: ‘newMail5gb’, ‘newMail10gb’, ‘mailPremium’, ‘basic’, ‘professional’.
addon_typearrayNoExtra storage add-on(s); required when mode=‘updateExtraStorage’. Each item must be ‘<size>:<count>’ (e.g., ‘5gb:1’, ‘25gb:2’) where size is one of: 5gb, 25gb, 50gb, 100gb, 200gb.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_SEARCH_MESSAGES

Tool to search emails in a Zoho Mail account using Zoho’s searchKey syntax. Use when you need to find specific emails by sender, subject, keywords, status (e.g., unread), attachments, or flags. Returns messageId and folderId needed to fetch full message content.

NameTypeRequiredDescription
limitintegerNoNumber of emails to retrieve per request. Minimum: 1, Maximum: 200. Defaults to 10.
startintegerNoStarting sequence number for pagination. Defaults to 1.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
includetobooleanNoIf true, includes recipient details (To/CC fields) in the response. Defaults to false.
account_idstringYesUnique Zoho account ID (19-digit string) to identify the specific account (obtainable via Get User Account Details API).
search_keystringYesSearch criteria using Zoho Mail search syntax. Examples: ‘newMails’ (unread messages), ‘from:sender@example.com’ (by sender), ‘subject:meeting’ (by subject), ‘to:recipient@example.com’ (by recipient), ‘hasattachment’ (with attachments), ‘flagged’ (starred messages). Combine multiple criteria with spaces.
received_timeintegerNoUnix timestamp in milliseconds to filter emails received after this time. If not provided, defaults to emails from 2 minutes prior.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

ZOHO_MAIL_UPDATE_GROUP_SETTINGS

Tool to update group settings. Use after group creation to adjust general or text settings.

NameTypeRequiredDescription
modestringYesOperation mode, must be ‘updateMailGroupOptions’.
zgidintegerYesGroup ID to update settings for.
zoidintegerYesOrganization ID.
regionstringNoOptional Zoho data center domain to target. One of: ‘com’, ‘eu’, ‘in’, ‘com.au’, ‘jp’, ‘ca’.
accept_languagestringNoOptional Accept-Language header value (e.g., ‘en-US’, ‘en-GB’).
use_bearer_authbooleanNoIf true, keeps ‘Bearer <token>’ Authorization header; otherwise converts to ‘Zoho-oauthtoken <token>’.
groupTextSettingsobjectNoText settings object for the group.
groupGeneralSettingsobjectNoGeneral settings object for the group.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.