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.

Dois-je fournir mon propre numéro WhatsApp ?
Non. Bird fournit des numéros d'expéditeur gérés. Les modèles d'authentification sont envoyés depuis un numéro dédié, et les modèles utilitaires et marketing partagent un numéro de notification. La page Numéros du tableau de bord liste les numéros disponibles pour votre espace de travail.
Puis-je utiliser mon propre numéro ?
Oui, et en connecter un est ce qui vous permet d'envoyer en tant que votre propre marque : vos propres modèles, du contenu libre dans une fenêtre de service client ouverte et des messages entrants. Les numéros gérés par Bird sont partagés entre les workspaces et ne prennent en charge que les modèles gérés : considérez-les comme le moyen sans configuration pour un premier envoi, et non comme la solution définitive.
Comment Bird choisit-il le numéro d'envoi ?
Pour un modèle géré, selon sa catégorie : l'authentification utilise un numéro d'expéditeur dédié, tandis que les catégories utilitaire et marketing partagent un numéro de notification. Tout le reste spécifie son propre expéditeur dans le champ from, qui doit être un numéro appartenant à votre workspace, et un modèle que vous avez créé doit être rattaché au même WhatsApp Business Account que ce numéro.

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.

Commencez avec un seul canal.
Ajoutez les autres quand vous êtes prêt.

Une clé API de test est disponible immédiatement. L'accès production se débloque dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Vous utilisez Claude Code, Cursor ou Codex ? Copiez un prompt de configuration et votre agent installe la CLI Bird et les compétences pour vous. Choisissez le vôtre :

Cursor