One email API for
humans, apps, AI agents.
Transactional sends, marketing campaigns, inbound webhooks, and per-agent inboxes. Drive it all from Claude, Cursor, or Cline through our MCP server. Free with no credit card.
Outbound Processing
Deliver to any email client. Batch send campaigns, schedule timezone-aware delivery, and manage reputation at scale.
Inbound Processing
MX record management, email parsing, and intelligent routing to webhooks or mailboxes.
Open Tracking
Pixel-precise open tracking reveals the exact moment recipients engage.
Click Analytics
Every link click captured and reported. Understand which content drives action.
Event Webhooks
Real-time HTTP callbacks for delivered, opened, clicked, bounced, and complained.
Reputation Management
Automatic domain health checks, suppression lists, bounce handling, and deliverability monitoring.
Sending in under five minutes.
Install the TypeScript or Python SDK, verify a domain, and ship your first send. Start free, no credit card.
A real inbox for every agent you ship
Stand up a fleet of AI agents that handle support tickets and customer replies over real two-way email. Each agent gets its own sending alias on your domain, with SPF, DKIM, DMARC, and MAIL FROM managed for you. No shared mailboxes, no OAuth.
Spin up support@, billing@, agent-42@ on your own domain. One API call gives every agent its own identity, no shared inbox required.
Inbound email arrives as a signed webhook with parsed body, attachments, and threading. Your agent routes it the same way it handles any other event.
SPF, DKIM, DMARC, and MAIL FROM are configured automatically. Bounces, complaints, and suppression sync run in the background while you build.
Plain REST with TypeScript and Python SDKs. Works with LangChain, CrewAI, n8n, or anything that can make an HTTP request.
From first line to full scale
Deploy working email infrastructure in seconds or start from our SDK.
const mail = new Bavimail({
apiKey: process.env.BAVIMAIL_API_KEY,
});
await mail.emails.send({
aliasId: "your-alias-id",
toEmail: "[email protected]",
subject: "Welcome aboard",
body: "<h1>Hello from Bavimail</h1>",
});
import { Bavimail } from 'bavimail'
const mail = new Bavimail({
apiKey: process.env.BAVIMAIL_API_KEY!,
})
await mail.emails.send({
aliasId: 'your-alias-id',
toEmail: '[email protected]',
subject: 'Welcome aboard',
body: '<h1>Hello from Bavimail</h1>',
})
import { verifyWebhookSignature } from 'bavimail'
app.post('/webhooks/email', async (req, res) => {
const payload = JSON.stringify(req.body)
const event = await verifyWebhookSignature(
payload,
req.headers['x-webhook-signature'],
req.headers['x-webhook-timestamp'],
process.env.BAVIMAIL_WEBHOOK_SECRET!,
)
if (event.eventType === 'email.outbound.delivered') {
await reconcileEmailState(event)
}
res.status(200).end()
})
import { Bavimail } from 'bavimail'
const mail = new Bavimail({
apiKey: process.env.BAVIMAIL_API_KEY!,
})
const domain = await mail.domains.create({
domain: 'yourdomain.com',
inboundEnabled: false,
})
const setup = await mail.domains.getSetup(domain.id)
const dns = await mail.domains.getDnsStatus(domain.id)
import { Bavimail } from 'bavimail'
const mail = new Bavimail({
apiKey: process.env.BAVIMAIL_API_KEY!,
})
const summary = await mail.analytics.getDeliverabilitySummary({
range: '7d',
})
const recent = await mail.analytics.getDeliverabilityRecent({
limit: 10,
})
Pricing that grows with you
Start free. Compare current plans and choose the capacity your product needs.
Free
Free
- 524,288,000 attachment storage bytes
- 200 daily outbound emails
Developer
$5
Monthly billing
per month
- 5,368,709,120 attachment storage bytes
- Unlimited daily outbound email
Startup
$50
Monthly billing
per month
- 300,000 total monthly emails
- 32,212,254,720 attachment storage bytes
Scale
$500
Monthly billing
per month
- 1,000 GB storage
- 2,500,000 total monthly emails
Frequently asked questions
Have other questions? Get in touch at [email protected]
Raw Performance.
One API for every email your app sends or receives
Password resets, newsletters, customer replies, AI-agent inboxes. Same SDK, same dashboard, same bill.