Inbound emails is currently in private alpha and only available to a limited
number of users. APIs might change before GA.To use the methods on this page, you must upgrade your Resend Node SDK to
version
resend@6.2.0-canary.2
or later.Join the waitlist.- Receiving support emails from users
- Processing forwarded attachments
- Replying to emails from customers
How does it work
Resend processes all incoming emails for a domain, parses the contents and attachments, and then sends aPOST
request to an endpoint that you choose.
To receive emails, you can either use a domain managed by Resend, or set up a custom domain.
Here’s how to start receiving emails using a domain managed by Resend.
1. Get your .resend.app
domain
Any emails sent to an <anything>@your-generated-domain.resend.app
address will be received by Resend and forwarded to your webhook.
To see your Resend domain:
- Go to the emails page,
- Select the “receiving” tab
- Click the three dots button and select “Inbound address”

2. Configure webhooks
Next, create a new webhook endpoint to receive email events.- Go to the Webhooks page
- Click "Add Webhook"
- Enter the URL of your webhook endpoint
- Select the event type
email.received
- Click "Add"

3. Receive email events
In your application, create a new route that can acceptPOST
requests.
For example, here's how you can add an API route in a Next.js application:
app/api/events/route.ts
View received emails in the dashboard
You can see all inbound email events in the emails page in the dashboard. Resend will store your emails even if you don’t configure a webhook or if your webhook endpoint is down. There, you will be able to filter emails by theirto
, from
, and subject
fields. You can also filter
for the date the email was received.


You can also list inbound emails using the API or SDKs. See the List Inbound
Emails API for more information.
How to process attachments
A common use case for inbound emails is to process attachments.Webhooks do not include the actual content of attachments, only their
metadata. You must call the Attachments
API to retrieve
the content. This design choice supports large attachments in serverless
environments that have limited request body sizes.
app/api/events/route.ts
How to forward emails
Inbound emails can also be forwarded to another email address.Webhooks do not include the actual HTML or Plain Text body of the email. You
must call the Inbound API to
retrieve them. This design choice supports large payloads in serverless
environments that have limited request body sizes.
app/api/events/route.ts
FAQ
Will I receive emails for any address at my domain?
Will I receive emails for any address at my domain?
Yes. Once you add the MX record to your domain, you will receive emails for
any address at that domain.For example, if your domain is
cool-hedgehog.resend.app
, you will receive
emails sent to anything@cool-hedgehog.resend.app
. You can then filter or
route based on the to
field in the webhook event.The same applies to custom domains. If
your domain is inbound.yourdomain.tld
, you will receive emails sent to
anything@inbound.yourdomain.tld
.Can I receive emails on a subdomain?
Can I receive emails on a subdomain?
Yes. You can add the MX record to any subdomain (e.g.
inbound.yourdomain.tld
) and receive emails there.Should I add the `MX` records for my root domain or a subdomain?
Should I add the `MX` records for my root domain or a subdomain?
If you already have existing MX records for your root domain, we recommend
that you create a subdomain (e.g.
inbound.yourdomain.tld
) and add the MX
record there. This way, you can use Resend for inbound emails without
affecting your existing email service.Will I lose my emails if my webhook endpoint is down?
Will I lose my emails if my webhook endpoint is down?
No, you will not lose your emails. Resend stores emails as soon as they come
in.Even if your webhook endpoint is down, you can still see your emails in
the dashboard and retrieve them using the Inbound
API.Additionally, we will retry delivering the webhook event on the schedule
described in our webhooks documentation
and you can also replay individual webhook events from the
webhooks page in the dashboard.
How can I make sure that it's Resend who's sending me webhooks?
How can I make sure that it's Resend who's sending me webhooks?
All of Resend’s webhooks include a secret and headers that you can use to verify
the authenticity of the request.You can find code samples and instructions on how to verify webhooks in the
webhook verification documentation.