# The Email API your product depends on.

Send receipts, password resets and product notifications with an SDK in your language. Build with React or HTML, then follow delivery through events and analytics. Add campaigns, SMTP or inbound email as your product grows.

[Start for Free](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail)

[Contact sales](/demo?product=email)

## Set up with your agent

[Read the agent setup guide](/docs/ai/set-up-your-agent)

Copy this prompt into your coding agent:

```text
Bird connects customer communications, data and automation. Help me build with Bird using my coding agent.
1. Read https://bird.com/docs/ai/set-up-your-agent.md and follow its setup workflow for this client. Use an existing connected Bird MCP server or signed-in CLI when available.
2. Read the product guide for the task I want to complete and inspect my existing integration. Identify the workspace, available operations and required setup.
3. Help me complete a first example for the product and destination I choose. Follow the operation through to its actual result, explain any uncertainty, and help me choose the next step.

First task: Create an Email API key, send a test email to an address I control and verify the delivery event.

Use this Bird page as the starting context: https://bird.com/products/email
Read its Markdown alternative and linked guides. Keep the first example relevant to this page and the customer outcome I choose. Preserve the supplied campaign context when following Bird signup or sales links.
```

Trusted every day by teams that build world-class software

[Read more customer stories](/customers)

- [Airwallex](/customers/airwallex)
- [Glovo](/customers/glovo)
- [Zillow](/customers/zillow)
- Uber
- [Binance](/customers/binance)
- Adobe
- Meta
- PayPal
- Pinterest
- Square
- [Al Jazeera](/customers/aljazeera)
- [Aramex](/customers/aramex)
- [Bazaar Technologies](/customers/bazaar)
- [ComparaOnline](/customers/compara)
- [Emma](/customers/emma)

## Find your email workflow

Build an integration, run a campaign or improve the email you already send.

- [Send from your application](/products/email/sending): Explore transactional email, batch sends, templates and delivery webhooks.
- [Create an email campaign](/products/email/marketing): Connect your contacts, define an audience and build your next broadcast.
- [Improve email delivery](/products/email/deliverability): Review authentication, sender reputation, recipient quality and inbox placement.

## 5 minutes from npm install to first send

## Send an email from the language you already use.

SDKs in every major runtime. The first send can go to a sanctioned test address (delivered@messagebird.dev), so you can build against the live API (sends, webhooks, the whole flow) before you verify a domain.

**Node.js**: `npm install @messagebird/sdk`

```typescript
const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"
```

Examples: [TypeScript](/id-id/produk/email.ts.md) · [Python](/id-id/produk/email.py.md) · [Go](/id-id/produk/email.go.md) · [PHP](/id-id/produk/email.php.md) · [CLI](/id-id/produk/email.cli.md) · [MCP](/id-id/produk/email.mcp.md) · [cURL](/id-id/produk/email.curl.md)

## Ten parts of email that aren't your problem anymore.

Deliverability and operational primitives, named and auditable.

- **01** Signed at the edge. Three records to publish: DKIM, a return-path CNAME, and a DMARC policy. The CNAME covers SPF too, so nothing has to go on your domain apex.
- **02** An audit before you send a byte. Point the audit tool at any domain and it resolves the live DMARC, SPF, DKIM, BIMI, and MX records, grades how they work together, and ranks what to fix. No account needed.
- **03** Managed dedicated IPs. Provisioned per account and warmed automatically over roughly 30 days, organized into pools you control.
- **04** Dynamic suppression list. Hard bounces and complaints create category-aware suppressions. Unsubscribes record a separate preference.
- **05** No polling to verify a domain. Add a domain, publish the records, and Bird re-checks on its own until they resolve, usually within minutes of DNS propagating. There's a verify call if you want an answer right now.
- **06** Stored templates, or your own HTML. Name a stored template and Bird renders it with Liquid, or render React Email to HTML in your app and pass the result.
- **07** Searchable email log. Every message you send is logged with its delivery events and status. Query any email by ID.
- **08** Deliverability metrics, broken down. Bounce codes, complaint types, and mailbox-provider and client breakdowns, broken out per domain, ISP, and IP, in the dashboard and via the stats API.
- **09** Inbound parsing. Take a Bird-generated forwarding address, or publish MX records on a subdomain you own. Either way the mail arrives as a signed webhook you can thread.
- **10** Batch send up to 100. Up to 100 independent messages per call, each with its own recipient and variables. One idempotency key covers the batch.

## Try the workflow with your own email.

Create an account, send a controlled test and follow its delivery events.

## Explore the Email platform

Choose the workflow you need, from application email to campaigns and delivery controls.

