Bird Products

Your channels. Your customer. One platform.

Build across email, messaging, voice and connectivity. Explore developer APIs and native customer conversations, with guides for the setup, access and integrations each product needs.

Set up in:
Cursor

All products. Find the right experience for your customer.

01POST /v1/emails

Email. The email API for developers who ship the rest of the message too.

welcome.tsx
await bird.email.send({
  from: "hello@yourdomain.com",
  to: ["alex@example.com"],
  subject: "Welcome to Bird",
  html: "<p>You're in. Let's ship.</p>",
});
02POST /v1/email/mailboxes

Mailbox. The Mailbox API for agents that answer their own email.

claim-mailbox.sh
curl -X POST https://us1.platform.bird.com/v1/email/mailboxes \
  -H "Authorization: Bearer $BIRD_API_KEY" \
  -d '{"domain": "inbox.ai", "receive_policy": "open"}'

{
  "id": "mbx_01krdgeqcxet5s7t44vh8rt9mg",
  "address": "k7mq3vx2npr5wcj4tzh6@inbox.ai",
  "state": "active"
}
03POST /v1/sms/messages

SMS. The SMS API for developers who actually need to ship.

notify.ts
await bird.sms.send({
  to: "+15005550006",
  text: "Your code is 847291. Expires in 10 min.",
  category: "authentication",
});
04GET /v1/voice/calls

Voice. SIP trunking, with a record and events on every call.

dial.ts
const call = await bird.voice.get("vcl_01k0p3v9wera3v6q6xw3e9y2mh");

call.status; // "answered" | "no_answer" | "ringing" | …
Voice is being upgraded
05POST /v1/whatsapp/messages

WhatsApp. Engage customers worldwide with WhatsApp API.

message.ts
await bird.whatsapp.send({
  from: "+15557654321",
  to:   "+15005550006",
  text: { body: "Order confirmed! 🎉" },
});
06POST /v1/verify/verifications

Verify. The OTP API for developers who need codes to land.

verify.ts
await bird.verify.verifications.create({
  to: { phone_number: "+15005550006" },
});
// check by target — no id to store
await bird.verify.verifications.check({
  to: { phone_number: "+15005550006" }, code: userCode,
});
07POST /v1/lookup/phone-number

Lookup. Check a phone number or an email address before you send to it.

lookup.ts
await bird.lookup.phoneNumber({
  phone_number: "+31612345678",
});
08POST /v1/rcs

RCS. The RCS for Business API, SMS's better-looking sibling.

rich.ts
await bird.rcs.send({
  to: "+15005550006",
  text: "Your order shipped! 📦",
  suggestions: [
    { type: "openUrl", text: "Track it", url },
  ],
});
RCS is being upgraded
09POST /v1/push

Push. Push notifications for iOS, Android, and web.

push.ts
await bird.push.send({
  to: { deviceToken },
  notification: {
    title: "Order shipped!",
    body: "Your package is on its way.",
  },
});
Push is being upgraded
10POST /v1/realtime/publish

Realtime. Hosted pub/sub over WebSockets. Subscribe, publish, scale.

realtime.ts
await bird.realtime.publish("rap_01krdgeqcxet5s7t44vh8rt9mg", {
  channels: ["orders"],
  event: "order.shipped",
  data: { orderId, status: "shipped" },
});
11POST /v1/esims

eSIM. Corporate eSIMs, employee phone plans, connectivity in your product.

esim.ts
await bird.esim.issue({
  recipient: { externalId: employeeId },
  plan: { region: "eu", dataMb: 5_000 },
  policy: { blockStreaming: true },
});
The eSIM API is coming to Bird
12Apple Messages for Business

Apple Messages. Native choices, appointments and service in the Messages app.

Bird’s public APIs use familiar authentication, errors and pagination. Follow the product guide for supported operations, permissions and integration requirements.

/ Auth

/ Idempotency

/ Errors

/ Webhooks

/ Pagination

/ Typed IDs

See the API Endpoints

Put it into practice.

Continue with the documentation, guides and examples for this topic. Resources are in English.

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor