Messaging infrastructure for developers.
A developer API for email, SMS, voice, and WhatsApp.
Running on the network that already carries 40% of the world's commercial messages.
Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:
Trusted every day by teams that build world-class software
Read more customer storiesDrop it in.
Same shape, every stack.
SDKs in every major runtime. REST when you need it and SMTP coming soon. MCP for the agent on your shoulder.
import express from 'express';
import { BirdClient } from '@messagebird/sdk';
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const app = express();
app.use(express.json());
app.post('/welcome', async (req, res) => {
await bird.email.send({
from: 'onboarding@bird.dev',
to: [req.body.email],
subject: 'Welcome to Bird',
html: '<p>You are in.</p>',
});
res.json({ sent: true });
});
01 Direct sending IPs / React Email rendering (Soon) / Managed warm-up
Send Email. HTML and plain text, React Email soon. Delivered on the network the ISPs already trust.
Read Email DocsDirect sending IPs, managed warm-up, ISP-aware routing, SPF/DKIM/DMARC handled. Templates render in HTML and plain text; React Email coming soon.
import { BirdClient } from '@messagebird/sdk';
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.email.send({
from: 'onboarding@bird.dev',
subject: 'Hello from Bird',
html: '<p>Your first email is <strong>live</strong>.</p>',
});You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
02 A2P 10DLC / Tier-1 carriers / voice OTP fallback
Send SMS. Tier-1 carriers, 190+ countries, with the compliance overhead handled for you.
A2P 10DLC, alpha sender IDs, DLT entity registration — we file what you have to file. Smart routing per destination. Voice OTP fallback when SMS degrades. A 6-digit code lands in under three seconds on the lines that matter.
import { BirdClient } from '@messagebird/sdk';
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.sms.send({
from: 'Bird',
to: '+14155550182',
text: 'Your Bird code is 482917.',
});Today at 2:14 PM
03 PSTN + SIP / streaming TTS / declarative flows
Use Voice. Programmable voice, on PSTN and SIP, with TTS that doesn't sound robotic.
Outbound and inbound. Declarative flow JSON for IVR. Recording and live transcription. Streaming TTS in thirty languages with sub-250 ms first-byte audio — the model loads before the call connects.
import { BirdClient } from '@messagebird/sdk';
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.calls.create({
from: '+14155550100',
to: '+14155550182',
flow: [{ say: 'Your verification code is four, eight, two...' }],
});Bird Verify
+1 (415) 555-0182
Yourverificationcodeisfoureighttwonineoneseven.
04 Cloud API / template messages / interactive replies
Send WhatsApp. Official Cloud API. Templates, interactive buttons, and media — on the channel three billion people already use.
Pre-approved templates, session messaging, and interactive replies. Delivery and read receipts on every message. One number, every conversation — with the same typed API as email and SMS.
import { BirdClient } from '@messagebird/sdk';
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.whatsapp.send({
to: '+14155550182',
template: 'order_shipped',
variables: { order: 'RG-29481', carrier: 'UPS' },
});Order RG-29481 shipped
Hey Ada — your order is on the way. Carrier UPS, ETA Wednesday.
We are a team of engineers who love building tools for other engineers.
Test mode, real-time webhooks, and an MCP server for the agent on your shoulder.
Test mode. Simulate every state — delivered, bounced, complained, queued — without burning real budget or hitting a real recipient.
Modular webhooks. Real-time event webhooks, per channel. email.delivered, sms.failed, voice.completed, whatsapp.read. HMAC-signed. Replay-protected. Same shape every channel.
MCP for agents. Connect Claude or Cursor to Bird's hosted MCP server, or run it locally with the bird CLI. Your agent gets typed tools across every channel — scoped keys, full audit, no leakage.
Five products.
One shared layer.
Email, SMS, voice, WhatsApp, and Realtime — all built on the same primitives. Learn the platform once, ship across every channel.
Auth. One key format. Scoped to send vs. manage, read vs. write. Prefix + fingerprint so you know which key did what. Multiple keys live at once, so you rotate on your schedule.
Idempotency. Idempotency-Key on every POST, PATCH, and DELETE. Replays come back free and flagged. Reuse a key with a different body and you get a 409, not a surprise.
Errors. One envelope. One closed type union. Every code ships with a docs link and a message that tells you what to do.
Webhooks. Standard Webhooks spec: HMAC-SHA256, per-endpoint secrets, 5-minute replay window — verify with any off-the-shelf library. Rotate secrets with a 24-hour dual-signing overlap. Attempt logs and replay built in.
Pagination. Cursor-based. Stable order on every list, enforced by construction — no page drift, ever.
Rate limits. IETF RateLimit headers on every response — not just the 429. You can see your budget before you hit the wall, and Retry-After when you do.
Suppressions. Bounces, complaints, unsubscribes — managed automatically, queryable and editable via API. Transactional streams can bypass marketing unsubscribes. Idempotent by design.
Your messages, actually arriving.
Real-time signals on inbox placement, bounce rates, and send volume — across every channel, every region. No guesswork.
40%
World's commercial messages, by volume, transit the Bird network.
190+
Countries with direct carrier relationships, route diversity, and local compliance handled.
10 years
Running this infrastructure. The team behind it is the team building the API.