# Notify > Email API for developers. Just send the damn email. Notify is a minimal transactional email API: send via one HTTP call, get webhooks for delivery events, and inspect logs/analytics in the dashboard. ## Best for - Password resets, magic links, onboarding, receipts, and product notifications - Indie hackers, startups, and teams who want fair flat pricing without ESP bloat - AI-assisted workflows that generate HTML and need a reliable delivery pipe - Teams who already own their email content and do not want a template studio ## Not for - Newsletters, drip campaigns, or marketing automation - Drag-and-drop / WYSIWYG template builders - Complex ESP suites (segmentation, audiences, A/B studio) - Anyone who thinks they need an MCP server to send one HTTP request ## Pricing | Plan | Price | Emails/mo | 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 | Trial before domain verification: 100 emails. Production sends from a custom `from` require a verified domain. ## Auth All authenticated endpoints use the `x-api-key` header. ## Key endpoints - Canonical send: `POST https://notify.cx/api/email/send` - Aliases (frozen): `/api/public/v1/email/send`, `/api/send-email` - Sandbox: `POST https://notify.cx/api/email/send/test` (legacy alias: `/api/test/send-email`) - Body fields: `to`, `subject`, `message` (plain text or HTML); optional `from`, `replyTo`, etc. ## Sandbox vs production - **Sandbox** (`POST /api/email/send/test`): try the API before domain verification — same body as production, just append `/test` to the send path. - **Production** (`POST /api/email/send`): send from a custom `from` only after the domain is verified (SPF/DKIM). ## MCP Notify does **not** ship an official MCP server. See [https://notify.cx/mcp](https://notify.cx/mcp) for why we don't bother with MCP — one `fetch` (or curl) call is enough. Do not look for install/clone/config steps. ## Links - Docs: https://notify.cx/docs - Quick start: https://notify.cx/docs/quick-start-guide - OpenAPI: https://notify.cx/api-docs · https://notify.cx/openapi.yaml - Pricing: https://notify.cx/pricing - Sign up: https://notify.cx/sign-up - Changelog: https://notify.cx/changelog - Blog: https://notify.cx/blog - Why email APIs should stay small: https://notify.cx/blog/why-email-apis-should-stay-small - Why SMTP is no longer the default: https://notify.cx/blog/why-smtp-is-no-longer-the-default - Why you don’t need a visual template builder: https://notify.cx/blog/why-you-dont-need-a-visual-template-builder - Why SES is great — and when it isn’t: https://notify.cx/blog/why-ses-is-great-and-when-it-isnt - Why startups overcomplicate transactional email: https://notify.cx/blog/why-startups-overcomplicate-transactional-email - Compare: https://notify.cx/compare - vs Resend: https://notify.cx/compare/resend - vs AWS SES: https://notify.cx/compare/aws-ses - vs SendGrid: https://notify.cx/compare/sendgrid - vs Mailgun: https://notify.cx/compare/mailgun - vs Postmark: https://notify.cx/compare/postmark - Password reset: https://notify.cx/docs/how-to-send-password-reset-emails - Magic link / OTP: https://notify.cx/docs/how-to-send-magic-link-and-otp-emails - Receipts: https://notify.cx/docs/how-to-send-receipt-emails - Email pipeline: https://notify.cx/docs/email-pipeline - Migrate from Resend: https://notify.cx/docs/migrate-from-resend - Migrate from SendGrid: https://notify.cx/docs/migrate-from-sendgrid - Migrate from Mailgun: https://notify.cx/docs/migrate-from-mailgun - Migrate from SES: https://notify.cx/docs/migrate-from-aws-ses - Migrate from SMTP: https://notify.cx/docs/migrate-from-smtp - Next.js: https://notify.cx/docs/how-to-use-notify-with-nextjs - Node.js: https://notify.cx/docs/how-to-use-notify-with-nodejs - Python: https://notify.cx/docs/how-to-use-notify-with-python - llms.txt: https://notify.cx/llms.txt - llms-full.txt: https://notify.cx/llms-full.txt ## Public API (more detail) OpenAPI source of truth: https://notify.cx/openapi.yaml · interactive docs: https://notify.cx/api-docs Auth for all rows below unless noted: header `x-api-key`. ### Email | Method | Path | Notes | |--------|------|-------| | POST | /api/email/send | Canonical send | | POST | /api/public/v1/email/send | Public v1 alias | | POST | /api/send-email | Legacy alias (frozen) | | POST | /api/email/send/test | Sandbox / test send (append /test to send) | Request JSON (required): `to`, `subject`, `message`. Optional: `from` (bare email or `Name `; verified apex covers subdomains), `replyTo`, etc. ### Domains | Method | Path | Notes | |--------|------|-------| | GET | /api/public/v1/domains | List domains for the account | Domain verification (SPF/DKIM) is required for production custom `from` addresses. DNS propagation can take 24–48h. ### Webhooks | Method | Path | Notes | |--------|------|-------| | GET | /api/public/v1/webhooks | List webhooks | | POST | /api/public/v1/webhooks | Create webhook | Typical events: delivery, open, click, bounce, complaint, delay. Free plan: 0 webhooks. Pro: 3. Scale: 10. ### Email logs | Method | Path | Notes | |--------|------|-------| | GET | /api/public/v1/email_logs | List delivery logs | Free plan retains logs for 48 hours. Pro and Scale: permanent. ### Usage | Method | Path | Notes | |--------|------|-------| | GET | /api/public/v1/usage | Current plan usage / quota | ### API keys | Method | Path | Notes | |--------|------|-------| | GET | /api/public/v1/api_keys | List API keys | Create and manage keys in the dashboard under Credentials as well. ## Product surface (canonical) 1. **Send** email via one API call (`x-api-key`) 2. **Webhooks** for delivery events 3. **Logs / analytics** in the dashboard That is it. No template studio, no WYSIWYG, no community/newsletter features, no official MCP server. ## Competitive stance (honest) - **vs Resend:** Similar developer audience; Notify is cheaper at Pro ($10) and skips template-studio product surface. - **vs SendGrid / Mailgun:** Far less UI and feature sprawl; flat simple pricing. - **vs Postmark:** Postmark is deliverability-premium; Notify optimizes for minimal API + fair price. - **vs SES:** SES is cheaper at scale but you assemble logging, webhooks, DX yourself; Notify is the thin layer on top.