Skip to main content
Use Zoho Mail through Corsair: one client, typed API calls, local DB sync, and incoming webhooks. Zoho Mail runs region-specific datacenters. Pass region to the plugin factory ('us' default, plus 'eu', 'in', 'au', 'jp', 'cn') so the correct accounts.zoho.* and mail.zoho.* hosts are used:
Every Zoho Mail call is scoped to an accountId. Pass it explicitly, or omit it and the plugin resolves the first account on the authenticated user automatically (cached for the rest of the session). What you get:
  • 12 typed API operations
  • 2 synced entities (folders, messages) for fast .search() / .list()
  • 2 incoming webhook event types

Setup

1

Install

2

Add the plugin

corsair.ts
Multi-tenancy is the default — scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

folders.get
folders.create
See the full list on the API page.

Query synced data

Synced entities support tenant.zohomail.db.<entity>.search() and .list(): folders, messages. See Database for filters and operators.

Webhooks

This plugin registers 2 webhook event types. Configure the provider to POST to your Corsair HTTP handler, then use webhookHooks on the plugin factory. See Webhooks for every event path and payload shape, and Webhooks concept for routing.

What’s next

API reference

Every zohomail.api.* operation with input and output types.

Database

Synced entities, search filters, and operators.

Webhooks

Event paths, payloads, and webhookHooks examples.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.

Get credentials

Provider-console walkthrough for keys and OAuth apps.