Send WhatsApp updates, passcodes, and interactive replies from one API.
Deliver order confirmations, one-time passcodes, rich media, and interactive buttons or list menus right into your customers’ WhatsApp chats. Bird validates template parameters and checks the 24-hour customer service window before dispatching, preventing failed calls and surprise charges while streaming delivery and read receipts back to your app.
// Install the SDK
// npm install @messagebird/sdk
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_otp",
components: [{ type: "body", parameters: [{ type: "text", text: "123456" }] }],
},
});
console.log(msg.id, msg.status);Send your first message in minutes with our TypeScript, Python, Go, or PHP SDKs, the Bird CLI, or direct HTTP requests. Start immediately with Bird’s pre-approved templates while your own WhatsApp Business number is being verified.
Templates and 24-hour window
Send the right format inside or outside the 24-hour window.
WhatsApp separates business-initiated outreach from active customer conversations. Reach customers outside an active chat using Meta-approved utility, authentication, or marketing templates, then switch to free-form text, media, and interactive menus for 24 hours after they message or call you.
Catch closed windows and variable mismatches upfront
Bird tracks the 24-hour customer service window per recipient and business number. If your app tries to send a free-form message after the window closes, or passes template variables that do not match your placeholders, the API rejects the call before anything is created or billed.
Rich media, interactive buttons, and list menus
When a conversation is open, send images, PDFs, audio clips, videos, locations, or contact cards from a single endpoint. Add quick-reply buttons, multi-option list menus, product carousels, or location and contact requests so customers can tap instead of typing.
Real-time delivery tracking
Track messages from API acceptance to read receipt.
Sending on WhatsApp is asynchronous. Once Bird accepts your request, webhook events and the per-message timeline show when the message is handed to WhatsApp, delivered to the customer’s phone, and opened in chat.
Diagnose rejections with Meta error details
If a message fails after acceptance, such as when a service window expires in flight or Meta blocks delivery, Bird records the failure description and underlying Meta error code on the message record so your team knows whether to retry or switch channels.
Prevent duplicate sends on network retries
Include an idempotency key with your send request so a timeout or worker retry within the retention window replays the original response instead of sending a duplicate message.
order_ready
Events
Accepted
Bird admits the request and returns its message identity.
Sent
The message moves through the sending workflow.
Delivered
Provider observations update the message record when available.
Read
Handle rejection, failure and missing observations as part of the same integration.
Harbor
Business account
order_ready
Harbor
Business account
Events
Accepted
Bird admits the request and returns its message identity.
Sent
The message moves through the sending workflow.
Delivered
Provider observations update the message record when available.
Read
Handle rejection, failure and missing observations as part of the same integration.
Context for two-way workflows
Keep customer replies connected to the right order or ticket.
Quote an earlier message so your customer sees which question or order you are answering right in their chat. When a customer taps a quick-reply button, picks a list option, or replies to a recent message, Bird returns the selected action and quoted message reference so your app can route the response immediately.
Tag and attach metadata to outbound sends
Add up to 20 filterable tags and 2 KB of custom JSON metadata to an outbound message. Slice message logs by campaign or workflow, and keep your internal order or ticket IDs attached to the outbound record across API reads and delivery webhooks.
Operate from your codebase, terminal, or AI agent
Send test messages, inspect delivery timelines, and filter recent history from the Bird CLI or connect your coding assistant through the Bird MCP server, governed by your workspace’s role and sender permissions.
WhatsApp sending questions
Does an accepted request mean the message was delivered?
Can I send free-form messages at any time?
Is there a WhatsApp batch endpoint?
How do I match an interactive reply to my application?
Connect the complete journey
Scale without
losing control.
Organize teams in workspaces, control API access, and trace changes through audit logs.
Organization
Harbor
Access stays in its workspace.
Production/API keys
Delivery agent
ActiveAlex Lee
Admin
Today · UTC
Audit log
Organization
Harbor
Access stays in its workspace.
Production/API keys
Delivery agent
ActiveAlex Lee
Admin
Today · UTC
Audit log
Organization
Harbor
Access stays in its workspace.
Production/API keys
Delivery agent
ActiveAlex Lee
Admin
Today · UTC
Audit log