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.

¿Necesito proporcionar mi propio número de WhatsApp?
No. Bird proporciona números de remitente gestionados. Las plantillas de autenticación se envían desde un número dedicado, y las plantillas de utilidad y marketing comparten un número de notificación. La página de Números en el panel muestra los números disponibles para tu workspace.
¿Puedo usar mi propio número?
Sí, y conectar uno es lo que desbloquea el envío con tu propia marca: tus propias plantillas, contenido libre dentro de una ventana de atención al cliente abierta y mensajes entrantes. Los números gestionados por Bird se comparten entre espacios de trabajo y solo llevan plantillas gestionadas, así que considéralos como la vía sin configuración para un primer envío, no como el estado final.
¿Cómo elige Bird desde qué número enviar?
Para una plantilla gestionada, por su categoría: autenticación usa un número de remitente dedicado, mientras que utilidad y marketing comparten un número de notificación. Todo lo demás indica su propio remitente en el campo from, que debe ser un número que tu espacio de trabajo posea, y una plantilla que hayas creado debe estar en la misma WhatsApp Business Account que ese número.

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.

Empieza con un canal.
Añade los demás cuando estés listo.

Una clave API de prueba es tuya de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

¿Usas Claude Code, Cursor o Codex? Copia un prompt de configuración y tu agente instalará el Bird CLI y las habilidades por ti. Elige el tuyo:

Cursor