Skip to main content
To migrate from SendGrid, update your SMTP settings or convert v3 Mail Send requests to turboSMTP’s JSON format. This guide also covers DNS, suppressions, and webhooks. Global and EU sending hosts are available; review processing terms for your regional requirements.
SendGrid settings checked on 27 October 2026 against Twilio’s SMTP guide and Mail Send reference. SendGrid also has regional EU hosts; use your existing region when reviewing these examples.

Before you start

1

Create a turboSMTP account

Sign up for free and create a Consumer Key and Consumer Secret. See API Keys.
2

Authenticate your sending domain

Merge turboSMTP’s SPF include into your existing single SPF record and add its DKIM record. Keep SendGrid authorized until migration and queued delivery are complete. See SPF, DKIM, and DMARC.
3

Export your suppressions

Export bounces, unsubscribes, and spam reports from SendGrid and use POST /suppressions/import to add them to turboSMTP. Preserve subscription-group preferences in your application when an account-wide suppression would be too broad. See the Suppressions API.

Option 1: Switch SMTP credentials

If your application, CMS, or framework sends through smtp.sendgrid.net, replace these settings:
Require STARTTLS for these port 587 examples. Global and EU support the same ports and TLS modes. Enable SMTP Sending on your key and check any IP restrictions. See SMTP Setup.

Option 2: Convert API calls

Replace https://api.sendgrid.com/v3/mail/send with https://api.turbo-smtp.com/api/v2/mail/send (EU: https://api.eu.turbo-smtp.com/api/v2/mail/send) and send your credentials as headers instead of a Bearer token. 1. Change the endpoint and authentication headers:
2. Flatten the payload: This example maps one personalization. For separate messages, per-recipient subjects, templates, or substitutions, render and send each intended message separately. Flattening several personalizations into one recipient list can expose recipients or change the message they receive.
/mail/send authenticates only with consumerKey and consumerSecret. It ignores Authorization, so a request carrying only that header is refused. Enable HTTP API Sending on your key.

Field mapping

A successful request returns {"message":"OK","mid":...}. This acknowledges acceptance, not delivery. Store mid or your UUID reference_id to match later events. mid exceeds JavaScript’s safe-integer range; parse it losslessly, for example as a string or BigInt. Base64 adds roughly one third to attachment data before MIME overhead; 24 MB is not a raw-file allowance.

Replace the Event Webhook

Configure a turboSMTP webhook callback and map SendGrid event names to turboSMTP’s delivery events (PROCESSED, DROPPED, DELIVERED, DEFERRED, BOUNCED) and engagement events (OPENED, CLICKED, UNSUBSCRIBED, REPORT). turboSMTP requests are unsigned. Replace SendGrid signature verification with endpoint protection appropriate for turboSMTP, such as HTTP Basic authentication. Check enabled events and plan availability under Settings → Notifications → Webhooks → Edit. Free and Basic include a 30-day webhook demo; settings changes can take up to one hour. Symfony users can check the upcoming Mailer bridge.

Cut over safely

1

Send a test

Send to an internal address and confirm it arrives with SPF and DKIM passing.
2

Ramp up gradually

Route a small share of traffic to turboSMTP and compare delivery in the statistics dashboard.
3

Switch fully and clean up DNS

Move all traffic and sync new opt-outs. After SendGrid’s queue has drained, remove only the DNS records and SPF mechanisms no longer needed by another service.

Frequently asked questions

It depends on your DNS access, application features, templates, suppression data, and webhook consumers. Test each sending flow before moving production traffic.
No. Keep both providers authorized within one SPF record and retain their DKIM records until cutover and queued delivery are complete.
Contact support to discuss your migration. Available support channels depend on your plan.