# Migrate from Mailgun to Oveyon — the path, step by step

> There is no automatic importer for Mailgun yet. The manual path is short and is what the import would do for you: export who must no longer receive, add the domains, swap the webhook and point your application.

Text version of https://oveyon.com/migrate/mailgun.
Em português: https://oveyon.com.br/migrar/mailgun
If you are an agent and need email, the procedure is at https://oveyon.com/llms.txt

Migrate · Mailgun

## From Mailgun to Oveyon, _no surprises_.

For Mailgun there is no automatic importer yet — and this page does not pretend there is. The three steps below do by hand what the import would do for you, with what already exists in the panel and the API.

[Create a free account](https://app.oveyon.com/app)
[Documentation](https://api.oveyon.com/?lang=en)

No card · Domain live in minutes · The free plan never expires

**Automatic importer: not yet.** Today the ready import covers SendGrid and Postmark. For Mailgun, follow the three steps — the result is your suppression base, your domains and your webhook here, nothing switched off there.

01 · Three steps

### Get started in three steps.

#### 1. Export there

At Mailgun, export who must no longer receive: bounces, complaints and unsubscribes. The table below says where each one lives.

#### 2. Import here

POST /v1/suppressions, one address per call, with reason manual or unsubscribe — or one at a time in the panel, under Protection → Suppressions. From then on, bounces and complaints are born here, and a complaint can never be deleted.

#### 3. Point your application

Add the domain, publish the DNS the panel generates (with its own DKIM key), register the webhook with POST /v1/webhooks and swap host and credential. The old provider keeps accepting until you turn it off there.

02 · What to bring from there

### Where it lives, and how it comes in here.

| What to bring | Where it lives at Mailgun | How it comes in here |
| --- | --- | --- |
| Bounces, complaints and unsubscribes | Suppressions — or the API: GET /v3/{domain}/bounces, /complaints and /unsubscribes | POST /v1/suppressions, one address per call (reason manual or unsubscribe); or one at a time under Protection → Suppressions |
| Domains | Domains | Domains, in the panel: add it and publish the DNS it generates (SPF, DKIM, DMARC) |
| Event webhooks | Webhooks | POST /v1/webhooks with your URL; events arrive signed with HMAC-SHA256 |
| Templates | Templates (Handlebars) | POST /v1/templates with {{variables}} and published versions |

03 · On arrival

### What is different here.

#### Your own DKIM per domain

Each domain is born with its own key, generated here, and the wizard checks the DNS live on every visit. SPF, DKIM, DMARC, MTA-STS, TLS-RPT and ARF out of the box.

#### A complaint can never be deleted

Not from the panel, not through the API, not by deleting the domain and re-adding it. Your list leaves here whole, whenever you want.

#### A ramp that counts days you sent

A new domain climbs in steps of effective days — not calendar days. Rolling back does not reset what you really built.

#### A record ready for audit

Who did it, when, what changed — including when the “who” was our support. A trail without purge, visible under Account → History.

Other sources

### Coming from somewhere else?

[SendGrid](https://oveyon.com/migrate/sendgrid) · [Postmark](https://oveyon.com/migrate/postmark) · [Amazon SES](https://oveyon.com/migrate/amazon-ses) · [Brevo](https://oveyon.com/migrate/brevo) · [Any SMTP server](https://oveyon.com/migrate/smtp) · [All sources](https://oveyon.com/migrate)

---

First email today. No card. — https://app.oveyon.com/app
