Quickstart
This guide takes you from zero to a delivered email. Five steps.
-
Create an account and an API key.
Sign in to the dashboard at
https://dashboard.3ava.com. Go to API Keys → Create. Give it the namequickstartand pickfull_access. Copy the key — it starts witham_— and save it. You won’t see it again. -
Add a sending domain.
In the dashboard, go to Domains → Add Domain and enter the domain you want to send from (e.g.
mail.yourcompany.com). 3AVA Mail generates a DKIM keypair and shows you four DNS records to add: SPF, DKIM, DMARC, and an optional MX record for inbound replies.Add the records with your DNS provider, wait a few minutes for propagation, then click Verify.
-
Send the email.
Terminal window curl -X POST https://mail.3ava.com/api/emails \-H "Authorization: Bearer am_YOUR_KEY" \-H "Content-Type: application/json" \-d '{"from": "Onboarding <[email protected]>","to": ["[email protected]"],"subject": "Hello from 3AVA Mail","html": "<p>It works.</p>"}'import requestsr = requests.post("https://mail.3ava.com/api/emails",headers={"Authorization": "Bearer am_YOUR_KEY"},json={"subject": "Hello from 3AVA Mail","html": "<p>It works.</p>",},)print(r.json())const res = await fetch("https://mail.3ava.com/api/emails", {method: "POST",headers: {"Authorization": "Bearer am_YOUR_KEY","Content-Type": "application/json",},body: JSON.stringify({subject: "Hello from 3AVA Mail",html: "<p>It works.</p>",}),});console.log(await res.json());import { Resend } from "resend";const resend = new Resend("am_YOUR_KEY", {baseUrl: "https://mail.3ava.com/api",});await resend.emails.send({subject: "Hello from 3AVA Mail",html: "<p>It works.</p>",});You get back:
{"id": "a1b2c3d4-...","status": "queued","created_at": "2026-04-22T22:30:00Z"} -
Confirm delivery.
The email is queued, picked up by a worker, sent through your SMTP pool, and accepted by the recipient’s MTA. Within a few seconds the dashboard shows it as delivered.
You can also poll the API:
Terminal window curl https://mail.3ava.com/api/emails/a1b2c3d4-... \-H "Authorization: Bearer am_YOUR_KEY" -
Wire a webhook (optional but recommended).
So your app knows when something is delivered, bounced, or opened — without polling.
Terminal window curl -X POST https://mail.3ava.com/api/webhooks \-H "Authorization: Bearer am_YOUR_KEY" \-H "Content-Type: application/json" \-d '{"url": "https://yourapp.com/webhooks/amdy","events": ["email.delivered", "email.bounced", "email.complained"]}'The response includes a
signing_secret(starts withwhsec_) — store it. Use it to verify webhook signatures.
What’s next
Section titled “What’s next”- API Reference — every endpoint
- Resend compatibility — point the official Resend SDK at your 3AVA Mail base URL
- Webhooks — full event types + verification
- Run a marketing campaign — once transactional is flowing