Skip to content
DocsQuickstart

Quickstart

Five minutes from zero to a queued transactional message.

Before you start

You'll need a Sendix workspace, a verified sending domain, and one API key with the email:send scope.

Send your first email

Follow the four steps below — the snippet at the bottom works as-is.

  1. 1

    Create an account

    Sign up at /register and open your Sendix workspace.

  2. 2

    Add your domain

    In Domains, paste the DNS records into your provider. Verification is automated and usually green within a minute.

  3. 3

    Generate an API key

    In API keys, mint a key scoped to email:send. Store it in your secret manager — the plaintext is shown exactly once.

  4. 4

    Send your first email

    Drop the snippet below into your stack and watch it arrive.

curl -X POST https://sendix.dev/api/v1/emails \
  -H "Authorization: Bearer sdx_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "[email protected]",
    "to": ["[email protected]"],
    "subject": "Welcome aboard!",
    "html": "<h1>Hi there</h1><p>Thanks for signing up.</p>",
    "text": "Hi there\nThanks for signing up."
  }'

SMTP alternative

If your app already speaks SMTP, use the same verified domain and the same API key. Sendix accepts authenticated submission on smtp.sendix.dev:587 with STARTTLS.

host=smtp.sendix.dev
port=587
tls=STARTTLS
username=sendix
password=$SENDIX_API_KEY
swaks \
  --server smtp.sendix.dev \
  --port 587 \
  --tls \
  --auth LOGIN \
  --auth-user sendix \
  --auth-password "$SENDIX_API_KEY" \
  --from [email protected] \
  --to [email protected] \
  --header "Subject: Sendix SMTP test" \
  --body "Hello from Sendix SMTP"
import nodemailer from 'nodemailer';

const transport = nodemailer.createTransport({
  host: 'smtp.sendix.dev',
  port: 587,
  secure: false,
  auth: {
    user: 'sendix',
    pass: process.env.SENDIX_API_KEY,
  },
});

await transport.sendMail({
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Sendix SMTP test',
  text: 'Hello from Sendix SMTP.',
  html: '<p>Hello from Sendix SMTP.</p>',
});
API and SMTP share the same pipeline
Delivery events, suppression checks, webhooks, logs, and plan limits are applied the same way whether a message enters through REST or SMTP.

Production checklist

Before moving real product mail, verify the controls that affect customer trust and support quality.

  • Domain authenticationSPF, DKIM, DMARC, and return-path records are green in Domains.
  • Scoped credentialsAPI keys or SMTP credentials are scoped, stored in secrets, and ready for rotation.
  • Event visibilityDashboard logs and webhooks are connected before the first customer-facing send.
  • Fallback copyMessages include text and HTML so mailbox providers and accessibility tools have options.

Verify it arrived

Open Logs in the dashboard or hit GET /emails/{id} — you'll see the message move from queued toward accepted_by_remote_mx as direct delivery progresses. Webhook subscribers receive the same lifecycle events.