Bird vs Bandwidth

Bird vs Bandwidth para SMS

Bird es la plataforma de SMS que un agente de IA puede operar de extremo a extremo: enviar el mensaje, confirmar la entrega, registrar tu marca 10DLC. Cada una de esas acciones es una herramienta en el servidor MCP alojado de Bird, lista en el momento en que tu agente se conecta. Bandwidth divide el canal en dos: el envío está en un host y el registro 10DLC en otro, cada uno con su propia ruta de cuenta. Aquí el envío, el registro y los eventos de entrega están bajo un solo host y una sola clave.

En cifras

Bird

Alcance SMS

190+ countries

Rutas de operadores

240 conexiones directas

Velocidad de entrega

95 % en menos de 2,5 segundos

En lo que Bandwidth destaca.
En lo que Bird se diferencia.

En lo que Bandwidth destaca

They are the carrier. Bandwidth is a licensed US carrier (CLEC) that owns and operates its own 48-state network, with emergency services beside it, which is why their own hero names Voice, Messaging and Emergency together.

Bibliotecas auxiliares en más lenguajes. SDK oficiales para Java, Node.js, Python, PHP, C# y Ruby. Un equipo de Java o Ruby trabaja contra la API HTTP de Bird en su lugar.

En lo que Bird se diferencia

Un agente opera la cuenta por sí mismo. El servidor MCP alojado en mcp.bird.com ofrece al agente herramientas que envían SMS, consultan el estado de entrega y registran marcas 10DLC contra tu workspace real.

Un reintento que no puede enviar dos veces. Un encabezado Idempotency-Key en el envío hace que la repetición sea segura; la especificación OpenAPI de mensajería de Bandwidth no contiene ningún campo ni encabezado de idempotencia.

La intención del mensaje es un campo de primer nivel. Cada envío de texto libre lleva una categoría: transactional, marketing, authentication o service, algo para lo que el envío de Bandwidth no tiene equivalente.

La matriz

Capacidad por capacidad.

Bandwidth ofrece bibliotecas auxiliares en más lenguajes. Bird gana en un solo host para todo el canal, reintentos seguros, intención del mensaje y una superficie de agente accesible desde cualquier cliente MCP. Ambos coinciden en la estructura del envío, el registro 10DLC y los eventos de entrega. Ambas lecturas son precisas a día de hoy.

