Bird vs Wati
Bird vs Wati for WhatsApp
Wati is a WhatsApp product for business teams with an API attached. Bird is an API with a dashboard attached. That sentence decides most of this comparison, and which way it cuts depends on whether the people who will use it every day write code.
What Wati is great at.
Where Bird is different.
What Wati is great at
A product your support team can run on Monday. A shared team inbox, a no-code chatbot builder and broadcast campaigns, sold to marketing, sales and support rather than to engineering. Bird ships none of that as a WhatsApp product: an inbox on Bird is something you build or integrate.
Seats, not just traffic. Their plans are priced around users and inclusions, with per-seat rates published for the higher tiers. If the value you are buying is a team working a shared inbox, that shape matches what you are actually paying for better than a per-message rate does.
Scoped API tokens with an expiry. A token is created in the dashboard with selectable scopes and an optional expiry date. Bird's API keys are scoped too, and putting an expiry in the creation flow is the kind of small thing a security review notices.
Where Bird is different
One host, not one per tenant. Wati's base URL carries your account in the path, so the host differs per customer and every example has to be rewritten before it runs. Bird's is a regional host that is the same for everyone in that region, with the workspace carried by the key.
A retry that cannot double-send. An Idempotency-Key header on the send makes a repeat safe, and on WhatsApp a duplicate opens a second billable conversation rather than merely repeating itself.
An agent can run the channel. 43 WhatsApp tools on the hosted server at mcp.bird.com, covering the send, the template lifecycle through submission to Meta, number registration and profile, and statistics, alongside typed SDKs in TypeScript, Python, Go and PHP.
The matrix
Capability by capability.
These two are not competing for the same buyer, and a table that pretended otherwise would be useless. Wati wins wherever the answer is a product a non-engineer operates; Bird wins on the mechanics of the integration underneath. Rows where one side ships nothing at all are concessions above rather than rows here.
| Capability | Bird | Wati | Who wins? |
|---|---|---|---|
| Send request | JSON to /v1/whatsapp/messages on your regional host with a bearer API key. The host is the same for every workspace in a region. | JSON to a template-send path on a per-tenant host that carries your account in the URL, with a bearer token created in the dashboard. The version sits in the path. | |
| Safe retries | An Idempotency-Key header on the send makes a retry safe. | No idempotency key or header appears in their API documentation, so a retry after a timeout can send twice. | |
| Content types | One send body selects text, template, image, video, audio, sticker, document, location, interactive or contact cards. | Their API groups messaging, contacts, media and operator assignment, with separate paths for sending a template and sending a session message. | |
| Typed SDKs | Typed SDKs for TypeScript, Python, Go and PHP, generated from the API. | REST over JSON with a documented reference; no official language SDKs are listed. | |
| Agent surface | 43 WhatsApp tools on the hosted server at mcp.bird.com, covering the send, templates, numbers and statistics. | Their AI products are Copilot, AI Agents and a bring-your-own-agent option, aimed at answering customers inside their inbox rather than at operating the account from your own agent. | |
| A team inbox out of the box | Not a Bird WhatsApp product. The API and the events are there to build one or to feed the helpdesk you already run. | The core of the product: a shared inbox with operator assignment, a no-code chatbot builder, and broadcast campaigns. | |
| Published pricing | Rates are published per country on the WhatsApp pricing page. | Per-seat and add-on rates are published, and the base monthly rate for the Growth, Pro and Business plans is not stated as a number on the pricing page. | |
| Channels beyond WhatsApp | SMS, email, voice, Verify and Realtime under the same base URL and key. | WhatsApp is the core, with Instagram, Facebook, website chat, SMS and TikTok DMs named alongside it. |
The same message
Sending one WhatsApp template.
The host is the first thing to notice: Wati's carries your account, so this snippet does not run for anyone else without editing the URL. Bird's is regional and constant, with the workspace carried by the key, and the send takes an Idempotency-Key.
Wati
const orderId = "ord_8f21";
const account = process.env.WATI_ACCOUNT_ID!;
const response = await fetch(
`https://live-mt-server.wati.io/${account}/api/ext/v3/messageTemplates/send`,
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WATI_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
whatsappNumber: "15551234567",
template_name: "order_shipped",
broadcast_name: "order_shipped_sep",
parameters: [{ name: "1", value: orderId }],
}),
},
);
const result = await response.json();
console.log(result.result);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const orderId = "ord_8f21";
const { data, error } = await bird.whatsapp
.send(
{
from: "+13124495648",
to: "+15551234567",
template: {
slug: "order_shipped",
language: "en_US",
components: [{ type: "body", parameters: [{ type: "text", text: orderId }] }],
},
},
{ idempotencyKey: orderId },
)
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
Switching cost
Low for the code. Higher for the people.
The API move is small. Both sides are JSON with a bearer token, so the send is a URL change, a body reshape and a header, and the per-tenant host becomes a regional one. If you only ever used Wati's API, this is an afternoon.
The part that is not small is the inbox. If your support team works Wati's shared inbox every day, moving to Bird means bringing your own: routing conversations into the helpdesk you already run, or building the surface those people use. Cost that before the API, because it is the whole difference between the two products and it lands on a team rather than on an engineer.
Questions people actually ask
Is Bird a good Wati alternative?
What do I have to build myself on Bird?
Why does the base URL matter?
Can an AI agent operate either one?
Where to go next
The sending guide is the one to start with: it covers the send call and the window rules.