De SMS API voor developers die écht moeten shippen.

Klaar in:
Cursor

150+ countries, 240 direct-to-carrier connections, one auth model. About 40% of the world's commercial SMS volume transits the Bird network. We've been at this a decade. 95% of messages delivered in under 2.5 seconds.

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

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

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from:     "Bird",
  to:       "+15005550006",
  text:     `Your Bird verification code is ${code}. Reply STOP to opt out.`,
  category: "authentication",
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Today at 2:14 PM

Hey Ada, your Bird sign-in code is 482917. It'll expire in 10 minutes. Don't share it with anyone.
482917
Delivered

5 minuten van npm install tot eerste verzending

Verstuur een SMS vanuit de taal die u al gebruikt.

SDK's in elke belangrijke runtime. De eerste verzending gaat naar een goedgekeurde testontvanger (+15005550006), zodat u een CI-check kunt shippen voordat u een nummer aanvraagt.

1
2
3
4
5
6
7
8
9
import { BirdClient } from "@messagebird/sdk";

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

const { data, error } = await bird.sms.send({
  to:       "+15005550006",
  text:     "Hello from Node.",
  category: "transactional",
}).safe();

Tien dingen die wij registreren, configureren en routeren, zodat u dat niet hoeft te doen.

Routing, compliance en inbound primitives — benoemd en auditeerbaar.

  1. 01

    150+ landen dekking

    One unified API, one billing relationship. No per-region contracts to chase down.

  2. 02

    240 directe carrierverbindingen

    Geen tussenpersoon-aggregator die marge afroomt of ontvangstbewijzen laat vallen tussen ons en de MNO.

  3. 03

    Operator-grade routing

    Real-time route-herselectie wanneer een carrierpad verslechtert; failover vindt plaats voordat u het merkt.

  4. 04

    Tweerichtings-SMS inbound

    Inkomende berichten komen binnen als HMAC-ondertekende webhooks op het nummer dat u hebt aangevraagd.

  5. 05

    Nummers in elke vorm

    Long codes, short codes, toll-free, and alphanumeric sender IDs, provisioned via one endpoint.

  6. 06

    A2P 10DLC in het dashboard

    Merk- en campagneregistratie wordt afgehandeld in de console; de status is opvraagbaar via de API.

  7. 07

    MNP-lookup vóór verzending

    We resolven de huidige carrier van de ontvanger bij elke verzending, zodat de route altijd klopt.

  8. 08

    STOP / HELP compliance

    Opt-out-trefwoorden worden automatisch per ontvanger gehonoreerd; de suppressielijst is opvraagbaar.

  9. 09

    Afleverbevestigingen als webhooks

    Every state transition fires a signed event: sms.accepted through sms.delivered or sms.failed.

  10. 10

    Segment- en Unicode-veiligheid

    De SDK telt segmenten vóór verzending en waarschuwt bij encodingwisselingen die een bericht zouden splitsen.

SMS is één kanaal in een grotere toolkit. Verifieer gebruikers met one-time passcodes via Verifications, controleer het lijntype en de carrier van een nummer voordat je verstuurt met Lookup, of bereik hetzelfde toestel met rich cards over RCS.

Waarom wij SMS bouwen

SMS is het rommelige kanaal. Wij hebben de API gebouwd die het saai maakt.

Elk land heeft andere regels, elke carrier heeft andere routes, elke regio heeft andere afzender-ID-conventies. Wij draaien SMS al tien jaar, dus al die kennis zit achter één endpoint, één authenticatiemodel, één webhook-contract. Wat er upstream ook verandert, de aanroep die u schreef tegen bird.sms.send blijft werken.

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

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

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from:     "Bird",
  to:       "+15005550006",
  text:     `Your Bird verification code is ${code}. Reply STOP to opt out.`,
  category: "authentication",
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Elke statuswijziging is een webhook.

HMAC-signed payloads, replay-protected, idempotent. The same envelope on every Bird channel: learn one, you've learned them all.

