Keep your template workflow.
Send HTML, render React Email in your application, or use a stored template. Keep the workflow your team knows.
Explore email templates ↗Send receipts, password resets and account updates with Bird’s API.
Track delivery, investigate failures and scale with your email team.
Save beside send.mtsimport { readFileSync } from "node:fs";
export const html = readFileSync(
new URL("./welcome.html", import.meta.url), "utf8",
);
export const attachments = [{
filename: "shoreline.webp",
content_id: "shoreline",
content: readFileSync(
new URL("./shoreline.webp", import.meta.url),
).toString("base64"),
}];
npm install @messagebird/sdk tsxnpx tsx send.mtsimport { BirdClient } from "@messagebird/sdk";
import { html, attachments } from "./content.mts";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const msg = await bird.email.send({
from: { email: "onboarding@messagebird.dev", name: "Fieldnotes" },
to: [{ email: "delivered@messagebird.dev", name: "Alex Lee" }],
subject: "A beautiful beginning.",
category: "transactional",
html,
attachments,
});
console.log(msg.id, msg.status);
Save beside send.mts<div style="background:#f8f9f1;color:#171c19;font-family:Arial,sans-serif">
<div style="padding:30px 24px">
<p style="margin:0 0 26px;font-size:18px;letter-spacing:-1px">fieldnotes.</p>
<p style="margin:0 0 20px;font-size:42px;font-weight:700;line-height:1.05;letter-spacing:-2px">
Good things<br>start here.
</p>
<p style="font-size:14px;line-height:1.65">
Hi Alex. Your Fieldnotes account is ready.<br>We’re glad you’re here.
</p>
<a href="https://example.com/account" style="display:inline-block;margin-top:18px;color:#171c19;font-size:13px;text-decoration:none">
Open your account ↗
</a>
</div>
<img src="cid:shoreline" alt="A quiet Mediterranean shoreline" width="840" style="display:block;width:100%;height:auto">
</div>
fieldnotes.
Good things
start here.
Hi Alex. Your Fieldnotes account is ready.
We’re glad you’re here.
This preview uses the HTML in welcome.html. Download the example and set BIRD_API_KEY to run on Node.js 20.3+. Sandbox delivery is simulated; nothing is sent from this page.
Companies that trust Bird across their communications.
A real customer result200MEmails per month, on averageSend welcome messages, password resets and receipts. Trace each message when your customer or support team needs an answer.
Send your first emailSend HTML, render React Email in your application, or use a stored template. Keep the workflow your team knows.
Explore email templates ↗Reuse an idempotency key when a request needs a retry. Follow the documented replay window and recovery steps for uncertain results.
Read the idempotency guide ↗Use delivery events and webhooks to connect what happened to an email with what your application does next.
Integrate delivery events ↗Choose your stack, install the SDK and send to a sandbox recipient. Each quickstart covers setup, the request and its result.
Explore the email docsServer actions. Your first send.
Open the quickstart ↗Modern JavaScript. A direct integration.
Open the quickstart ↗A typed SDK. Synchronous quickstart.
Open the quickstart ↗A small start in your existing stack.
Open the quickstart ↗Keep the returned message ID, then read the message and follow delivery events. An accepted send confirms that Bird queued the email; delivery is reported separately.
Go straight to a working email example for your application.
See how Bird fits your application, with runnable examples and implementation choices.
Bring your templates, domains, and sending requirements.
Follow a migration guide and plan the switch.
Answer “where is my email?” with a message ID and delivery evidence. Try a successful send, then a hard bounce to see what your team can do next.
Interactive example data. No request is made to Bird.
Delivered means the receiving server accepted the message. It does not establish inbox placement or a human open. This sandbox example simulates that outcome.
{
"type": "email.delivered",
"timestamp": "2026-09-17T10:00:02.000Z",
"data": {
"email_id": "em_01ky7qc398fmxraqtxn604zeq9",
"recipient_id": "er_01ky7qc398fmwsc96nt6anrbqs",
"workspace_id": "ws_01ky7m21hjffh9s8kq76gyb1xf",
"recipient": "delivered@messagebird.dev",
"recipient_role": "to",
"tags": null,
"metadata": null,
"broadcast_id": null
}
}Iterable’s published story reports onboarding in one week and approximately 1,000 messages per second via API, with detailed deliverability analytics. A historical result from Bird’s email infrastructure.
Authenticate your sending domain, monitor delivery events and investigate inbox placement. Give your team a clear path from setup to troubleshooting.
Explore deliverabilityDelivered means the receiving server accepted the message.
Review spam placement and authentication. A delivery event cannot tell you which folder received the email.
Use the message ID and recipient details to trace the issue with your team.
emails per month,
reported in Zillow’s story.
Start with a sandbox send, then choose a plan for your volume. Plan a larger rollout with our email team.
1.000 emails included monthly
50.000 emails included monthly
Starting monthly plans in USD. Free is capped; paid plans have overage. See all volumes, currencies, limits and add-ons in pricing.
Review sending peaks, IP strategy and migration with our email team. Bring your security questionnaire and support requirements to the same conversation.
What an email API does, and where it fits in your application.
Compare the sending workflow, operational controls and costs that matter to your team.
Keep suppression handling connected to the way your application sends.
Review transactional email practices before real customers depend on every send.
Yes. Use the shared onboarding sender and sandbox recipients to test your integration. Verify your own domain before sending to customers. Onboarding recipient and daily limits apply. Follow the first-email quickstart.
Yes. Bird supports both application-driven messages and marketing email. Choose the appropriate message category and respect consent, unsubscribe, and suppression requirements. Choose the message category.
You can render React Email templates to HTML in your application and send the result through Bird. You can also send your own HTML or use stored email templates. Explore templates.
Plan for monthly volume, request rate and peak sending, as well as domain and webhook limits. A sandbox test does not establish your production throughput. Read rate limits and retry behavior.
No. Shared IPs are the default. Dedicated IPs are a paid option for senders with consistent volume and require warmup. Review your plan’s eligibility and sending pattern before choosing one. Understand dedicated IPs and pools.
Use Bird’s Trust Center for security evidence and review the DPA with your team. Confirm support coverage, escalation and any service commitments in your agreement before rollout. Explore enterprise email · Start your security review.
See the email pricing page for current options, and follow the guide for your existing provider. Our team can help you plan around sending volume, infrastructure, and your wider Bird setup. Email pricing · Migration guides.
Submit up to 100 independent messages in a batch. The request validates as a unit; after acceptance, each message has its own delivery outcome. Batching does not guarantee that every recipient receives a message. Read the batch sending guide.
Schedule inline email content for a future send and cancel before sending begins. Scheduled sending cannot be combined with stored templates. Attach files as base64 and use content IDs for inline images; check the documented size and content-type limits. Plan scheduled sending.
Use tags to group messages for reporting and metadata for application context, such as an order reference. Follow the documented field limits and avoid placing secrets in either. Compare tags and metadata.
Use documented sandbox recipients to exercise delivery outcomes and check your webhook handling. A simulated result tests your integration; it does not establish production delivery or throughput. Exercise sandbox outcomes.
Start building today, or review your sending volume, migration and support requirements with our email team.
Explore email pricingEen test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra je een betaalmethode toevoegt en een afzender verifieert.
Lees de docs