You've been on SendGrid for years. Your IPs are warmed. SPF, DKIM, and DMARC are all configured. Gmail and Microsoft's mail servers recognize your domain and route you to the inbox. That reputation is hard-won — it takes months, and a bad transition can wreck it in days.
This is why most developers never leave their current ESP, even when the pricing gets painful or the features don't keep up.
PushMail's BYOK (Bring Your Own Key) model gives you a third option: keep everything that's working, and add what's missing.
What BYOK Actually Means
With BYOK, you connect PushMail to your existing SendGrid account using your own API key. When PushMail sends an email, it routes it through your SendGrid account — your IPs, your authenticated domains, your sender reputation. Nothing changes on the deliverability side.
What you gain is PushMail sitting in front of SendGrid as the orchestration layer: managing contacts, firing drip sequences, scheduling campaigns, processing webhooks, and handling billing at the per-email level instead of per-contact.
The Problem with SendGrid's Pricing Model
SendGrid prices marketing features on top of transactional email, and the numbers add up fast.
- SendGrid Essentials: $19.95/mo for 50k emails. Add Marketing Campaigns and you're at ~$80/mo.
- SendGrid Pro: $89.95/mo for 100k emails. With Marketing Campaigns, that's ~$150/mo.
The Marketing Campaigns add-on is $60/mo on its own — and it's required if you want automated sequences or scheduled campaigns through SendGrid's interface.
With PushMail's BYOK approach, there is no platform fee. You pay PushMail per email sent, and you pay SendGrid whatever their cheapest sending plan costs. At 100k emails per month, PushMail's per-email cost comes out to $210, but you can run SendGrid's base plan since PushMail handles all the marketing functionality. Whether that's a better deal depends on your volume and how heavily you use sequences — but the math is worth running.
To be direct about the tradeoff: BYOK means you pay two bills instead of one. The savings come from eliminating the Marketing Campaigns add-on and from PushMail's lower per-email rates on the marketing side. If you only send transactional email and never use sequences or campaigns, BYOK may not save you money. But if you're paying for Marketing Campaigns and not loving the product, it likely will.
Step-by-Step Migration
1. Sign Up for PushMail and Get Your API Key
Create an account at pushmail.dev. Once you're in the dashboard, navigate to Settings and generate your PushMail API key. This is what your application will use to talk to PushMail's API.
2. Create a Sending Config with Your SendGrid Key
In the PushMail dashboard, go to Settings > Sending Configurations and add a new config. Select sendgrid as the provider and paste in your existing SendGrid API key.
You can also do this via the API:
curl -X POST https://pushmail.dev/api/v1/sending-configs \
-H "Authorization: Bearer pm_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "SendGrid Production",
"provider": "sendgrid",
"apiKey": "SG.your_sendgrid_key_here",
"fromEmail": "you@yourdomain.com",
"fromName": "Your Company"
}'3. Verify the Config
PushMail will send a test email through your SendGrid account to confirm the key works and the connection is valid. This goes through your actual SendGrid infrastructure — same as any other send.
curl -X POST https://pushmail.dev/api/v1/sending-configs/{id}/verify \
-H "Authorization: Bearer pm_live_your_key_here"If the test email arrives, your setup is working. Nothing has changed about how SendGrid routes your mail.
4. Export Contacts from SendGrid and Import into PushMail
Export your contacts from SendGrid Marketing Campaigns as a CSV. PushMail's CSV import accepts standard columns: email, first_name, last_name, and any custom fields you want to map.
Upload the CSV through the dashboard or via the imports API. PushMail deduplicates on email address and supports tags and lists, so you can preserve any segmentation you had in SendGrid.
5. Update Your Application to Use PushMail's API
PushMail's send endpoint is a near drop-in for SendGrid's v3 mail send. The main difference is the authentication header and endpoint URL.
Before:
const sgMail = require('@sendgrid/mail')
sgMail.setApiKey(process.env.SENDGRID_API_KEY)
await sgMail.send({ to, from, subject, html })After:
await fetch('https://pushmail.dev/api/v1/sends', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.PUSHMAIL_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ to, subject, html })
})The email still routes through your SendGrid account. PushMail records the send, deducts credits, handles suppression checking, and forwards the request to SendGrid.
6. Forward SendGrid Webhooks to PushMail
Go to your SendGrid account settings and update the Event Webhook URL to point at PushMail's webhook endpoint:
https://pushmail.dev/api/v1/webhooks/sendgridPushMail processes delivery events (delivered, bounced, spam reports, unsubscribes) and normalizes them into its events table. This powers deliverability analytics, automatic suppression list management, and sequence cancellation on bounce.
What You Gain
Drip sequences with conversion goals. Define a sequence, set a conversion goal (e.g., a purchase event), and PushMail stops enrolling contacts once they convert. SendGrid's equivalent is the $60/mo Marketing Campaigns add-on.
Per-email pricing for marketing. Stop paying per contact. If you have 50,000 contacts but only email 5,000 of them this month, you pay for 5,000 sends.
Built-in email validation. PushMail validates addresses before every send. No extra service or API call required.
Multi-site support. One PushMail account can manage sending for multiple domains and products. Each site gets its own contacts, sequences, templates, and sending config.
API-first contact management. Tags, lists, and segmentation are all API-accessible. Build your own subscription management, or use PushMail's dashboard.
Normalized webhooks across providers. If you later switch providers, your webhook processing code doesn't change.
What Stays the Same
This is the important part.
Your SendGrid IPs do not change. Your SPF, DKIM, and DMARC records do not change. Your authenticated domains do not change. The mail that arrives in Gmail inboxes still comes from the same infrastructure your recipients have been receiving from for years.
Sender reputation is tied to IP addresses and domain authentication, not to which dashboard you use to send. BYOK keeps all of that intact.
Deliverability rates stay the same. Inbox placement stays the same. The transition is invisible to your recipients.
The Long-Term Path
If you eventually want to move off SendGrid entirely, PushMail supports 10 email providers. You can start on BYOK SendGrid today to get access to sequences and campaigns without disrupting deliverability, then migrate to PushMail's managed infrastructure once you're ready to do a proper IP warmup on new dedicated IPs.
Or stay on BYOK indefinitely. There's no requirement to switch.
Get Started
If you're paying for SendGrid Marketing Campaigns and not getting the value you expected, BYOK is worth an afternoon of your time. The migration is a few API calls and a CSV export.
Sign up at pushmail.dev — no credit card required to get started.