Migrate from Postmark to Notify
Swap Postmark for Notify — server token, HtmlBody, and a smaller send surface.
Postmark is a respected transactional specialist. Notify is deliberately smaller: send, webhooks, and logs — no template studio. Pro is $10/month for 10,000 emails.
What changes
| Postmark | Notify | |
|---|---|---|
| Recommended client | postmark SDK (ServerClient.sendEmail) | One fetch — no SDK required |
| Auth | X-Postmark-Server-Token | x-api-key |
| Endpoint | POST https://api.postmarkapp.com/email | POST https://notify.cx/api/email/send |
| Body | HtmlBody / TextBody (+ MessageStream) | message |
| Product surface | Streams, templates, richer ops UI | Minimal dashboard |
| Entry paid pricing | Basic from ~$15/mo for 10k (confirm current) | Pro $10/mo for 10k |
Before / after
Postmark (official SDK)
import { ServerClient } from 'postmark';
const client = new ServerClient(process.env.POSTMARK_SERVER_TOKEN!);
const result = await client.sendEmail({
From: 'noreply@acme.com',
To: 'user@example.com',
Subject: 'Welcome',
HtmlBody: '<h1>Welcome</h1>',
MessageStream: 'outbound'
});
console.log(result.MessageID);
Notify (one fetch — no SDK required)
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: 'noreply@acme.com',
to: 'user@example.com',
subject: 'Welcome',
message: '<h1>Welcome</h1>'
})
});
Migration checklist
- Sign up and copy an API key from Credentials
- Verify your domain
- Replace the Postmark server token with
NOTIFY_API_KEY - Map
HtmlBody/TextBodytomessage - Point webhooks at Notify (docs) — Pro or Scale
- Confirm sends in logs