Drop-in Resend SDK
The cleanest way to integrate 3AVA Mail is to point the official Resend SDK at 3AVA Mail’s base URL. Every SDK call works without modification.
Why this works
Section titled “Why this works”3AVA Mail’s transactional surface (/emails, /domains, /api-keys, webhooks) is wire-compatible with Resend’s. Same paths, same request bodies, same response shapes, same webhook event names. See Resend compatibility for the full table.
Setup by language
Section titled “Setup by language”import { Resend } from "resend";
const resend = new Resend(process.env.AMDY_API_KEY, { baseUrl: "https://mail.3ava.com/api",});import resend
resend.api_key = "am_YOUR_KEY"resend.api_url = "https://mail.3ava.com/api"$client = new \Resend\Client( apiKey: 'am_YOUR_KEY', baseUrl: 'https://mail.3ava.com/api',);client := resend.NewClient("am_YOUR_KEY")client.BaseURL = "https://mail.3ava.com/api"Resend.api_key = "am_YOUR_KEY"Resend.api_url = "https://mail.3ava.com/api"What works
Section titled “What works”- ✅
emails.send/Emails.send - ✅
emails.create(alias for send) - ✅
emails.get - ✅
emails.list - ✅
domains.create,list,get,verify,delete - ✅
apiKeys.create,list,delete - ✅
batch.send
What’s 3AVA-specific (not in Resend SDK)
Section titled “What’s 3AVA-specific (not in Resend SDK)”For these, call the 3AVA Mail endpoints directly:
- Campaigns (
/campaigns/*) - Lists with CSV import (
/lists/*) - IP pools / warmup (
/pools/*) - Inbound replies (
/inbound)
Example with the Resend SDK + a raw fetch call for the 3AVA-only endpoint:
import { Resend } from "resend";
const resend = new Resend(process.env.AMDY_API_KEY, { baseUrl: "https://mail.3ava.com/api",});
// Resend SDK callawait resend.emails.send({...});
// Raw fetch for 3AVA-specific campaigns APIawait fetch("https://mail.3ava.com/api/campaigns", { method: "POST", headers: { Authorization: `Bearer ${process.env.AMDY_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({...}),});Migrating existing Resend code
Section titled “Migrating existing Resend code”Often a one-line change:
const resend = new Resend(process.env.RESEND_API_KEY);const resend = new Resend(process.env.AMDY_API_KEY, { baseUrl: "https://mail.3ava.com/api",});After that, re-verify your sending domain in 3AVA Mail (the DNS records will differ from Resend’s — different SPF include, different DKIM selector, different DMARC reporting address) and re-register your webhooks.