What Is JMAP? The JSON Email Protocol, Explained (vs IMAP)
JMAP (JSON Meta Application Protocol) is a modern protocol for syncing email, calendars, and contacts between a client and a server, using plain JSON over HTTPS instead of the older IMAP and POP3 protocols. It was standardized by the IETF (RFC 8620 for the core protocol, RFC 8621 for mail) specifically to fix what made IMAP slow and unreliable on mobile connections – fewer round trips, no ambiguous state, and a wire format any web developer can read without a protocol-specific library.
JMAP vs. IMAP vs. POP3
The sync-state and threading rows matter more than they look. Gmail, Yahoo, and Microsoft 365 – the three largest mailbox providers – don't support IMAP's CONDSTORE extension, so an IMAP client has no reliable way to ask "what changed since I last checked" and often ends up re-scanning whole folders. JMAP's state string is part of the core protocol, not an optional extension, so every compliant server has to support it.
A JMAP Request, in Practice
JMAP's actual advantage shows up when you chain calls. Fetching a mailbox's five most recent emails takes two method calls – first find which messages match, then fetch their content – back-referenced in a single HTTP POST:
Email/query on its own only returns a list of message ids matching the filter – inMailbox takes the mailbox's actual id (fetched separately via Mailbox/get), not a literal string like "inbox". To get the actual emails, the second call, Email/get, references the first call's result directly through #ids instead of the client re-sending the id list itself. That back-reference – chaining a query and a fetch in one round trip – is JMAP's central design win over IMAP's multi-step SELECT/FETCHsequence, and it's the reason the whole request above still counts as a single HTTP call.
Who Actually Uses JMAP
JMAP isn't a paper standard – it runs in production on both ends of the connection:
- Mail servers: Cyrus IMAP (which added native JMAP support), Stalwart Mail Server (JMAP-first by design), Apache James, and Twake Mail all implement the protocol.
- Mail clients: Fastmail's own webmail runs on JMAP (Fastmail co-authored the spec), Thunderbird supports it through an add-on, and Ltt.rs is a terminal mail client built specifically around JMAP.
- Migration and interop tooling: because JMAP's data model maps directly to JSON, tools syncing mail between providers often prefer it over screen-scraping IMAP folders.
- AI email agents: an agent operating its own inbox needs mail data as clean, structured JSON rather than a raw protocol stream – the same shape of problem JMAP was built to solve for human-facing clients.
Why This Matters for AI Agent Email
An agent reading and sending mail through code benefits from JMAP for the same reason a human-facing client does: structured JSON in, structured JSON out, with the query-then-fetch batching shown above replacing several stateful IMAP round trips with one HTTP call. Atomic Mail Agentic runs on JMAP for exactly this reason – an agent's inbox operations are native JSON calls, not a REST wrapper stacked on an IMAP connection underneath.
FAQ
Does JMAP replace SMTP? No – JMAP replaces the client-facing protocols (IMAP for reading, and the client's own SMTP submission for sending) with one API, including an EmailSubmission method that handles the "send" step. Mail transport between mail servers still runs over SMTP; JMAP only changes how a client talks to its own mail server.
Is JMAP replacing IMAP? Not universally – most consumer mail clients still speak IMAP – but for anything built API-first (web apps, AI agents, mobile clients written from scratch), JMAP is usually the simpler choice today, and it's what Fastmail, Cyrus, and Stalwart all support natively.
What is JMAP used for? Syncing email, calendars, and contacts between a client and server – concretely, it's what powers Fastmail's webmail, Thunderbird's JMAP add-on, and the mail sync layer for AI agents that need to read and send mail as structured data.
Do I need a special library to use JMAP? No – any HTTP client that can send JSON works. That's the point: no protocol-specific SDK required, unlike IMAP's stateful connection handling.
Is JMAP more secure than IMAP? It runs over HTTPS by default and has no legacy plaintext mode to misconfigure, which removes a class of mistakes IMAP setups are prone to – but security still depends on how the server implements auth and permissions.
Does an AI agent need to know JMAP to use an agent inbox? No – the agent calls tools (through an MCP server or a simple API), and JMAP is what those tools speak to the mail server underneath. The agent never has to see the protocol directly.