CapabilityBirdBandwidthWho wins?
Solicitud de envíoJSON a /v1/sms/messages en tu host regional, con una clave API de tipo bearer.JSON a un endpoint de mensajes bajo la ruta de tu cuenta en su host de mensajería, con from, to y text, autenticado mediante HTTP Basic y con un applicationId.
Reintentos segurosUn encabezado Idempotency-Key en el envío hace que el reintento sea seguro.Su especificación OpenAPI de mensajería, versión 4.3.0, no contiene ningún campo ni encabezado de idempotencia, por lo que un reintento tras un timeout puede enviar el mensaje dos veces.
Intención del mensajeCada envío de texto libre lleva una categoría: transactional, marketing, authentication o service.tag lleva una etiqueta de formato libre y priority establece la prioridad de entrega; ninguno de los dos declara por qué se envía el mensaje.
Servidor MCP alojadoTrae tu propio agente. mcp.bird.com está alojado, así que Claude Code, Cursor, ChatGPT o tu propio runtime inician sesión una vez y operan el workspace con las mismas herramientas.Bandwidth publica un servidor MCP y sus herramientas sí operan la cuenta. Es un paquete que descargas y ejecutas localmente, así que el cliente tiene que lanzarlo como un proceso local y toma tus credenciales de producción de una configuración local.
Registro A2P 10DLC/v1/sms/10dlc/* registra marcas y campañas a través de la API.Su API de gestión de campañas registra marcas y campañas, con verificación de marca e importación de campañas, como socio directo de Campaign Registry.
Un solo host para todo el canalEl envío, el registro 10DLC y los eventos de entrega comparten una URL base y una clave.El envío está en su host de mensajería y el registro en su host de API principal, cada uno con su propia ruta de cuenta, por lo que un cliente mantiene dos raíces.
Eventos de entregaUn webhook de workspace suscrito a los tipos de eventos SMS que indiques, como sms.sent, sms.delivered y sms.failed, entregados como JSON firmado según Standard Webhooks.Los callbacks se configuran en la Application que el mensaje nombra, no por envío.
Lenguajes del SDKSDKs tipados para TypeScript, Python, Go y PHP, además de clientes en tiempo real para Swift, Kotlin y el navegador.SDKs oficiales para Java, Node.js, Python, PHP, C# y Ruby.

La misma llamada de envío

La llamada de envío tiene una estructura similar.

Enviar un SMS. Ambos reciben JSON con from, to y text, pero Bandwidth se autentica con HTTP Basic y el envío nombra un applicationId que lleva la configuración de callback. Su helper lanza excepciones, por lo que el flujo habitual necesita un try/catch. Bird devuelve un resultado tipado que puedes desestructurar, y category es el campo sin equivalente en Bandwidth: cada envío de texto libre en Bird declara su intención.

Bandwidth

send.ts
import { Configuration, MessagesApi } from "bandwidth-sdk";

const config = new Configuration({
  clientId:     process.env.BW_CLIENT_ID!,
  clientSecret: process.env.BW_CLIENT_SECRET!,
});
const messagesApi = new MessagesApi(config);

try {
  const response = await messagesApi.createMessage(process.env.BW_ACCOUNT_ID!, {
    applicationId: process.env.BW_APPLICATION_ID!,
    from: "+15557654321",
    to:   ["+15551234567"],
    text: "Your table is ready.",
  });
  console.log(response.data);
} catch (err) {
  console.error(err);
}

Bird

send.ts
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);

¿Cuánto cuesta el SMS por país?

Cada país de destino tiene una tarifa publicada en la página de precios de SMS, y las tarifas de operador y 10DLC se detallan por separado en tarifas de operador SMS en lugar de incluirse en el precio. Puedes calcular el coste de una campaña antes de hablar con nadie.

Coste de migración

Bajo.

Los nombres de los campos se mantienen. Bandwidth ya los llama from, to y text, y la Application que lleva tus callbacks se convierte en un webhook de workspace suscrito a sms.sent, sms.delivered y sms.failed. Dos cosas cambian de forma: una clave bearer reemplaza HTTP Basic, y un solo host reemplaza a dos.

Dos tareas son de planificación, no de ingeniería. Tu marca y campaña 10DLC están registradas en The Campaign Registry a través de Bandwidth, por lo que el mismo registro se envía de nuevo a través de Bird; y los números que posees en Bandwidth se portan según el calendario de soporte. Inicia ambos procesos con antelación y avanzarán en paralelo al cambio de código.

Preguntas que la gente realmente hace

¿Es Bird una buena alternativa a Bandwidth para SMS?
For most application-to-person SMS, yes: Bird sends to 190+ countries over 240 direct-to-carrier connections, registers 10DLC brands and campaigns over the same API and key as the send, and makes retries safe with an Idempotency-Key header that their messaging specification does not contain. Bandwidth remains the better pick where you want a helper library in a language Bird does not ship, or where you need a licensed carrier that also runs emergency services.
¿Qué tan diferente es la llamada de envío?
Los campos se mantienen y la estructura no. Ambos reciben JSON, y from, to y text se llaman igual en ambos lados, pero Bandwidth se autentica con HTTP Basic y separa el envío del registro en dos hosts. Las dos adiciones reales en Bird son category, que declara si un mensaje es transaccional, de marketing, de autenticación o de servicio, y el encabezado Idempotency-Key que hace seguro un reintento.
¿Qué puede hacer realmente el agente en mi cuenta?
Exactamente lo que le delegues, y nada más. Al iniciar sesión mediante OAuth en el navegador se abre una pantalla de consentimiento de Bird donde eliges permisos de workspace u organización y seleccionas cuáles delegar. El permiso se limita a la intersección de lo que el cliente solicitó, lo que aprobaste y lo que realmente posees, y los alcances org:owner y platform-admin nunca son delegables. El permiso aparece en las Apps conectadas de tu perfil, y revocarlo allí corta el acceso al cliente de inmediato.
¿Tanto Bird como Bandwidth admiten el registro A2P 10DLC a través de una API?
Ambos lo hacen, y aquí es donde difieren en estructura más que en capacidad. Bandwidth registra marcas y campañas a través de su API de gestión de campañas en su host de API principal, mientras que el envío vive en un host de mensajería separado. Bird pone /v1/sms/10dlc/* junto a /v1/sms/messages bajo una sola URL base y una sola clave. En ambos casos, el registro va a The Campaign Registry y no se transfiere entre proveedores.
¿Cuánto cuesta el SMS de Bird por país?
Cada país de destino tiene una tarifa de salida publicada en la página de precios de SMS de Bird, con las tarifas de operador y 10DLC detalladas por separado en lugar de incluidas, para que puedas calcular el coste de una campaña tú mismo sin una llamada comercial.

Empieza con un canal.
Añade los demás cuando estés listo.

Una clave API de prueba es tuya de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

¿Usas Claude Code, Cursor o Codex? Copia un prompt de configuración y tu agente instalará el Bird CLI y las habilidades por ti. Elige el tuyo:

Cursor