Bird vs Infobip
Bird vs Infobip para SMS
O envio do Infobip é moldado para o caso de envio em massa, e você paga essa estrutura em cada mensagem: um SMS para uma pessoa ainda vai como um array de mensagens, cada um contendo um array de destinatários, com o texto da mensagem dois níveis abaixo em content.text. Bird usa from, to e text.
Em números
Alcance SMS
Rotas de operadoras
Velocidade de entrega
No que o Infobip é excelente.
No que a Bird é diferente.
No que o Infobip é excelente
Uma superfície de agente tão acessível quanto a nossa. O Infobip opera quinze servidores MCP remotos via HTTP, autenticados por uma chave de API ou OAuth 2.1 com descoberta de escopo. Dividi-los por produto mantém a lista de ferramentas de cada servidor curta, o que genuinamente ajuda um agente a escolher a ferramenta certa.
Java e C#, para os quais a Bird não oferece um SDK de servidor. Os cinco clientes de API mantidos são Java, C#, PHP, Go e Python. Uma equipa de Java ou .NET é melhor atendida lá e programa contra a API HTTP da Bird.
Relatórios de entrega que você ajusta por mensagem. Cada mensagem indica o seu próprio webhook, escolhe JSON ou XML, e pode anexar até 4000 caracteres de dados de callback que retornam no relatório.
No que a Bird é diferente
Um SDK tipado na linguagem em que a maior parte da web é escrita. A Bird oferece um SDK TypeScript próprio. O cliente Node do Infobip está numa organização comunitária separada, ainda na versão 0.3.2, com última publicação em novembro de 2023.
Uma retentativa que não pode enviar duas vezes. Um cabeçalho Idempotency-Key no envio torna a repetição segura. Os clientes de API gerados pelo Infobip não possuem chave de idempotência em nenhum endpoint.
A intenção da mensagem é um campo de primeira classe. Cada envio de texto livre carrega uma categoria de transacional, marketing, autenticação ou serviço, para a qual as opções de mensagem do Infobip não têm equivalente.
A matriz
Capacidade por capacidade.
Esta é a comparação mais equilibrada do conjunto. O Infobip iguala a Bird na superfície de agente, num único host para todo o canal, no registo de 10DLC via API e nos eventos de entrega, além de oferecer bibliotecas cliente em duas linguagens que a Bird não cobre. A Bird vence em retentativas seguras, intenção da mensagem e um SDK mantido em TypeScript. Ambas as leituras são precisas hoje.
| Capability | Bird | Infobip | Who wins? |
|---|---|---|---|
| Pedido de envio | JSON para /v1/sms/messages no seu host regional, com uma chave de API bearer. | JSON para um endpoint de mensagens versionado no host da API, autenticado com uma chave App. O payload é pensado para envio em massa: um array de mensagens, cada uma com um array de destinatários, e o texto dentro de content. | |
| Retentativas seguras | Um cabeçalho Idempotency-Key no envio torna a retentativa segura. | Os clientes de API gerados, construídos a partir da própria especificação, não possuem chave ou cabeçalho de idempotência em nenhum endpoint, portanto uma retentativa após um timeout pode enviar duas vezes. | |
| Intenção da mensagem | Cada envio de texto livre carrega uma categoria de transacional, marketing, autenticação ou serviço. | As opções de mensagem cobrem período de validade, janela de entrega, flash e configurações regionais, mas nenhuma declara um propósito. campaignReferenceId é parecido o suficiente para ser confundido com um numa lista de campos, mas o Infobip define-o como um ID para acompanhar o desempenho de uma campanha. | |
| Servidor MCP hospedado | Um servidor hospedado em mcp.bird.com. Claude Code, Cursor, ChatGPT ou o seu próprio runtime autentica-se uma vez e opera todo o workspace com as mesmas ferramentas. | Quinze servidores remotos via HTTP, divididos por produto, autenticados por uma chave de API ou OAuth 2.1 com descoberta de escopo. Alcançar SMS, registo e gestão de conta significa conectar três deles, e a lista de ferramentas de cada servidor permanece curta. | |
| Registo A2P 10DLC | /v1/sms/10dlc/* regista marcas e campanhas através da API. | Marcas e campanhas são registadas através da API de registo de números ou de um portal guiado, com uma revisão de conformidade antes da submissão ao The Campaign Registry. | |
| Um único host para todo o canal | Envio, registo 10DLC e eventos de entrega partilham um URL base e uma chave. | Um URL base personalizado por conta serve todos os produtos. O envio e o registo de números são ambos caminhos sob ele, e o próprio cliente de API não define overrides de host por operação. | |
| Eventos de entrega | Um webhook de workspace subscrito aos tipos de evento SMS que indicar, como sms.sent, sms.delivered e sms.failed, entregue como JSON assinado conforme Standard Webhooks. | Cada mensagem nomeia o seu próprio webhook, escolhe JSON ou XML, e pode anexar até 4000 caracteres de dados de callback que regressam no relatório. Os relatórios também podem ser consultados. | |
| Linguagens de SDK | SDKs tipados para TypeScript, Python, Go e PHP, além de clientes Realtime para Swift, Kotlin e browser. | Cinco clientes de API mantidos: Java, C#, PHP, Go e Python. O cliente Node está numa organização comunitária separada, na versão 0.3.2, lançado pela última vez em novembro de 2023. |
O mesmo envio
Uma mensagem, três níveis de profundidade.
Enviar um SMS. O painel da Infobip usa fetch simples em vez do SDK deles, porque os cinco clientes mantidos são Java, C#, PHP, Go e Python: um codebase TypeScript escreve este pedido manualmente. Bird devolve um resultado tipado que pode ser desestruturado, e category é o campo sem equivalente na Infobip.
Infobip
const response = await fetch("https://api.infobip.com/sms/3/messages", {
method: "POST",
headers: {
Authorization: `App ${process.env.INFOBIP_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
messages: [
{
sender: "+15557654321",
destinations: [{ to: "+15551234567" }],
content: { text: "Your table is ready." },
},
],
}),
});
const { messages } = await response.json();
console.log(messages[0].messageId, messages[0].status.name);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.sms
.send({
from: "+15557654321",
to: "+15551234567",
text: "Your table is ready.",
category: "transactional",
})
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
Quanto custa o SMS por país?
Cada país de destino tem uma tarifa publicada na página de preços de SMS, e as taxas de operadora e 10DLC são discriminadas separadamente em taxas de operadora SMS em vez de incluídas no preço. Pode calcular o custo de uma campanha antes de falar com alguém.
Custo de migração
Baixo.
Os campos transferem-se assim que os aplanar. sender passa a from, o array destinations colapsa num único to, e content.text passa a text. O webhook por mensagem torna-se um webhook de workspace subscrito a sms.sent, sms.delivered e sms.failed, e callbackData tem lugar nos metadata de Bird.
Dois itens são de agendamento e não de engenharia, por isso comece-os cedo e decorrerão em paralelo com a alteração de código. A sua marca e campanha 10DLC estão registadas no The Campaign Registry através da Infobip, pelo que o mesmo registo é submetido novamente através de Bird; e os números que possui lá são portados conforme o calendário do suporte.
Perguntas que as pessoas realmente fazem
Bird é uma boa alternativa à Infobip para SMS?
Quão diferente é a chamada de envio?
A Infobip tem um servidor MCP?
A Infobip disponibiliza um SDK para Node ou TypeScript?
O que pode o agente realmente fazer na minha conta?
Quanto custa o SMS de Bird por país?
Próximos passos
O guia de migração é o ponto de partida: mapeia a API campo a campo.