One suppression list
Hard bounces, complaints and unsubscribes are never sent to again, whichever way the send came in.
API, SMTP, broadcastsNotix gives you the records to authenticate your domain, checks a message before it goes, keeps one list of people who must not be emailed, and pauses a domain on its own before a bad list damages its name.
Mailbox providers trust a domain that signs its mail. Notix gives you every record and checks them for you.
Add a domain and the Domains page lists its records: SPF with include:_spf.usenotix.dev, a DKIM key, the MX for bounces and a DMARC record. Notix checks them for you and marks each one when it resolves.
notix.domains.create()mailmailnotix._domainkey_dmarcWhere your DNS host supports Domain Connect and carries the Notix template, the Domains page offers a one-click setup. You approve the change at your DNS host, and the records are in place without a single copied value.
Not every DNS host supports it. Where yours does not, the records are there to copy.
Notix can add the four records for acme.com at your DNS host. You sign in there and approve. Nothing else changes in your zone.
Connect with one clickBounces and spam complaints are what get a domain blocked. Notix watches both and steps in early.
Every domain is judged on its last 7 days of sending, once it has sent at least 200 emails. Move the sliders to see what Notix would do.
Run a message through the deliverability check, or ask the send endpoint what it would do without sending.
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const { data } = await notix.deliverability.check({
from: "Acme <news@acme.com>",
subject: "October offers",
html: newsletterHtml,
marketing: true,
});
// data.verdict: "PASS", "WARN" or "BLOCK"
for (const finding of data?.findings ?? []) {
console.log(finding.severity, finding.title, finding.fix);
}
curl -X POST https://app.usenotix.dev/api/v1/deliverability/check \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <news@acme.com>",
"subject": "October offers",
"html": "<p>Up to 30% off this week.</p>",
"marketing": true
}'
Add the Notix-Dry-Run: true header to a send and Notix answers with who it would reach, what it would cost and whether it would be allowed, with every reason it would be refused. Nothing is sent or charged.
When the check blocks a send, a deliverability.blocked webhook tells your system which findings stopped it.
curl -X POST https://app.usenotix.dev/api/v1/emails \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Notix-Dry-Run: true" \
-H "Content-Type: application/json" \
-d '{ "from": "news@acme.com", "to": "amara@example.com", ... }'
# 200 with "dryRun": true: who it would reach, what it would cost,
# and a verdict with every reason it would be refused.
# Nothing is sent, charged or written.
Hard bounces, complaints and unsubscribes are never sent to again, whichever way the send came in.
API, SMTP, broadcastsA paused domain holds its queue. On resume the held mail is sent or cancelled, never sent by surprise.
Paused domainsA dry run shows who a send would reach and sends nothing. Test emails.
Dry runWatch bounce and complaint rates over time on the Metrics page.
Signed webhook events for email, contacts, domains, SMS and inbound mail, retried when your endpoint is down, with every delivery logged.
Explore WebhooksDelivery, open, click and bounce numbers over time, every email's event history, and 30 days of API request logs.
Explore Metrics and logsSend, batch, schedule and retry safely with idempotency keys, then follow every message through logs, events and signed webhooks.
Explore Email APIMore on sending and deliverability on the Notix blog.
Verify a domain, copy an API key, make one call. The free plan does not ask for a card.