POST /webhooks/bird
signed
{
  "type": "sms.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "sms_id":       "sms_4kT01Lq2m",
    "workspace_id": "ws_8KQ2",
    "to":           "+15005550006",
    "from":         "Bird",
    "tags":         [{ "name": "campaign", "value": "otp" }],
    "metadata":     { "user_id": "usr_12345" },
    "carrier":      "Verizon",
    "mcc_mnc":      "311480"
  }
}

Retry-schema: 5s, 30s, 5m, 30m, 2u, 6u, 12u. Dead-letter na de laatste poging; elk dead-lettered event is opnieuw afspeelbaar vanuit het dashboard of de API.

  • sms.acceptedGeaccepteerd door de API en in de wachtrij voor de carrier-overdracht.
  • sms.sentIngediend bij de SMSC van de bestemmingscarrier.
  • sms.deliveredAfleverbevestiging ontvangen van de carrier (DLR).
  • sms.rejectedRejected before carrier hand-off: invalid destination, suppression, or a content policy guard.
  • sms.undeliveredCarrier heeft een niet-permanente bezorgfout gemeld.
  • sms.failedTerminal failure: the message will not be delivered.

Als u SMS hebt geïntegreerd, hebt u WhatsApp geïntegreerd.

Hetzelfde authmodel, hetzelfde idempotency-contract, dezelfde error-envelope, dezelfde webhookvorm. Het verschil is wat elk kanaal doet, niet hoe je het aanroept.

SMS

Eén werkwoord. Platte tekst. Numeriek van/naar. De structuur waarvoor elke developer al spiergeheugen heeft.

otp.ts
await bird.sms.send({
  to:       "+15005550006",
  text:     `Your code is ${code}.`,
  category: "authentication",
});

WhatsApp

Same verb. Different payload: templated, opted-in, in the channel two billion people open daily.

otp.ts
await bird.whatsapp.send({
  from: "+15551234567",
  to:   "+15005550006",
  template: { name: "otp", variables: { code } },
});

SMS API FAQ

Hoe snel kan ik mijn eerste SMS versturen?
Install the SDK and send to the sanctioned test recipient +15005550006 in about five minutes. You can ship a CI check before you provision a number.
Wat omvat de SMS API van Bird?
One send endpoint, two-way inbound, number provisioning (long codes, short codes, toll-free, and alphanumeric sender IDs), A2P 10DLC and opt-out compliance, direct-to-carrier routing, and delivery analytics, all on one API.
Naar welke landen kan ik versturen?
Bird bereikt 150+ landen via 240 direct-to-carrier verbindingen, met operator-grade routeherselectie wanneer een carrierpad verslechtert.
Verwerken jullie STOP- en HELP-keywords?
Ja, automatisch per ontvanger. STOP schrijft een ontvanger uit en zet hem op een doorzoekbare onderdrukkingslijst, HELP stuurt een automatisch hulpantwoord en START schrijft hem weer in.
Moet ik me registreren voor A2P 10DLC?
Voor application-to-person verkeer naar Amerikaanse nummers, ja. Brand- en campagneregistratie wordt in het dashboard afgehandeld, en de status is opvraagbaar via de API.

Prijzen

Van minder dan een cent tot een paar cent per segment

Geprijsd op basis van gebruik en bestemmingsland. De volledige grid per land staat op de prijzenpagina, en volumekortingen worden automatisch toegepast op accountniveau. Geen platformkosten, geen seatkosten, geen tierfeatures achter jaarcontracten.

Elke dag vertrouwd door teams die software van wereldklasse bouwen

Begin met één kanaal.
Voeg de rest toe wanneer je er klaar voor bent.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra je een betaalmethode toevoegt en een afzender verifieert.

Gebruik je Claude Code, Cursor of Codex? Kopieer een setup-prompt en je agent installeert de Bird CLI en skills voor je. Kies de jouwe:

Cursor