A API de SMS para developers que precisam mesmo de entregar.
Mais de 150 países, 240 conexões diretas com operadoras, um único modelo de autenticação. Cerca de 40% do volume mundial de SMS comercial passa pela rede Bird — fazemos isto há uma década. 95% das mensagens entregues em menos de 2,5 segundos.
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 minutos do npm install ao primeiro envio
Envie um SMS na linguagem que já utiliza.
SDKs em todos os principais runtimes. O primeiro envio vai para um destinatário de teste autorizado (+15005550006) para que possa incluir um check de CI antes de provisionar um número.
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();Dez coisas que nós registamos, configuramos e encaminhamos para que não tenha de o fazer.
Encaminhamento, conformidade e primitivas de entrada — nomeadas e auditáveis.
- 01
Cobertura em mais de 150 países
Uma API unificada, uma única relação de faturação — sem contratos por região para andar a perseguir.
- 02
240 ligações diretas a operadoras
Sem agregadores intermediários a comer margem ou a perder recibos entre nós e o operador móvel.
- 03
Routing de nível operador
Reseleção de rota em tempo real quando um caminho de operadora degrada; o failover acontece antes de dar conta.
- 04
SMS bidirecional de entrada
As mensagens de entrada chegam como webhooks assinados com HMAC no número que provisionou.
- 05
Números de todos os tipos
Long codes, short codes, toll-free e sender IDs alfanuméricos — provisionados através de um único endpoint.
- 06
A2P 10DLC no dashboard
Registo de marca e campanha gerido na consola; o estado pode ser consultado via API.
- 07
Consulta MNP antes do envio
Resolvemos a operadora atual do destinatário em cada envio para que a rota esteja sempre correta.
- 08
Conformidade STOP / HELP
Palavras-chave de opt-out respeitadas automaticamente por destinatário; a lista de supressão pode ser consultada.
- 09
Recibos de entrega como webhooks
Cada transição de estado dispara um evento assinado — de sms.queued até sms.delivered ou sms.failed.
- 10
Segmentos e segurança Unicode
O SDK conta os segmentos antes do envio e avisa sobre alterações de encoding que dividiriam a mensagem.
Explorar a plataforma de SMS
Cada capacidade em detalhe. Uma API, um único conjunto de chaves.
O SMS é um canal dentro de um conjunto de ferramentas mais amplo. Verifique utilizadores com códigos de uso único através de Verifications, confirme o tipo de linha e o operador de um número antes de enviar com Lookup, ou alcance o mesmo dispositivo com cartões enriquecidos por RCS.
Por que criamos o SMS
SMS é o canal complicado. Construímos a API que o torna aborrecido.
Cada país tem regras diferentes, cada operadora tem rotas diferentes, cada região tem convenções de sender-ID diferentes. Gerimos SMS há dez anos, por isso todo esse conhecimento está por trás de um único endpoint, um único modelo de autenticação, um único contrato de webhook. Independentemente do que mude a montante, a chamada que escreveu para bird.sms.send continua a funcionar.
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..."
Cada mudança de estado é um webhook.
Payloads assinados com HMAC, protegidos contra replay, idempotentes. O mesmo envelope em todos os canais Bird — aprenda um, aprendeu todos.
{
"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
}
}
Calendário de tentativas: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-letter após a última tentativa; cada evento em dead-letter pode ser reenviado a partir do dashboard ou da API.
sms.queuedAceite pela API e colocado em fila para entrega à operadora.sms.sentSubmetido ao SMSC da operadora de destino.sms.deliveredRecibo de entrega recebido da operadora (DLR).sms.failedFalha permanente — rejeição da operadora, número inválido, supressão ativa.sms.receivedMensagem de entrada num dos seus números provisionados.sms.opted_outO destinatário enviou a palavra-chave STOP; envios futuros para este número serão suprimidos.
Se já integrou SMS, já integrou WhatsApp.
O mesmo modelo de autenticação, o mesmo contrato de idempotência, o mesmo envelope de erros, a mesma forma de webhook. A diferença está no que cada um faz, não em como o invoca.
SMS
Um verbo. Texto simples. To/from numérico. A estrutura que qualquer developer já tem na memória muscular.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your code is ${code}.`,
});
Mesmo verbo. Payload diferente — com templates, opt-in, no canal que dois mil milhões de pessoas abrem diariamente.
await bird.whatsapp.send({
from: "+15551234567",
to: "+15005550006",
template: { name: "otp", variables: { code } },
});
Perguntas frequentes sobre a API de SMS
Com que rapidez consigo enviar o meu primeiro SMS?+
O que inclui a API de SMS da Bird?+
Para que países posso enviar?+
Tratam das palavras-chave STOP e HELP?+
Preciso de me registar no A2P 10DLC?+
Preços
De menos de um cêntimo a alguns cêntimos por segmento
Com preço por utilização e país de destino. A tabela completa por país está na página de preços, e os descontos por volume aplicam-se automaticamente ao nível da conta. Sem taxa de plataforma, sem taxa por lugar, sem funcionalidades bloqueadas por trás de compromissos anuais.