> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mailchannels.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from Resend to MailChannels Email API

> Learn how to migrate a Resend sending integration to MailChannels sender-risk infrastructure.

## Core difference

Resend provides a modern send API for a team's own mail, with domains, templates, contacts, broadcasts, audiences or segments, webhooks, and receiving-related event signals. MailChannels is built for platforms where users, tenants, customers, or agents are the senders. It adds authenticated outbound delivery, runtime personalization, DKIM, Domain Lockdown, webhooks, sender isolation, and explicit suppression types so you can contain abuse without taking down good senders. Resend broadcast and inbound receiving workflows need separate replacements.

## Feature mapping

| Resend concept                           | MailChannels concept                 | Migration approach                                                                  |
| ---------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- |
| Email send API                           | `/send` payload                      | Rewrite requests to MailChannels authentication, endpoint, and payload structure.   |
| Sending domains                          | DKIM and Domain Lockdown             | Recreate authentication with MailChannels DNS records.                              |
| Stored templates                         | Application-managed Mustache content | Export templates and move rendering ownership outside Resend.                       |
| Webhooks                                 | MailChannels webhooks                | Recreate endpoint registration and update consumers for MailChannels event schemas. |
| Contact unsubscribes                     | Suppression list                     | Treat as non-transactional suppressions by default.                                 |
| Broadcasts                               | External campaign workflow           | Replace broadcast orchestration outside MailChannels.                               |
| Audiences or segments                    | External audience system             | Export or rebuild audience membership in a separate list manager.                   |
| Receiving and `email.received` workflows | No MailChannels Email API equivalent | Replace inbound receiving with another service.                                     |

## Send payload notes

Resend send requests are straightforward, but MailChannels uses its own personalization-centered payload and authentication.

| Concern        | Resend behavior                                       | MailChannels behavior                                    |
| -------------- | ----------------------------------------------------- | -------------------------------------------------------- |
| Authentication | Resend API key                                        | MailChannels API key authentication                      |
| Request shape  | Resend send payload                                   | MailChannels `/send` or `/send-async` payload            |
| Merge data     | Template or application variables                     | `dynamic_template_data` in personalizations              |
| Broadcasts     | Resend-managed campaign sends                         | External campaign system using MailChannels for delivery |
| Inbound        | Receiving-enabled domains and `email.received` events | External inbound service                                 |

## Template migration

Export Resend templates and replace template references in application code with application-owned template names, files, or records. Keep the runtime variable contract explicit so the MailChannels payload provides every value required by the new renderer.

## Suppression policy

Recommended defaults:

| Resend source                                     | MailChannels target                                                                                     |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Contact unsubscribes                              | Suppress as `non-transactional`.                                                                        |
| Complaints or hard-bounce style delivery failures | Suppress as both `transactional` and `non-transactional` when available.                                |
| Audience or segment preferences                   | Preserve in the external audience system and mirror to non-transactional suppression where appropriate. |

## Marketing migration

MailChannels Email API does not provide a Resend broadcast or audience store. Move broadcast planning, segmentation, approval, and scheduling into an external workflow. Use MailChannels as the governed delivery layer for permission-based messages that should move through shared-sender controls.

## Inbound migration

Resend receiving and `email.received` workflows do not map to MailChannels Email API resources. Replace them with a dedicated inbound mail service or application-owned receiving architecture before changing production routing.

## Cutover checklist

* Replace Resend endpoint and authentication.
* Translate send payloads into MailChannels personalizations.
* Move templates out of Resend.
* Publish and validate MailChannels DKIM records.
* Recreate webhooks for MailChannels event payloads.
* Replace broadcasts and audiences externally.
* Replace receiving workflows before production cutover.
