Skip to main content
JMAP (JSON Meta Application Protocol) is a modern, open-standard protocol for email access defined in RFC 8620 (core) and RFC 8621 (email). Where IMAP was designed in the 1980s for line-by-line text exchange, JMAP uses JSON over HTTPS and allows you to batch multiple operations into a single request — fetching a list of mailboxes, reading message headers, and marking messages as read all in one round trip. UGMail exposes a full JMAP endpoint so you can build fast, efficient email integrations without wrestling with legacy IMAP commands.

Why use JMAP over IMAP?

JMAP is the right choice when you’re building a new integration from scratch, need low-latency access, or are operating in environments where non-HTTPS ports are restricted.

Connection details

Use your mailbox’s full email address as the username and the password you set via the secrets field in the Management API as the password. All JMAP requests are standard HTTPS — no special TCP connections or TLS configuration beyond what any HTTPS client handles automatically.

Session discovery

Every JMAP client starts by fetching the session object, which describes the capabilities of the server and the URLs for API calls, uploads, downloads, and event streams. Discover the session by sending a GET request to the well-known JMAP endpoint.
Session discovery
The server returns a JSON object describing its capabilities, account IDs, and endpoint URLs. Your client should cache this response and use the apiUrl field for all subsequent method calls.

Making JMAP API calls

JMAP API calls are POST requests to the apiUrl returned by session discovery. Each request body is a JSON object with a using array (declaring which capabilities you need) and a methodCalls array (the operations to perform).
JMAP client libraries are available for most languages and handle session discovery, batching, and push notifications automatically. Check jmap.io/software for a list of open-source clients and libraries before building a raw HTTP integration from scratch.

Further reading

  • jmap.io — official JMAP specification site with guides and client library listings
  • RFC 8620 — JMAP core specification
  • RFC 8621 — JMAP for email (Mail, Mailbox, Thread, SearchSnippet)

Troubleshooting

Replace YOUR_ACCOUNT_ID and INBOX_ID in the example requests with the actual values returned by session discovery. The account ID is unique per mailbox and cannot be guessed from the email address alone.
Last modified on July 17, 2026