import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.inboxes.threads.update({
inboxId: 'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
threadId: '4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
read: true,
folder: 'spam',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->inboxes->threads->update(
'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
'4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
[
'read' => true,
'folder' => 'spam',
]
);
import resend
resend.api_key = "re_xxxxxxxxx"
params: resend.Inboxes.Threads.UpdateParams = {
"inbox_id": "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"read": True,
"folder": "spam",
}
resend.Inboxes.Threads.update(params)
require "resend"
Resend.api_key = "re_xxxxxxxxx"
params = {
inbox_id: "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
thread_id: "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
read: true,
folder: "spam"
}
Resend::Inboxes::Threads.update(params)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
read := true
params := &resend.UpdateInboxThreadRequest{
Read: &read,
Folder: resend.InboxMoveThreadFolderSpam,
}
client.Inboxes.Threads.Update(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
params,
)
use resend_rs::{
types::{UpdateInboxThreadFolder, UpdateInboxThreadOptions},
Resend, Result,
};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let opts = UpdateInboxThreadOptions::new()
.with_read(true)
.with_folder(UpdateInboxThreadFolder::Spam);
let _thread = resend
.inboxes
.update_thread(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
opts,
)
.await?;
Ok(())
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.InboxThreadUpdateAsync(
new Guid( "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1" ),
new Guid( "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12" ),
new InboxThreadUpdateData()
{
IsRead = true,
Folder = InboxMoveFolder.Spam,
}
);
Console.WriteLine( "Thread folder={0}", resp.Content.Folder );
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"read": true,
"folder": "spam"
}'
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"folder": "inbox"
}'
resend inboxes threads update b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1 4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12 \
--read \
--folder spam
{
"object": "inbox_thread",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"subject": "Refund for order 1041",
"folder": "spam",
"labels": [],
"read": true
}
Update Thread
Mark a thread read or unread, or move it to another folder.
PATCH
/
inboxes
/
:inbox_id
/
threads
/
:thread_id
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.inboxes.threads.update({
inboxId: 'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
threadId: '4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
read: true,
folder: 'spam',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->inboxes->threads->update(
'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
'4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
[
'read' => true,
'folder' => 'spam',
]
);
import resend
resend.api_key = "re_xxxxxxxxx"
params: resend.Inboxes.Threads.UpdateParams = {
"inbox_id": "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"read": True,
"folder": "spam",
}
resend.Inboxes.Threads.update(params)
require "resend"
Resend.api_key = "re_xxxxxxxxx"
params = {
inbox_id: "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
thread_id: "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
read: true,
folder: "spam"
}
Resend::Inboxes::Threads.update(params)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
read := true
params := &resend.UpdateInboxThreadRequest{
Read: &read,
Folder: resend.InboxMoveThreadFolderSpam,
}
client.Inboxes.Threads.Update(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
params,
)
use resend_rs::{
types::{UpdateInboxThreadFolder, UpdateInboxThreadOptions},
Resend, Result,
};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let opts = UpdateInboxThreadOptions::new()
.with_read(true)
.with_folder(UpdateInboxThreadFolder::Spam);
let _thread = resend
.inboxes
.update_thread(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
opts,
)
.await?;
Ok(())
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.InboxThreadUpdateAsync(
new Guid( "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1" ),
new Guid( "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12" ),
new InboxThreadUpdateData()
{
IsRead = true,
Folder = InboxMoveFolder.Spam,
}
);
Console.WriteLine( "Thread folder={0}", resp.Content.Folder );
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"read": true,
"folder": "spam"
}'
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"folder": "inbox"
}'
resend inboxes threads update b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1 4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12 \
--read \
--folder spam
{
"object": "inbox_thread",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"subject": "Refund for order 1041",
"folder": "spam",
"labels": [],
"read": true
}
To change a thread’s labels, use
Add Thread Labels,
Set Thread Labels, or
Remove Thread Label.
Path Parameters
Body Parameters
At least one ofread or folder is required. Omitted fields keep their
current value.
boolean
Marks every message in the thread read or unread.
string
Moves the thread to this folder. Every thread sits in exactly one folder within
its inbox.
sent is assigned automatically and cannot be set.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.
Response Fields
string
Always
inbox_thread.string
The ID of the thread.
string | null
The subject of the thread.
string
The folder the thread lives in after the update.
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.
array
boolean
True only when every message in the thread is read.
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.inboxes.threads.update({
inboxId: 'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
threadId: '4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
read: true,
folder: 'spam',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->inboxes->threads->update(
'b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1',
'4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12',
[
'read' => true,
'folder' => 'spam',
]
);
import resend
resend.api_key = "re_xxxxxxxxx"
params: resend.Inboxes.Threads.UpdateParams = {
"inbox_id": "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"read": True,
"folder": "spam",
}
resend.Inboxes.Threads.update(params)
require "resend"
Resend.api_key = "re_xxxxxxxxx"
params = {
inbox_id: "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
thread_id: "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
read: true,
folder: "spam"
}
Resend::Inboxes::Threads.update(params)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
read := true
params := &resend.UpdateInboxThreadRequest{
Read: &read,
Folder: resend.InboxMoveThreadFolderSpam,
}
client.Inboxes.Threads.Update(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
params,
)
use resend_rs::{
types::{UpdateInboxThreadFolder, UpdateInboxThreadOptions},
Resend, Result,
};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let opts = UpdateInboxThreadOptions::new()
.with_read(true)
.with_folder(UpdateInboxThreadFolder::Spam);
let _thread = resend
.inboxes
.update_thread(
"b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1",
"4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
opts,
)
.await?;
Ok(())
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.InboxThreadUpdateAsync(
new Guid( "b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1" ),
new Guid( "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12" ),
new InboxThreadUpdateData()
{
IsRead = true,
Folder = InboxMoveFolder.Spam,
}
);
Console.WriteLine( "Thread folder={0}", resp.Content.Folder );
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"read": true,
"folder": "spam"
}'
curl -X PATCH 'https://api.resend.com/inboxes/b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1/threads/4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"folder": "inbox"
}'
resend inboxes threads update b3e2b2b6-3f0e-4c8e-9ad3-2f43a1e2c7f1 4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12 \
--read \
--folder spam
{
"object": "inbox_thread",
"id": "4d8e2a1c-9b3f-4c6d-8a21-3e5f7c9c0d12",
"subject": "Refund for order 1041",
"folder": "spam",
"labels": [],
"read": true
}
Was this page helpful?
⌘I