Sign inGet Started

Create a mailbox forwarding address

POST
/v1/email/mailboxes/{mailbox_id}/forwarding-address
const mailbox =
  await bird.email.mailboxes.forwardingAddress.create("mbx_01abc");
console.log(mailbox.forwarding_address);
Response200
{
  "id": "mbx_01krdgeqcxet5s7t44vh8rt9mg",
  "address": "support@acme.com",
  "forwarding_address": "k7q2mzxw4h6p5ra3@eu1.inbound.bird.com",
  "display_name": "Acme Support",
  "default_reply_to": null,
  "receive_policy": "open",
  "state": "active",
  "channel": "email",
  "owner": {
    "type": "workspace",
    "id": "ws_01krdgeqcxet5s7t44vh8rt9mg"
  },
  "inbound_address_id": "ina_01krdgeqcxet5s7t44vh8rt9mg",
  "retention_tier": "30d",
  "message_count": 142,
  "thread_count": 37,
  "size_bytes": 12500,
  "metadata": {},
  "local_part_generated": false,
  "created_at": "2026-07-08T12:00:00Z",
  "updated_at": "2026-10-28T10:00:00Z",
  "deleted_at": null,
  "next": [
    {
      "kind": "external",
      "description": "Configure forwarding at your email provider, then send a fresh test message to support@acme.com and inspect its delivered_to address."
    }
  ]
}

Gives a mailbox on your own domain an address on our receiving domain. Forward mail for the mailbox's address to it from your current email provider, and the mail lands in this mailbox. We choose the address; the request takes no body. The response is the mailbox with forwarding_address set.

If the mailbox already has a forwarding address, it is returned unchanged, so retrying is safe. The address stays the same for the life of the mailbox, including after a delete and restore. A suspended mailbox can get one too; it stays suspended. Setting up the address does not change DNS or your email provider, and does not show that forwarding works. Add the forwarding rule at your provider, then send a new test message to address.

Returns 422 for a mailbox on the shared inbox.ai domain, which already receives mail directly. Also returns 422 when the mailbox's domain is not verified in this workspace or another workspace receives mail for it.

Parameters

mailbox_idstring

Mailbox ID or email address in this workspace.

Response Payload

id
string
required

Mailbox ID.

address
string
required

The mailbox's email address. Immutable once created.

forwarding_address
nullable string
required

An address we generate on our receiving domain, either when the mailbox is created on a domain not set up for receiving with us or later, when you set up forwarding for the mailbox. Forward mail for address here from your current email provider, and it lands in this mailbox. Replies still go out from address. Immutable once set. It stops receiving while the mailbox is deleted, works again with the same value after a restore, and keeps working if you later enable or disable receiving on the domain. null until set up; always null on the shared domain, which receives directly.

display_name
nullable string
required

Display name used as the sender name on mail from this mailbox. null when unset.

default_reply_to
nullable string
required

Default Reply-To address stamped on mail sent from this mailbox. null when unset.

receive_policy
string
required

Which inbound mail the mailbox accepts:

  • open: Accepts everything not blocked by a rule.
  • replies_only: Accepts only replies to messages this mailbox has sent. A reply must match a message the mailbox sent. Landing in an existing thread by itself does not count.
  • allowlist: Accepts only senders matching an allow rule. Replies to prior outbound mail are always admitted unless blocked.
  • drop: Stores nothing.

Possible values: open, replies_only, allowlist, drop

state
string
required

Lifecycle state. active means the mailbox can send, receive, and expose conversations. suspended pauses sending, conversation reads, and events; inbound mail is retained with the blocked label until you resume it.

Possible values: active, suspended

channel
string
required

The channel this mailbox receives on. Always email.

Possible values: email

owner
object
required

The principal that owns the mailbox. Always the workspace.

Show child attributes
inbound_address_id
string
required

The underlying inbound address that receives this mailbox's mail.

retention_tier
string
required

How long message metadata, extracted text, and attachments are kept. Original bodies and inbound raw MIME are limited to 30 days on every tier.

Possible values: 30d, 90d, 1y

message_count
integer
required

Number of retained messages across all threads.

thread_count
integer
required

Number of retained threads.

size_bytes
integer
required

Stored bytes across the mailbox's retained messages: subject, preview, extracted text, and attachment bytes. Message bodies and raw MIME expire after 30 days and do not count. Maintained with each message written or deleted, so the value is current; messages stored before the counter existed are not counted.

unread_thread_count
nullable integer

Number of threads with unread messages in this mailbox, excluding trash. null on create/update responses.

metadata
object
required

Your own key/value data attached to the mailbox. Up to 2 KB. Keys starting with __bird are reserved.

local_part_generated
boolean
required

Whether we generated the local part of the address. false means a custom handle was chosen at creation. On the shared inbox.ai domain a custom handle counts against your plan's custom-handle allowance.

created_at
string
required

When the mailbox was created.

updated_at
string
required

When the mailbox was last updated.

deleted_at
nullable string

When the mailbox was deleted, or null if active. Deletion stops receiving; restore is available for 30 days unless permanent erasure has started.

next
array of object

What to do next with this mailbox. The response that creates it suggests subscribing to the mail it receives. Forwarding-address setup suggests configuring the email provider. Other reads of one mailbox return an empty list, and lists omit it.

Show child attributes

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