Sign inGet Started

List mailboxes

GET
/v1/email/mailboxes
for await (const mailbox of bird.email.mailboxes.list()) {
  console.log(mailbox.address);
}
Réponse200
{
  "data": [
    {
      "id": "mbx_01krdgeqcxet5s7t44vh8rt9mg",
      "address": "concierge@inbox.ai",
      "forwarding_address": "k7q2mzxw4h6p5ra3@eu1.inbound.bird.com",
      "display_name": "Acme Concierge",
      "receive_policy": "open",
      "state": "active",
      "channel": "email",
      "owner": {
        "type": "workspace",
        "id": "ws_01krdgeqcxet5s7t44vh8rt9mg"
      },
      "inbound_address_id": "ina_01krdgeqcxet5s7t44vh8rt9mg",
      "retention_tier": "30d",
      "next": [
        {
          "kind": "operation"
        }
      ]
    }
  ],
  "next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
  "prev_cursor": null,
  "refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}

Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with q, look a mailbox up by its exact address, or filter by lifecycle state or domain.

Paramètres de requête

addressstring

Filter to the mailbox with exactly this address.

qstring

Case-insensitive search matching the mailbox's address or display name (substring).

statestring

Return only active or suspended mailboxes. Use include_deleted for restorable deleted mailboxes.

Possible values: active, suspended

domainstring

Filter to mailboxes whose address is on this domain.

include_deletedboolean

Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has deleted_at set.

limitinteger

Maximum number of items to return per page.

starting_afterstring

Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.

ending_beforestring

Cursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.

Contenu de la réponse

data
array of object
obligatoire
Afficher les attributs enfants
data.id
string
obligatoire

Mailbox ID.

data.address
string
obligatoire

The mailbox's email address. Immutable once created.

data.forwarding_address
nullable string
obligatoire

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

data.display_name
nullable string
obligatoire

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

data.default_reply_to
nullable string
obligatoire

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

data.receive_policy
string
obligatoire

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

data.state
string
obligatoire

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

data.channel
string
obligatoire

The channel this mailbox receives on. Always email.

Possible values: email

data.owner
object
obligatoire

The principal that owns the mailbox. Always the workspace.

Afficher les attributs enfants
data.inbound_address_id
string
obligatoire

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

data.retention_tier
string
obligatoire

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

data.message_count
integer
obligatoire

Number of retained messages across all threads.

data.thread_count
integer
obligatoire

Number of retained threads.

data.size_bytes
integer
obligatoire

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.

data.unread_thread_count
nullable integer

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

data.metadata
object
obligatoire

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

data.local_part_generated
boolean
obligatoire

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.

data.created_at
string
obligatoire

When the mailbox was created.

data.updated_at
string
obligatoire

When the mailbox was last updated.

data.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.

data.next
array of object

What to do next with this mailbox. The response that creates it suggests subscribing to the mail it receives; other reads of one mailbox return an empty list, and lists omit it.

Afficher les attributs enfants
data.next.kind
string
obligatoire

What you do about this step.

  • operation: call the operation named in operation, then read again.
  • external: act somewhere this API does not reach, then read again.
  • wait: nothing is asked of you, so read again later.
  • terminal: nothing you do resolves this, so stop retrying.

Tolerate a value you do not recognize: show the description and offer no action.

Possible values (may grow over time): operation, external, wait, terminal

data.next.description
string
obligatoire

A short, human-readable label for the step, suitable for display.

data.next.operation
string

The operationId to call. Present only when kind is operation. The operation's own schema says how to call it; this says only which one, and what to address it with.

data.next.params
object

The parameters that address the operation, by name: {"sender_id": "…"} for an operation on /v1/sms/senders/{sender_id}/requirements. A parameter the operation takes in its query string is given the same way, so an operation addressed as ?subject_id= carries {"subject_id": "…"}. Every parameter the call needs is here, whether its value came from the thing you were acting on or is fixed for this step, so you can make the call from this object alone. Present only when kind is operation and the operation names a subject. A request body, when the operation takes one, is described by the operation's own schema and never appears here.

data.next.url
string

A URL to open. Present only when kind is external, and only when the step has one. An external step whose description says to go and do something with no URL to open is normal.

next_cursor
nullable string
obligatoire

Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.

prev_cursor
nullable string
obligatoire

Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.

refresh_cursor
nullable string
obligatoire

Refresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.