Skip to content

For Developers

A clean email API. Most teams send their first email in under 5 minutes.

TypeScript and Python SDKs with full OpenAPI coverage. Send transactional email, receive inbound mail on a webhook, verify domains programmatically. No dashboard-only workflows — every capability is available via the API.

API-first design

Everything you need to build production email

Typed SDKs

Official TypeScript and Python clients with full type coverage. Install with npm install bavimail or pip install bavimail. Zero boilerplate for the common cases.

Inbound webhooks

Receive signed webhook events for 13 event types. HMAC-SHA256 signatures on every delivery. verifyWebhookSignature() ships with the TypeScript and Python SDKs.

Inbound email

Full two-way email via a single MX record and webhook endpoint. Parsed headers, body, HTML, and attachment pre-signed URLs delivered to your endpoint.

Domain verification API

SPF, DKIM, DMARC, and MAIL FROM records generated on-demand. DNS check status via polling or webhook. Fully programmable — no manual copy-paste steps required.

OpenAPI-first

Full OpenAPI 3.1 spec ships with every API version. Generate clients in any language. The Scalar-powered API reference embeds in the Bavimail docs.

Local test mode

Test API keys route sends through a log-only backend. Dashboard shows raw payloads, timing, and delivery status for every API call.

Quickstart

Send your first email in 3 steps

1. Install the SDK

npm install bavimail (TypeScript) or pip install bavimail (Python). For other languages, call the REST API directly with any standard HTTPS client.

2. Set your API key

Create a free account, copy your API key from the dashboard, set BAVIMAIL_API_KEY in your environment.

3. Call emails.send()

Pass aliasId, toEmail, subject, and body. The API returns a message ID. Full send in under 10 lines.

Compare

See how Bavimail compares to the alternatives

FAQ

Common developer questions

How long does it take to send a first email with Bavimail?

Typical: most developers send their first email in under 5 minutes. Install the SDK with npm install bavimail or pip install bavimail, set your API key, and call emails.send(). Full domain verification is a separate step but is not required to start sending.

Which languages and frameworks does Bavimail support?

Bavimail ships official TypeScript and Python SDKs with full OpenAPI coverage. The REST API works with any language that can make HTTPS requests, including Go, Ruby, and Java via standard HTTP clients.

How do webhooks work in Bavimail?

Bavimail delivers signed webhook events for 13 event types including delivery, open, click, bounce, complaint, and inbound receipt. Signatures use HMAC-SHA256. The SDK includes verifyWebhookSignature() helpers for TypeScript and Python. Endpoints can be added and tested from the dashboard or API.

Does Bavimail support inbound email?

Yes. Inbound email is a first-class feature. Add an MX record pointing to Bavimail, then receive parsed email payloads on your webhook endpoint. Each inbound message includes parsed headers, body text, HTML, and attachment URLs as pre-signed download links.

Is there a local development mode or test environment?

Yes. Bavimail provides a test mode API key that logs sends without delivering to real addresses. You can also use the dashboard to inspect recent API calls, view raw payloads, and trigger test webhook deliveries from any registered endpoint.

Also for your team

Bavimail for every builder

More

Keep exploring

Features

Docs

Compare