Email inbox gets folders, read state, and a recoverable trash

Email conversations move from a single labels list to dedicated folder and read fields. Get, list, and update a thread now return folder (inbox, archive, spam, blocked, sent, or trash) and read, with labels reserved for your own custom tags. List threads by folder with folder=, filter by read state with read_state=read|unread, and match custom labels with labels=.

Trash is no longer a dead end: DELETE moves a conversation's messages to trash, and the new restore a thread endpoint (POST /v1/email/threads/{thread_id}/restore) brings back whatever hasn't passed its trash deadline or the mailbox's retention period, with folder, read state, and labels intact.

Also in this release:

  • Replies can add their own Cc and Bcc. Reply to a thread message now accepts cc and bcc on top of reply_all, each capped at 50 merged addresses. Bcc recipients stay out of conversation participants and visible headers, and their delivery outcomes are excluded from the sent message's per-recipient recipients list, which now only tracks the To and Cc lines.
  • Mailboxes split sender name from dashboard name. Create and update a mailbox take a name field for the sender name shown on outgoing mail; display_name is now what your team sees in the dashboard and defaults to name when no override is set.
  • Number ownership status explains unrecoverable cases. Get and list workspace numbers can now return ownership.unavailable_at for a number that can't be activated and ownership.registration_due_at, the deadline for completing ownership details before a number is removed.
  • WhatsApp template language pages link straight to Meta. Get a template version language adds whatsapp_manager_url, a direct link into Meta's WhatsApp Manager for that language.

Related resources

Continue with the documentation, guides and examples for this topic.

Start building with Bird in minutes.