Numbers

Borrow a sender. Then bring your own.

Set up in:
Cursor

Every WhatsApp message leaves from a business number. Bird operates managed senders you can use on your first day with nothing to provision, and connects a number of your own through Meta's embedded signup when you are ready to send as your own brand.

send-notification.ts
202 · 480ms
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY!,
});

const msg = await bird.whatsapp.send({
  to: "+15551234567",
  template: {
    slug: "bird_delivery_update",
    components: [{ type: "body", parameters: [
      { type: "text", name: "ref",  text: "#4821" },
      { type: "text", name: "date", text: "Wednesday" },
    ] }],
  },
});

console.log(msg.id, msg.status);
// → "wam_01krdgeqcxet5s7t44vh8rt9mg", "accepted"
Reminder: you have an appointment on 3 Sep at 14:30. We look forward to seeing you.9:42 AM
Reschedule
Your order #4821 is out for delivery, arriving Wednesday. Thanks for shopping with us.9:43 AM
Your subscription renews on 3 Sep for €12.00. No action is needed.9:44 AM
View plan

Two tiers of sender, one send call.

Numbers are what the Bird WhatsApp API sends from. A number we operate on your behalf carries Bird's managed templates and picks itself from the template's category. A number your workspace connected is yours: it is what free-form content, inbound messages, and templates you authored all require.

The sender is either chosen for you, or named by you.

A Bird-managed template selects its number from its category: authentication sends from a dedicated number, utility and marketing share a notification number. Everything else names a from, and it has to be a number your workspace owns.

Bird-managed

managed
// A Bird-managed template picks its own sender from its category, so
// there is no `from` to choose and nothing to provision first.
await bird.whatsapp.send({
  to:       "+15551234567",
  template: { slug: "bird_delivery_update", components },
});

Shared across workspaces and stocked with managed templates only. Setting a from here is refused, because the category already decided it.

Your own

your-own
// Your own number: name it on every send that is not a Bird-managed
// template. A template you authored has to sit on that number's WABA.
await bird.whatsapp.send({
  to:       "+15551234567",
  from:     "+13124495648",
  template: { slug: "order_update", language: "en", components },
});

Your brand on the sender, your templates, free-form replies, and inbound. Omitting from on a send that needs it is refused rather than guessed at.

What a connected number reports.

Once your number is live, WhatsApp keeps grading it. Bird re-reads that state roughly hourly, so what you see is a reading with a timestamp rather than a live value.

  1. 01

    A quality rating

    Green, yellow, or red, from recipient feedback. Sustained red can restrict the number. This is separate from a template language's own quality score.

  2. 02

    A messaging limit, shared

    How many unique users you can message outside a service window in a rolling 24 hours. WhatsApp calculates it for the whole business portfolio, so every number in it shares one limit and any single number can consume all of it.

  3. 03

    A throughput level

    Standard is 80 messages per second. WhatsApp upgrades an eligible number to 1,000 per second on its own, without an application.

  4. 04

    A data localization region

    The country your message content is stored at rest in. It can differ from the region you asked for when WhatsApp requires a particular country for that number.

  5. 05

    A reason, when a connection fails

    A number still retrying carries its last refusal, so there is something to act on while the retry runs, and it clears once the number connects.

A number, as the API reads it.

Scope says which tier the number belongs to, and meta_synced_at is when its state was last read from WhatsApp. A number Bird operates on your behalf carries no rating, limit, throughput, or sync time at all: those belong to a business account you own.

GET /v1/whatsapp/numbers
wan_
{
  "id":           "wan_01krdgeqcxet5s7t44vh8rt9mg",
  "phone_number": "+13124495648",
  "name":         "Goldcrest Support",
  "scope":        "workspace",
  "status":       "connected",
  "quality_rating":   "green",
  "messaging_limit":  "tier_10k",
  "throughput_level": "standard",
  "meta_synced_at":   "2026-05-19T15:00:04.911Z"
}

Connecting one is a dashboard step.

Your own number is connected through Meta's embedded signup, either by bringing a number that is not already active on the WhatsApp consumer or Business app, or by picking one your workspace already holds at Bird. Numbers are managed in the dashboard rather than provisioned over the public API, and the same step is what makes inbound yours.

Go deeper in the docs.

Read phone number setup for both connection paths and what to do when one fails, and the customer service window for why a number of your own is what free-form content needs.

Number questions, answered.

Managed senders, bringing your own, and how a sender is chosen.

Apakah saya perlu menyediakan nomor WhatsApp sendiri?
Tidak. Bird menyediakan nomor pengirim terkelola. Template autentikasi dikirim dari nomor khusus, sedangkan template utilitas dan pemasaran berbagi nomor notifikasi. Halaman Numbers di dashboard menampilkan nomor yang tersedia untuk workspace Anda.
Bisakah saya menggunakan nomor sendiri?
Ya, dan menghubungkan nomor Anda sendiri adalah yang membuka kemampuan mengirim sebagai merek Anda sendiri: template Anda sendiri, konten bebas di dalam jendela layanan pelanggan yang terbuka, dan pesan masuk. Nomor yang dikelola Bird digunakan bersama antar workspace dan hanya membawa template terkelola, jadi anggap nomor tersebut sebagai jalur tanpa setup untuk pengiriman pertama, bukan sebagai kondisi akhir.
Bagaimana Bird memilih nomor pengirim?
Untuk template terkelola, berdasarkan kategorinya: autentikasi menggunakan nomor pengirim khusus, sementara utilitas dan pemasaran berbagi nomor notifikasi. Yang lainnya menyebutkan pengirimnya sendiri di field from, yang harus berupa nomor yang dimiliki workspace Anda, dan template yang Anda buat harus berada di WhatsApp Business Account yang sama dengan nomor tersebut.

Send today, on your own number tomorrow.

Numbers are one capability of the Bird WhatsApp API: templates, sending, inbound, and analytics ship with them, on infrastructure we have run for a decade.

Mulai dengan satu channel.
Tambahkan yang lain saat Anda siap.

API key uji coba langsung tersedia untuk Anda. Akses produksi terbuka setelah Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Menggunakan Claude Code, Cursor, atau Codex? Salin prompt pengaturan dan agen Anda akan menginstal Bird CLI dan skill untuk Anda. Pilih milik Anda:

Cursor