- **[Deliverability.](/products/email/deliverability)**: Authentication, managed IP warmup, recipient suppressions and delivery signals.
- **[Analytics.](/products/email/analytics)**: Delivery by domain, provider and IP, with separate engagement reporting.
- **[Sending.](/products/email/sending)**: Transactional and marketing email, templates, and batch sends.
- **[Templates.](/products/email/templates)**: Stored, versioned email templates, personalized per recipient at send.
- **[Dedicated IPs.](/products/email/dedicated-ips)**: Managed dedicated IPs and pools, warmed automatically.
- **[Sending domains.](/products/email/domains)**: Domain verification, DKIM signing, SPF alignment and DMARC policy setup.
- **[Suppressions.](/products/email/suppressions)**: Recipient suppressions and opt-out preferences checked before delivery.
- **[Email marketing.](/products/email/marketing)**: Marketing campaigns: draft, target an audience, schedule, and send.
- **[Broadcasts.](/products/email/broadcasts)**: Draft, target, schedule and send the same campaign from the dashboard or API.
- **[Contacts and audiences.](/products/email/audiences)**: Your contacts and the audiences you target from a broadcast.
- **[Agent Mailboxes.](/products/email/mailboxes)**: A real inbox your code owns. Claim an address, receive mail into threads, and reply over the API.
- **[SMTP relay.](/products/email/smtp)**: Connect your existing application with a regional SMTP host and an API key.
- **[Inbound email.](/products/email/inbound)**: Receive messages through forwarding or your own subdomain, then process their content and attachments.
- **[Inbox Insights.](/products/email/inbox-insights)**: Measure estimated inbox placement and run seed tests for your verified domains.
- **[Competitive Insights.](/products/email/competitive-insights)**: Research captured competitor campaigns, sending cadence and panel-estimated placement.
- **[Email validation.](/products/email/recipient-validation)**: Check an address through Lookup before adding it to your sending workflow.
- **[Enterprise email.](/products/email/enterprise)**: Choose managed sending or explore PowerMTA and Momentum for your infrastructure.
- **[Email resource library.](/products/email/resources)**: Find FAQs, explained articles, setup guides, migration help and tools.

161%

Increase in email open rates reported in Zillow’s customer story.

[Read the Zillow story](/customers/zillow)

## When the right home appears, the email needs to arrive.

Zillow brought time-sensitive property alerts to Bird, with the capacity to handle sending surges and the analytics to understand engagement. Its team reported a 161% increase in open rates in the first month.

Planning a migration or a higher-volume send?

[Read the Email docs](/docs/guides/email/overview)

Email isn't its own product; it's one channel in a flow. Auth codes start as email and fall back to SMS. Receipts ship by WhatsApp when the customer prefers it. Bird Email is the one whose API, webhooks, and idempotency contract match every other channel, because the same engineering team built them all on the same network.

## If you've integrated email, you've integrated SMS.

Same auth model, same idempotency contract, same error envelope, same webhook shape. The difference is what each one does, not how you call it.

Verified domain, signed at the edge, suppression-aware. Render React or pass raw HTML.

Same envelope, same idempotency, same error type registry. The transport is the only difference.

[See full pricing](/products/email/pricing)

## Send your first request before you write any code.

[The whole public API as a Postman collection](https://god.gw.postman.com/run-collection/20940851-8026901b-b1c8-4490-a3e6-b755bfbed32a?action=collection%2Ffork): every endpoint with an example request and response, converted from the same OpenAPI specification the SDKs are generated from. Fork it into your own workspace, set an API key, and send a live request.

## Questions about the Email API

### Can I send both transactional and marketing email?

Yes, both go through the same send API. The only difference is the category field, which decides how suppressions and unsubscribes apply. Pick transactional for password resets and receipts, and marketing for campaigns.

### What happens if a request times out and I retry it?

Send an Idempotency-Key header with each logical send. If the first request succeeded but you never saw the response, replaying it with the same key gives you the original result back with an Idempotency-Replay header, rather than sending the email twice.

### Can I schedule a send for later?

Set scheduled_at to any time between 30 seconds and 30 days ahead. The send comes back accepted straight away and stays scheduled until it goes out, so you can cancel it at any point before then.

### Can I attach files?

Yes, as base64 in the attachments array. To show an image inline, give it a content_id and reference that from your HTML with cid:. Keep the raw files at or below 15 MB so the message still fits the 20 MB cap once it is encoded, and note that executable and script content types are refused before the send.

Talk to our email team

## Make your next email move with confidence.

Tell us what you send and where you want to take it. We’ll shape the conversation around your application, your campaigns and your team.

Your sending volume and pricing.

Domains, dedicated IPs and deliverability.

Your integration and migration plan.



## Related resources

- [Getting started with email](/learn/email/getting-started-with-email) (video)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)
- [Build your first integration](/learn/paths/integration) (course)

[Get an implementation brief](/learn/workspace?topic=email)
