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 to per call; loop or queue for batches.

Migration checklist

  1. Sign up and create an API key
  2. Verify your domain
  3. Replace SendGrid mail helpers with a single fetch to /api/email/send
  4. Move secrets: SENDGRID_API_KEYNOTIFY_API_KEY
  5. Update webhook receivers for Notify’s payload shape
  6. 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 |

Where to next?