Quick Start Guide
Send your first transactional email with Notify in minutes — SDK, fetch, or MCP.
Get from sign-up to a delivered email in a few steps. Transactional email API for apps that already render HTML: one send endpoint, domain auth (SPF/DKIM/DMARC), logs, and webhooks. Pro is $10 for 10,000 emails.
Plan limits
| Plan | Price | Emails / month | Domains | Webhooks | Log retention |
|---|---|---|---|---|---|
| Free | $0 | 1,000 | 1 | 0 | 48 hours |
| Pro | $10/mo | 10,000 | 3 | 3 | Permanent |
| Scale | $50/mo | 100,000 | 10 | 10 | Permanent |
See Usage Limits FAQ for rate limits and upgrade options.
1. Create your account
Sign up at notify.cx/sign-up and open the dashboard.
2. Create your API key
Generate an API key from the dashboard checklist or the Credentials page. Copy it when it’s shown and store it in an environment variable:
NOTIFY_API_KEY=your_api_key_here
Never expose your API key in client-side code or commit it to version control.
3. Send yourself a guided test
On the dashboard checklist, send a plain-text test to your signup email from hey@test.notify.cx. It counts toward your usage and shows up in Recent activity. You can skip this step if you want.
Want to rehearse the HTTP shape without delivering? Call the non-delivering test API (requires your API key):
import Notify from 'notifycx'
const notify = new Notify({ apiKey: process.env.NOTIFY_API_KEY! })
await notify.sendTest({
to: 'you@example.com',
from: 'noreply@your-verified-domain.com',
subject: 'Hello from Notify',
html: '<p>It works.</p>',
})
Or with fetch:
const response = await fetch('https://notify.cx/api/email/send/test', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NOTIFY_API_KEY!
},
body: JSON.stringify({
to: 'you@example.com',
subject: 'Hello from Notify',
html: '<p>It works.</p>',
from: 'noreply@your-verified-domain.com'
})
});
console.log(await response.json());
/api/email/send/test logs a TEST row and does not hit an inbox or count against quota. See Testing Emails.
4. Verify your domain (SPF / DKIM / DMARC)
Add SPF/DKIM via Domain Verification. Production POST /api/email/send stays locked until a domain is verified.
5. Send in production
Node / TypeScript (recommended):
npm install notifycx
import Notify from 'notifycx'
const notify = new Notify({ apiKey: process.env.NOTIFY_API_KEY! })
await notify.send({
to: 'recipient@example.com',
from: 'noreply@your-verified-domain.com',
subject: 'Hello from Notify',
html: '<p>It works.</p>',
})
Any language (fetch):
const response = await fetch('https://notify.cx/api/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NOTIFY_API_KEY!
},
body: JSON.stringify({
to: 'recipient@example.com',
subject: 'Hello from Notify',
html: '<p>It works.</p>',
from: 'noreply@your-verified-domain.com'
})
});
if (!response.ok) {
throw new Error(await response.text());
}
console.log(await response.json());
Provide to, from, subject, and one of html / message / text. Prefer html in new code. See Sending Emails.
6. Production checklist
- Domain verified — SPF/DKIM (and DMARC when ready)
- Production send working with your custom
from - Webhooks (Pro+) — Webhooks & Notifications for delivery, bounce, complaint
- Logs — dashboard logs (Free: 48h; Pro/Scale: permanent)
Coding agents (MCP)
In Cursor / Claude Code, connect the official MCP instead of pasting keys into chat:
{
"mcpServers": {
"notify": {
"command": "npx",
"args": ["-y", "notifycx-mcp"],
"env": { "NOTIFY_API_KEY": "nk_..." }
}
}
}
Full install: /mcp · MCP guide.
Choose a client
| Context | Prefer |
|---|---|
| App / CI (Node/TS) | notifycx SDK |
| App / any language | Native fetch (examples above) |
| IDE coding agents | notifycx-mcp |
GitHub
- SDK + MCP source: github.com/notifycx/notifycx
- Runnable examples: github.com/email-examples/transactional-email-examples
- Coding-agent skill: github.com/email-agents/notify