De SMS API voor developers die écht moeten shippen.
190+ 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.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your order #4821 has shipped. Track it: bird.ly/t/4821x",
category: "transactional",
}).safe();
if (error) throw error;
console.log(data.id);
// → "sms_01m11jw130e7svjzv70kgqr38w"
5 minuten van npm install tot eerste verzending
Verstuur een SMS vanuit de taal die u al gebruikt.
SDK's in elke belangrijke runtime. Verstuur naar de goedgekeurde testontvanger +15005550006 en Bird simuleert de volledige levenscyclus tot aan aflevering, zodat een CI-check nooit een carrier raakt. Het is een Amerikaans nummer, dus voor het verzenden heb je nog steeds een eigen Amerikaans nummer als afzender nodig.
const msg = await bird.sms.send({
from: "+15557654321",
to: "+14155550100",
text: "Your verification code is 123456.",
category: "authentication",
});
console.log(msg.id, msg.status);Tien dingen die wij registreren, configureren en routeren, zodat u dat niet hoeft te doen.
Routing, compliance en inbound primitives — benoemd en auditeerbaar.
- 01
190+ country coverage
Eén uniforme API, één facturatierelatie. Geen regiogebonden contracten om achteraan te lopen.
- 02
240 directe carrierverbindingen
Geen tussenpersoon-aggregator die marge afroomt of ontvangstbewijzen laat vallen tussen ons en de MNO.
- 03
Operator-grade routing
Real-time route-herselectie wanneer een carrierpad verslechtert; failover vindt plaats voordat u het merkt.
- 04
Tweerichtings-SMS inbound
Inkomende berichten komen binnen als HMAC-ondertekende webhooks op het nummer dat u hebt aangevraagd.
- 05
Nummers in elke vorm
Long codes, short codes, tolvrij en alfanumerieke afzender-ID's — ingericht via één endpoint.
- 06
A2P 10DLC in het dashboard
Merk- en campagneregistratie wordt afgehandeld in de console; de status is opvraagbaar via de API.
- 07
MNP-lookup vóór verzending
We resolven de huidige carrier van de ontvanger bij elke verzending, zodat de route altijd klopt.
- 08
STOP / HELP compliance
Opt-out-trefwoorden worden automatisch per ontvanger gehonoreerd; de suppressielijst is opvraagbaar.
- 09
Afleverbevestigingen als webhooks
Elke statusovergang triggert een ondertekend event: van sms.accepted tot sms.delivered of sms.failed.
- 10
Segment- en Unicode-veiligheid
De SDK telt segmenten vóór verzending en waarschuwt bij encodingwisselingen die een bericht zouden splitsen.
Verken het SMS-platform
Elke mogelijkheid in detail. Eén API, één set keys.
Verzending.
De send-API: segmenten, Unicode-veiligheid, batch en idempotency.
Nummers.
Long codes, short codes, toll-free en alfanumerieke sender ID's.
Tweerichtings.
Inkomende SMS en conversationele antwoorden als HMAC-ondertekende webhooks.
Compliance.
A2P 10DLC-registratie, STOP/HELP opt-out en sender-ID-regels.
Routering.
190+ countries, 240 direct-to-carrier links, and failover.
Analyse.
Aflever- en engagementmetrics uit carrier delivery receipts.
Bestemmingen.
Afzendertypen per land, registratieregels en dekking.
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.
Bird afwegen tegen de gevestigde partij? Bird vs Twilio voor SMS zet de twee verzendaanroepen, beide 10DLC-omgevingen en wat elk platform een coding agent biedt naast elkaar.
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.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your order #4821 has shipped. Track it: bird.ly/t/4821x",
category: "transactional",
}).safe();
if (error) throw error;
console.log(data.id);
// → "sms_01m11jw130e7svjzv70kgqr38w"
Elke statuswijziging is een webhook.
HMAC-ondertekende payloads, replay-beschermd, idempotent. Dezelfde envelope op elk Bird-kanaal: leer er één, en u kent ze allemaal.
{
"type": "sms.delivered",
"timestamp": "2026-05-19T15:42:01.221Z",
"data": {
"sms_id": "sms_4kT01Lq2m",
"workspace_id": "ws_8KQ2",
"to": "+15005550006",
"from": "+12025550188",
"tags": [{ "name": "campaign", "value": "otp" }],
"metadata": { "user_id": "usr_12345" },
"carrier": "Verizon",
"mcc_mnc": "311480",
"cost": {
"amount": "0.0079",
"currency_code": "USD",
"transaction_amount": "0.0079",
"passthrough_amount": null
}
}
}
Herhalingsschema: 5s, 5m, 30m, 2u, 5u, daarna tweemaal 10u. Na de laatste poging is de bezorging definitief mislukt, en via replay kunt u deze herstellen 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.rejectedGeweigerd vóór carrier-overdracht: ongeldige bestemming, onderdrukking of een contentbeleidsregel.sms.undeliveredCarrier heeft een niet-permanente bezorgfout gemeld.sms.failedDefinitieve fout: het bericht wordt niet bezorgd.
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.
await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: `Your code is ${code}.`,
category: "authentication",
});Hetzelfde werkwoord. Andere payload: getemplated, opt-in, in het kanaal dat twee miljard mensen dagelijks openen.
await bird.whatsapp.send({
to: "+15005550006",
template: {
slug: "bird_otp",
language: "en",
components: [
{ type: "body", parameters: [{ type: "text", text: code }] },
],
},
});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.