Email API Migration Guide
Move transactional sending, SMTP relay, inbound webhooks, suppressions, and DNS records from another provider to Postscale.
TL;DR
Migrate in stages: inventory current sending and inbound features, verify Postscale DNS, port templates and webhooks, import suppressions, run parallel low-risk traffic, then cut over critical streams once authentication and delivery events are clean.
What you will learn
- Build a migration inventory before changing DNS
- Move sending, inbound, suppressions, templates, and webhooks in a safe order
- Use parallel sending and staged DNS cutover to reduce risk
Build the inventory
List every current provider feature your product uses:
- REST send endpoints.
- SMTP credentials.
- Templates.
- Webhooks.
- Suppressions.
- Inbound routes.
- Dedicated IPs.
- Event metadata.
- DMARC report processing.
Migration risk usually comes from forgotten edge workflows, not the main send call.
Prepare Postscale without switching traffic
Before changing production code:
- Create the organization and API keys.
- Add sending domains.
- Publish DKIM records.
- Add Return-Path routing.
- Configure inbound subdomains if needed.
- Verify webhooks in a staging environment.
- Import suppressions.
Keep old provider DNS active during this phase.
Import suppressions before sends
Import suppression lists before staging or production traffic goes through the new provider. This prevents previously bounced, complained, or unsubscribed recipients from being mailed again during test sends.
Bring over:
- Hard bounces.
- Spam complaints.
- Unsubscribes.
- Manual blocks or invalid recipients.
Use /dashboard/suppressions to preview provider CSV exports before committing
them, or use the Suppressions API directly. For the
provider-by-provider checklist, see the
Suppression List Migration Guide.
Port sending code
Move one message type at a time. Start with low-risk traffic like internal notifications or non-critical receipts.
For each message type, confirm:
- From address.
- Reply-To behavior.
- Template variables.
- Attachments.
- Metadata.
- Idempotency.
- Delivery event mapping.
Use the sending guide for REST API patterns.
Port webhooks
Map old provider events to Postscale events. Your handler should treat webhook migration as a schema change:
- Verify signatures with the new secret.
- Store event ids.
- Map message ids to internal records.
- Handle retries idempotently.
- Update dashboards or support tooling.
Run both old and new webhook handlers during parallel sending.
Cut over in stages
A safe sequence:
- Internal tests.
- Low-risk transactional messages.
- A small percentage of production traffic.
- Critical transactional streams.
- Inbound routes.
- Cleanup old provider credentials and DNS.
Pause the cutover if bounces, complaints, deferrals, or authentication failures drift from baseline.
After the cutover
For two weeks, monitor:
- DMARC pass rate.
- Bounce rate.
- Complaint rate.
- Deferrals by mailbox provider.
- Webhook retry volume.
- Suppression growth.
Do not remove the old provider until delayed bounces and outstanding retries are no longer useful.
Frequently asked questions
- Should I change DNS first?
- No. Add and verify Postscale records first, but cut traffic over only after application code and webhooks are ready.
- What data should I import first?
- Import suppressions early so previously bounced or complained recipients do not receive mail during testing.
Related guides
Put the guide into production
Postscale brings sending, inbound processing, DMARC reporting, and masked addresses behind one API so the operational pieces stay connected.