Skip to main content
A folder, grouped into conversations. The same messages GET /v1/messages returns, arranged the way the web app arranges them. Required permission: Messages → Read (messages:read) A thread is a view over messages a key can already read, so it needs no permission of its own.

List conversations

uids is the useful one: archiving a whole conversation is this list handed straight to the bulk endpoint.
Ordering is by last activity, not by when the conversation started. An old thread somebody just replied to belongs at the top, which is where it appears.

Read one conversation

Takes the same mailbox (required) and folder parameters.
Messages come back oldest first — reading order — and carry headers and a preview, not bodies. Fetch a message with GET /v1/messages/{uid} for its text; a thirty-message conversation with full HTML would be megabytes.

How conversations are worked out

Messages are grouped by their Message-ID, In-Reply-To and References headers, transitively — so a reply joins the conversation whether it names its parent, the whole chain, or only part of it, and two replies to the same message stay in one conversation rather than splitting into two.
Subject is never used to group. A common shortcut is to merge messages sharing a subject after “Re:” is stripped. Ruber does not: two unrelated people both replying “Re: invoice” would become one conversation, and a thread that silently contains a stranger’s mail is worse than two threads that should have been one.The practical consequence: a reply sent by a client that strips threading headers appears as its own conversation. That is the honest answer rather than a guess.
Conversations are computed per request, from the live mailbox. They are not read from a stored index, so they are never stale — a message that arrived a second ago is in the right conversation.The cost is one headers-only read of the folder per request: no bodies, no attachments. Threading cannot be paginated at the source, because a conversation’s messages are scattered through a folder by arrival time and any window smaller than the folder produces threads missing their other halves. So the whole folder is grouped and limit/page apply to the conversations.
A thread id is only meaningful inside the folder it came from. Like a uid, it describes a grouping of one folder’s messages rather than an object the server stores. Carry the mailbox and folder alongside it, and expect an id to stop resolving once the conversation is moved elsewhere.

Errors

See Errors for the full response shape.