L'API SMS per gli sviluppatori che devono davvero rilasciare.
Oltre 150 paesi, 240 connessioni dirette agli operatori, un unico modello di autenticazione. Circa il 40% del volume globale di SMS commerciali transita attraverso la rete Bird — lo facciamo da un decennio. Il 95% dei messaggi viene consegnato in meno di 2,5 secondi.
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.`,
}).safe();
if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."
Today at 2:14 PM
5 minuti da npm install al primo invio
Invia un SMS dal linguaggio che già utilizzi.
SDK per ogni runtime principale. Il primo invio va a un destinatario di test autorizzato (+15005550006) così puoi integrare un check CI prima di acquistare un numero.
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: "+15005550006",
text: "Hello from Node.",
}).safe();Dieci cose che registriamo, configuriamo e instraiamo al posto vostro.
Routing, conformità e primitive inbound, con nomi definiti e tracciabili.
- 01
Copertura in oltre 150 Paesi
Un'unica API, un unico rapporto di fatturazione — nessun contratto per singola regione da rincorrere.
- 02
240 connessioni dirette con gli operatori
Nessun aggregatore intermediario che erode i margini o perde le ricevute tra noi e l'operatore mobile.
- 03
Routing di livello operatore
Riselezione delle rotte in tempo reale quando un percorso verso l'operatore si degrada; il failover avviene prima che te ne accorga.
- 04
SMS bidirezionali in ingresso
I messaggi in ingresso arrivano come webhook firmati HMAC sul numero che hai attivato.
- 05
Numeri di ogni tipo
Numeri lunghi, numeri brevi, numeri verdi e Sender ID alfanumerici — tutti attivabili tramite un unico endpoint.
- 06
A2P 10DLC nel dashboard
Registrazione di brand e campagne gestita nella console; lo stato è interrogabile via API.
- 07
Lookup MNP prima dell'invio
Verifichiamo l'operatore attuale del destinatario a ogni invio, così la rotta è sempre corretta.
- 08
Conformità STOP / HELP
Le keyword di opt-out vengono rispettate automaticamente per ogni destinatario; la lista di soppressione è interrogabile.
- 09
Ricevute di consegna come webhook
Ogni transizione di stato genera un evento firmato — da sms.queued fino a sms.delivered o sms.failed.
- 10
Segmenti e sicurezza Unicode
L'SDK conta i segmenti prima dell'invio e avvisa in caso di cambi di codifica che dividerebbero il messaggio.
Esplora la piattaforma SMS
Ogni funzionalità in profondità. Un'unica API, un unico set di chiavi.
L'SMS è un canale all'interno di un toolkit più ampio. Verifica gli utenti con codici monouso tramite Verifications, controlla il line type e il carrier di un numero prima di inviare con Lookup, oppure raggiungi lo stesso dispositivo con rich card via RCS.
Perché sviluppiamo SMS
SMS è il canale caotico. Abbiamo costruito l'API che lo rende noioso.
Ogni paese ha regole diverse, ogni operatore ha rotte diverse, ogni regione ha convenzioni diverse per il sender ID. Gestiamo gli SMS da dieci anni, quindi tutta questa conoscenza è dietro un unico endpoint, un unico modello di autenticazione, un unico contratto webhook. Qualunque cosa cambi a monte, la chiamata che avete scritto su bird.sms.send resta invariata.
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.`,
}).safe();
if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."
Ogni cambio di stato è un webhook.
Payload firmati HMAC, protetti da replay, idempotenti. Lo stesso formato su ogni canale Bird — impara uno, li conosci tutti.
{
"type": "sms.delivered",
"id": "evt_7jR42x...",
"created_at": "2026-05-19T15:42:01.221Z",
"data": {
"sms_id": "sms_4kT01Lq2m",
"from": "Bird",
"to": "+15005550006",
"mcc_mnc": "310-260",
"country": "US",
"segments": 1,
"latency_ms": 1284
}
}
Pianificazione dei retry: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-letter dopo l'ultimo tentativo; ogni evento in dead-letter è riproducibile dal dashboard o via API.
sms.queuedAccettato dall'API e accodato per il passaggio all'operatore.sms.sentInoltrato all'SMSC dell'operatore di destinazione.sms.deliveredRicevuta di consegna ricevuta dall'operatore (DLR).sms.failedErrore permanente — rifiuto dell'operatore, numero non valido, corrispondenza nella lista di soppressione.sms.receivedMessaggio in ingresso su uno dei tuoi numeri attivi.sms.opted_outIl destinatario ha inviato la keyword STOP; i futuri invii a questo numero verranno soppressi.
Se hai integrato SMS, hai integrato WhatsApp.
Stesso modello di auth, stesso contratto di idempotency, stesso envelope di errore, stessa forma di webhook. La differenza sta in cosa fa ciascuno, non in come lo chiami.
SMS
Un verbo. Testo semplice. To/from numerico. La struttura che ogni sviluppatore ha già nelle dita.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your code is ${code}.`,
});
Stesso verbo. Payload diverso — con template, con opt-in, nel canale che due miliardi di persone aprono ogni giorno.
await bird.whatsapp.send({
from: "+15551234567",
to: "+15005550006",
template: { name: "otp", variables: { code } },
});
FAQ sull'API SMS
Quanto velocemente posso inviare il mio primo SMS?+
Cosa include l'API SMS di Bird?+
Verso quali paesi posso inviare?+
Gestite le keyword STOP e HELP?+
Devo registrarmi per A2P 10DLC?+
Prezzi
Da meno di un centesimo a pochi centesimi per segmento
Prezzo in base all'utilizzo e al paese di destinazione. La griglia completa per paese è sulla pagina dei prezzi e gli sconti per volume si applicano automaticamente a livello di account. Nessuna platform fee, nessuna seat fee, nessuna funzionalità di livello bloccata dietro impegni annuali.