Documentation
Sign inGet started

Receiving email

Received email is available in Email > Emails > Receiving, through the inbound-messages API, and in email.received webhooks. Choose between two setup methods based on the address you want to receive mail at.
  • A forwarding address is a mailbox we generate for you, like mfzxq2lom5uxi3lb@inbound.eu.bird.com. No domain, no DNS: you point an existing inbox's forwarding rule at it, and we receive every message it forwards.
  • Receiving on your own domain publishes MX records for a subdomain you control (say inbound.acme.com), after which mail sent to any address at that subdomain arrives as an inbound message.
Start with a forwarding address if you want to try receiving, or to forward an existing support inbox's mail. Set up domain receiving when you want mail addressed directly to your own domain.

Forwarding addresses

In Email > Domains > Forwarding, select Add forwarding address and enter a name such as Support inbox. We generate a fixed, random address. You can rename its label later. Deleting one forwarding address stops mail to that address without affecting the others.
The Forwarding tab of the Domains page in the dashboard: two forwarding addresses (Support inbox, Card disputes) with their generated inbound addresses, and the Add forwarding address button
Programmatically, POST /v1/email/inbound-addresses does the same thing (CLI: bird email inbound-addresses create). The response has the generated address, its id, and your label.
Then set that address as the forwarding target wherever the mail lives today: a Gmail or Google Workspace forwarding rule, an Outlook rule, or your helpdesk's forwarding setting. We receive whatever is forwarded, parse it, and store it as an inbound message.

Receiving on your own domain

Domain receiving is a capability of a sending domain, so the domain must be registered and DKIM-verified first. Use a dedicated subdomain (inbound.acme.com), never your apex: receiving is enabled on the domain's own registration, and apex MX records would capture your corporate mail.
Open Email > Domains, then select your domain. In Receiving (Optional), turn on receiving and publish the listed MX records. You cannot enable receiving until DKIM is verified. A domain that already receives mail for another organization is also unavailable.
The Receiving card on a domain's detail page in the dashboard: the receiving toggle enabled and three verified MX records with copyable name and value fields
Once enabled, the receiving status moves through the same lifecycle as the sending records: pending while we check DNS for the MX records, then verified once they resolve correctly. From that point, mail sent to any local-part at the domain (support@, orders@, anything) is delivered as an inbound message. Turning the toggle off stops delivery of inbound mail. The MX records stay listed on the domain as a reference, with their status back at pending.

Reading what you receive

The Receiving tab lists received messages newest first, with sender, recipient, subject, and received time. Search by exact sender address or filter by date. Select a row to open Rendered, Text, Details, and Raw views. The header shows the SPF, DKIM, and DMARC results recorded when the message arrived.
The Receiving tab of the Emails page in the dashboard, listing received messages with sender, recipient, subject, and received time
Received emails are retained for 30 days.
The same data is available over the API (CLI: bird email inbound-messages):

Reacting to received mail: the email.received webhook

To process mail as it arrives (route support requests, ingest replies, trigger an agent), subscribe a webhook endpoint to the email.received event. We fire it after receiving and parsing each message. The payload includes the inbound_message_id, envelope sender, recipients, subject, and in_reply_to reference. It also includes an overall authentication verdict (pass, fail, or unknown) and the individual SPF, DKIM, and DMARC results. This information supports routing and triage without a follow-up call. When you need the body or attachments, fetch them with the inbound-messages API using the inbound_message_id from the event.
Treat the authentication verdicts as your spam-and-spoofing filter: a message that fails DMARC claims a sender it could not authenticate as, and your handler can quarantine or drop it before any automation acts on it. Treat unknown as unverified rather than trusted.

Next steps

  • Sending domains: register and verify the domain you want to receive on.
  • Webhooks: endpoints, signatures, and retries for email.received.
  • Email log: the sending side of the Emails page.