What Is JMAP? The Modern Email Protocol Compared to IMAP

The short answer
JMAP is the JSON Meta Application Protocol, an email access standard defined in RFC 8620 and RFC 8621. It uses JSON over HTTPS and batches many requests into one call, unlike IMAP, which sends text commands over a persistent connection. JMAP adds built-in state-based sync and account-wide push, but few providers support it yet.
What is the JMAP protocol? The JSON email standard in RFC 8620 and RFC 8621, how it differs from IMAP, and who supports it.
On this page
JMAP, the JSON Meta Application Protocol, is a modern way for an email app to talk to a mail server over the web. The IETF published it as two standards: RFC 8620 defines the core protocol, and RFC 8621 defines JMAP for Mail. The work was led largely by engineers at Fastmail and reached standard status in 2019.
Where IMAP sends text commands over a long-lived connection, JMAP sends JSON over HTTPS and lets a client batch many requests into one. This guide explains what the JMAP protocol is, how it differs from IMAP, and which providers actually support it as of August 2026.
How does JMAP work?#
JMAP treats your mailbox as structured data. A client sends an HTTPS POST containing a JSON request, and the server replies with JSON. RFC 8620 calls the units of work method calls, and a single request can carry an array of them, the methodCalls array, so the client asks for many things at once instead of one command at a time.
The method names read like the objects they act on. RFC 8621 defines calls such as Email/query to find messages, Email/get to fetch them, and Mailbox/get to list folders, each named for the data type it touches. A client can chain them, asking for a query and the matching messages in the same request.
Two ideas do most of the work. First, batching: because several method calls travel in one request, the client makes fewer round trips, which RFC 8620 notes improves battery life on mobile devices. A later call in the same batch can reference the result of an earlier one, so a client can search and then fetch in a single trip.
Second, state-based sync. Every data type carries a state string. When anything changes, that string changes, and the client calls a changes method to get back only the created, updated, and destroyed record ids since its last known state. There is no need to re-scan the whole mailbox.
- Transport: JSON messages sent over HTTPS as authenticated POST requests. RFC 8620 requires HTTPS.
- Batching: multiple method calls in one methodCalls array, with references between calls in the same request.
- Sync: a per-type state string plus a changes query that returns only what changed.
- Push: the server signals a change through EventSource or a PushSubscription, carrying a StateChange object.
- Sending: RFC 8621 defines an EmailSubmission object, so a client can submit mail through JMAP itself.
Why JMAP matters, and what IMAP struggles with#
IMAP has run email for decades and works everywhere, but it was designed for an always-connected desktop, not a phone that sleeps. A few of its habits show their age on modern networks.
JMAP folds the fixes into the core protocol. Batching cuts the round trips, one push channel covers the whole account, and delta sync through state strings is how the protocol works by default rather than an add-on. jmap.io, the protocol's home, positions JMAP as an open replacement for IMAP for exactly these reasons.
- Round trips: IMAP is a command-and-response protocol, so opening a folder, checking flags, and fetching new mail can take many separate exchanges. On a high-latency mobile link that adds up.
- Push per folder: IMAP's push, the IDLE extension (RFC 2177), watches one selected mailbox per connection. Monitoring several folders means several open connections.
- Efficient resync is optional: catching up after a gap relies on extensions such as CONDSTORE and QRESYNC (RFC 7162) that not every server implements.
IMAP is not standing still
JMAP vs IMAP: the difference at a glance#
The two protocols solve the same job, connecting a client to a mailbox, in very different ways. This table sums up where they diverge.
| Dimension | IMAP | JMAP |
|---|---|---|
| Format and transport | Text commands over a persistent TCP connection | JSON over HTTPS, sent as POST requests |
| Round trips | One command and response at a time | Many method calls batched into a single request |
| Sync | Compare UIDs and flags; efficient delta sync needs CONDSTORE/QRESYNC | State strings plus a changes call return created, updated, and destroyed ids |
| Push | IDLE watches one selected mailbox per connection | One push channel per account via EventSource or PushSubscription |
| Sending mail | Handled by a separate protocol (SMTP submission) | EmailSubmission object sends within JMAP |
| Adoption (Aug 2026) | Universal, every major provider | Limited, Fastmail plus open-source servers |
| Specified in | RFC 3501 / RFC 9051 | RFC 8620 and RFC 8621 |
Who supports JMAP email today?#
Support is the honest catch. JMAP is a full IETF standard, but adoption is still concentrated. Fastmail, whose engineers led the design of JMAP, offers JMAP access to its mail and puts new customers on it. On the server side, open-source implementations including Cyrus IMAP, Apache James, and Stalwart support JMAP, and jmap.io keeps a running list of software.
The gap is the providers most people use. As of August 2026, Gmail, Outlook.com, and iCloud Mail do not publish a JMAP endpoint; they rely on their own APIs plus IMAP. That is why “switch to JMAP” is not something a Gmail or Outlook user can simply do. The server has to speak it first.

Check your provider before assuming JMAP
Common misconceptions about JMAP#
- “JMAP has already replaced IMAP.” jmap.io frames it as a replacement, but in practice IMAP is still universal and JMAP support is limited to a handful of servers, so IMAP is not going away soon.
- “JMAP is just IMAP with JSON.” It is a different model: batched method calls, state-based sync, account-wide push, and the ability to send mail through the EmailSubmission object, which IMAP never did.
- “JMAP is less secure because it uses the web.” JMAP runs only over HTTPS, the same encrypted transport your browser uses. Security depends far more on the server and how you authenticate than on the protocol name.
- “Any modern provider must support JMAP.” Most large providers, including Gmail and Outlook, run their own proprietary APIs and have not adopted JMAP at all.
How JMAP fits with AI Emaily#
So where does this leave a tool built on top of your mailbox? AI Emaily is an AI email client, not a mail server, and it does not speak JMAP today. It connects to Gmail and Microsoft accounts through their OAuth APIs and to other mailboxes over IMAP, because the providers most of our users are on do not offer a JMAP endpoint to connect to.
The protocol underneath is plumbing; the assistant that triages, drafts, and closes loops runs on top of whatever reaches the mailbox. If you are on a JMAP host like Fastmail, AI Emaily still connects over IMAP, so you do not lose access. We build AI Emaily, and we would rather be honest about the wire than pretend a protocol badge changes what the inbox feels like.
Frequently asked
See it in AI Emaily
Keep reading
Sources

Written by
Nafiul HasanNafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.