List Threads
Retrieve the threads in one folder of an inbox.
A thread is a conversation within an inbox, made up of one or more messages.
Path Parameters
Section titled “Path Parameters”The Inbox ID.
Query Parameters
Section titled “Query Parameters”-
folder(string) — The folder to list:inbox,archive,spam,sent, ortrash. -
query(string) — Case-insensitive substring matched against the thread subject and its label names. Max length is256characters. -
label(string[]) — Label IDs to filter by. -
limit(number) — Number of threads to return. Default is20, maximum is100, minimum is1. -
after(string) — The ID of the last thread on the current page. Returns the next, older page. -
before(string) — The ID of the first thread on the current page. Returns the previous, newer page.
Folders
Section titled “Folders”Every thread sits in exactly one folder within its inbox.
| Folder | Meaning |
|---|---|
inbox |
The default. The thread holds at least one received message. |
archive |
The thread was archived. |
spam |
The thread was marked as spam. |
trash |
The thread is scheduled for deletion in 30 days. |
sent |
Threads whose messages are all outbound. |
You can move a thread to inbox, archive, spam, or trash. sent is
assigned automatically.
Response Fields
Section titled “Response Fields”-
object(string) — Alwayslist. -
has_more(boolean) — Whether more threads exist beyond this page. Pass the last thread'sidasafterto continue. -
data(array) — The threads in the folder, most recently active first.properties
id(string) — The ID of the thread.subject(string | null) — The subject of the thread.from(string | null) — Sender email address.to(string[]) — The recipients of the most recent message.cc(string[]) — The CC recipients of the most recent message.bcc(string[]) — The BCC recipients of the most recent message.labels(array) — The labels attached to the thread, each with anid,name, andcolor.message_count(number) — The number of messages in the thread.has_attachment(boolean) — Whether any message has an attachment.has_draft(boolean) — Whether the thread has an unsent draft.read(boolean) — True only when every message in the thread is read.received_at(string) — ISO 8601 timestamp when the thread was last active.
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.inboxes.threads.list({
inboxId: 'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
});curl -X GET 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads' \
-H 'Authorization: Bearer re_xxxxxxxxx'resend inboxes threads list --inbox_id b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1{
"object": "list",
"has_more": true,
"data": [
{
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"subject": "Refund for order 1041",
"from": "Ada Lovelace <ada@example.org>",
"to": ["support@example.com"],
"cc": [],
"bcc": [],
"labels": [
{
"id": "7f9c1d2e-4a6b-4c3d-8e15-9b0a7c6d5e34",
"name": "Urgent",
"color": "crimson"
}
],
"message_count": 2,
"has_attachment": true,
"has_draft": false,
"read": false,
"received_at": "2026-08-05T14:03:11.229Z"
}
]
}