Documentation
Sign inGet started

Update a thread

PATCH
/v1/email/threads/{thread_id}
curl -X PATCH "https://us1.platform.bird.com/v1/email/threads/{thread_id}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Applies label changes to a conversation and links or unlinks a contact. System labels move the conversation: adding spam files it (and its received messages) as spam, adding archive files it away without deleting it, and adding inbox — or removing spam, blocked, or archive — returns it to the inbox; unread counts recompute to match. An archived conversation returns to the inbox by itself when a new message arrives. To block a sender going forward, add a receive rule instead. Omitted fields are left unchanged.
Payload Permintaan
labels
object
Label changes to apply. Labels in add are applied and labels in remove are taken off; other labels are left untouched. Adding a label that is already present, or removing one that is not, has no effect. System labels express state changes: on a conversation, adding spam files it as spam, adding archive files it away without deleting it, adding inbox (or removing spam or archive) returns it to the inbox, and removing unread marks all retained received messages as read in one call; on a message, adding or removing unread flips read state, and adding or removing trash moves it to or out of the trash. Changes that contradict this model are rejected: adding more than one placement label in one request, adding blocked (blocking a sender is a receive-rule decision), removing inbox without adding a destination, adding trash or unread to a conversation (removing unread is the mark-all-read shortcut; trash uses the DELETE verb), placement labels on a message (move its conversation instead), and unread on a sent message. Custom labels are 1-64 characters with no commas, control characters, or leading or trailing whitespace. System label names and a small reserved set (all, archived, deleted, draft, drafts, flagged, important, junk, muted, none, outbox, pinned, read, scheduled, snoozed, starred) cannot be used as custom labels, in any casing. A conversation or message carries at most 20 labels, system labels included.
Tampilkan parameter turunan
labels.add
array of string
Labels to apply.
labels.remove
array of string
Labels to take off.
contact_id
nullable string
Contact to link this conversation to, or null to unlink the current contact.
Payload Respons
id
string
wajib
Thread ID.
mailbox_id
string
wajib
Mailbox this conversation belongs to.
channel
string
wajib
Channel this conversation lives on. Always email.
contact_id
nullable string
wajib
Contact linked to this conversation, or null when none is linked.
subject
nullable string
wajib
Subject of the conversation, taken from its first message. Null when that message had no subject.
participants
array of string
wajib
Addresses that appear on the retained messages in this conversation, including the mailbox's own address.
message_count
integer
wajib
Number of retained messages in this conversation, both directions.
unread_count
integer
wajib
Number of retained received messages that are still unread. Spam and blocked mail is not counted.
last_message_at
string
wajib
When the most recent retained message in this conversation was received or sent.
last_direction
string
wajib
Direction of the most recent message — inbound for a received message, outbound for a sent one.
Possible values: inbound, outbound
labels
array of string
wajib
Labels on this conversation. Exactly one system placement label is always present — inbox, archive (filed away, done for now), spam (the opening message failed sender authentication), or blocked (rejected by the mailbox's receive policy or rules) — set by the message that started the conversation. Move a conversation by updating its labels: add spam to file it as spam, add archive to clean it out of the inbox, and add inbox — or remove spam, blocked, or archive — to bring it back. An archived conversation returns to the inbox by itself when a new message arrives. Custom labels share the same list; a conversation carries at most 20.
created_at
string
wajib
When the thread was created.
updated_at
string
wajib
When the thread last changed.
highlights
object
Matched search fragments, keyed by the field that matched. Returned only by thread search; omitted when listing threads.
Tampilkan atribut turunan
highlights.subject
array of string
Matched fragments from the conversation's subject.
highlights.text
array of string
Matched fragments from a message's body text.