Migrate from SendGrid to Notify
Move transactional sends from SendGrid to Notify with a smaller API surface.
SendGrid is a full ESP with marketing tools, templates, and a large console. Notify is the thin transactional layer: one send API, webhooks, and logs. If you only need password resets, receipts, and app notifications, you can drop a lot of surface area.
What changes
| | SendGrid | Notify |
| --- | --- | --- |
| Auth | Authorization: Bearer SG.... | x-api-key: ... |
| Endpoint | POST https://api.sendgrid.com/v3/mail/send | POST https://notify.cx/api/email/send |
| Body | Nested personalizations, content[] | Flat to, subject, message |
| Templates | Dynamic templates common | You own the HTML; pass it as message |
Before / after
SendGrid
await fetch('https://api.sendgrid.com/v3/mail/send', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SENDGRID_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
personalizations: [{ to: [{ email: 'user@example.com' }] }],
from: { email: 'noreply@acme.com', name: 'Acme' },
subject: 'Welcome',
content: [{ type: 'text/html', value: '<h1>Welcome</h1>' }]
})
});
Notify
await fetch('https://notify.cx/api/email/send', {
method: 'POST',
headers: {
'x-api-key': process.env.NOTIFY_API_KEY!,
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: 'Acme <noreply@acme.com>',
to: 'user@example.com',
subject: 'Welcome',
message: '<h1>Welcome</h1>'
})
});
Mapping notes
- Dynamic templates — render HTML in your app (or with React Email) and pass the string as
message. Notify does not host a template studio. - Categories / marketing campaigns — out of scope; Notify is transactional only.
- Event webhooks — recreate delivery event subscriptions on Pro or Scale. See Webhooks.
- Multiple recipients — Notify’s send API is one
toper call; loop or queue for batches.
Migration checklist
- Sign up and create an API key
- Verify your domain
- Replace SendGrid mail helpers with a single
fetchto/api/email/send - Move secrets:
SENDGRID_API_KEY→NOTIFY_API_KEY - Update webhook receivers for Notify’s payload shape
- Smoke-test password reset / receipt flows against sandbox then production
Pricing snapshot
| Plan | Price | Emails / month | | --- | --- | --- | | Free | $0 | 1,000 | | Pro | $10 | 10,000 | | Scale | $50 | 100,000 |