Bird vs Infobip

Bird vs Infobip pour SMS

L'envoi d'Infobip est conçu pour le cas d'envoi en masse, et vous en payez le prix sur chaque message : un SMS à une personne passe quand même par un tableau de messages, chacun contenant un tableau de destinataires, avec le texte du message deux niveaux plus bas dans content.text. Bird prend from, to et text.

En chiffres

Bird

Couverture SMS

190+ countries

Routes opérateurs

240 connexions directes

Vitesse de livraison

95 % en moins de 2,5 secondes

Ce qu'Infobip fait très bien.
Ce qui distingue Bird.

Ce qu'Infobip fait très bien

Une surface d'agent aussi accessible que la nôtre. Infobip exploite quinze serveurs MCP distants via HTTP, authentifiés par une clé API ou OAuth 2.1 avec découverte de scopes. Les séparer par produit maintient la liste d'outils de chaque serveur courte, ce qui aide réellement un agent à choisir le bon outil.

Java et C#, pour lesquels Bird ne fournit pas de SDK serveur. Leurs cinq clients API maintenus sont Java, C#, PHP, Go et Python. Un environnement Java ou .NET est mieux servi chez eux, et interagit avec l'API HTTP de Bird à la place.

Un reporting de livraison paramétrable par message. Chaque message désigne son propre webhook, choisit JSON ou XML, et peut joindre jusqu'à 4 000 caractères de données de callback renvoyées dans le rapport.

Ce qui distingue Bird

Un SDK typé dans le langage dans lequel la majeure partie du web est écrite. Bird fournit un SDK TypeScript propriétaire. Le client Node d'Infobip se trouve dans une organisation communautaire séparée, encore en 0.3.2, dernière publication en novembre 2023.

Une tentative qui ne peut pas envoyer en double. Un en-tête Idempotency-Key sur l'envoi sécurise la répétition. Les clients API générés d'Infobip ne portent aucune clé d'idempotence sur aucun endpoint.

L'intention du message est un champ de premier ordre. Chaque envoi en texte libre porte une catégorie : transactionnel, marketing, authentification ou service, sans équivalent dans les options de message d'Infobip.

La matrice

Fonctionnalité par fonctionnalité.

C'est le tableau le plus serré de la série. Infobip égale Bird sur la surface d'agent, sur un hôte unique pour l'ensemble du canal, sur l'enregistrement 10DLC via une API, et sur les événements de livraison, et fournit des bibliothèques client dans deux langages que Bird ne couvre pas. Bird l'emporte sur les tentatives sécurisées, l'intention du message et un SDK maintenu en TypeScript. Les deux lectures sont exactes aujourd'hui.

CapabilityBirdInfobipWho wins?
Requête d'envoiJSON vers /v1/sms/messages sur votre hôte régional, avec une clé API bearer.JSON vers un endpoint messages versionné sur leur hôte API, authentifié avec une clé App. La charge utile est pensée pour le masse : un tableau de messages, chacun avec un tableau de destinataires, et le texte sous content.
Tentatives sécuriséesUn en-tête Idempotency-Key sur l'envoi sécurise la tentative.Leurs clients API générés, construits à partir de leur propre spécification, ne portent aucune clé ou en-tête d'idempotence sur aucun endpoint, si bien qu'une tentative après un timeout peut envoyer deux fois.
Intention du messageChaque envoi en texte libre porte une catégorie : transactionnel, marketing, authentification ou service.Les options de message couvrent la période de validité, la fenêtre de livraison, le flash et les paramètres régionaux, mais aucune ne déclare de finalité. campaignReferenceId ressemble assez à une intention pour qu'on s'y trompe dans une liste de champs, mais Infobip le définit comme un ID de suivi de la performance d'une campagne.
Serveur MCP hébergéUn serveur hébergé sur mcp.bird.com. Claude Code, Cursor, ChatGPT ou votre propre runtime se connecte une fois et pilote tout le workspace avec les mêmes outils.Quinze serveurs distants via HTTP, séparés par produit, authentifiés par une clé API ou OAuth 2.1 avec découverte de scopes. Accéder à SMS, à l'enregistrement et à la gestion de compte nécessite d'en connecter trois, et la liste d'outils de chaque serveur reste courte.
Enregistrement A2P 10DLC/v1/sms/10dlc/* enregistre les marques et les campagnes via l'API.Les marques et campagnes s'enregistrent via leur API d'enregistrement de numéros, ou via un portail guidé, avec un examen de conformité avant soumission au Campaign Registry.
Un seul hôte pour tout le canalL'envoi, l'enregistrement 10DLC et les événements de livraison partagent une URL de base et une clé communes.Une URL de base personnalisée par compte dessert chaque produit. L'envoi et l'enregistrement de numéros sont tous deux des chemins sous cette URL, et leur propre client API ne définit aucun hôte spécifique par opération.
Événements de livraisonUn webhook d'espace de travail abonné aux types d'événements SMS que vous spécifiez, tels que sms.sent, sms.delivered et sms.failed, transmis en JSON et signés selon le standard Standard Webhooks.Chaque message désigne son propre webhook, choisit JSON ou XML, et peut joindre jusqu'à 4 000 caractères de données de callback retournées dans le rapport. Les rapports peuvent aussi être récupérés manuellement.
Langages SDKSDK typés pour TypeScript, Python, Go et PHP, ainsi que des clients Realtime pour Swift, Kotlin et le navigateur.Cinq clients API maintenus : Java, C#, PHP, Go et Python. Le client Node se trouve dans une organisation communautaire distincte, à la version 0.3.2, dernière publication en novembre 2023.

Le même envoi

Un message, trois niveaux d'imbrication.

Envoi d'un SMS. Le panneau Infobip utilise un fetch brut plutôt que leur SDK, car leurs cinq clients maintenus sont Java, C#, PHP, Go et Python : une base de code TypeScript écrit cette requête à la main. Bird renvoie un résultat typé que vous pouvez déstructurer, et category est le champ sans équivalent chez Infobip.

Infobip

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

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);

Quel est le coût du SMS par pays ?

Chaque pays de destination a un tarif publié sur la page de tarification SMS, et les frais opérateur et 10DLC sont détaillés séparément sur les frais opérateur SMS plutôt qu'inclus dans le tarif. Vous pouvez chiffrer une campagne avant de parler à qui que ce soit.

Coût de migration

Faible.

Les champs se transposent une fois aplatis. sender devient from, le tableau destinations se réduit à un seul to, et content.text devient text. Votre webhook par message devient un webhook d'espace de travail abonné à sms.sent, sms.delivered et sms.failed, et callbackData trouve sa place dans les metadata de Bird.

Deux éléments relèvent de la planification plutôt que de l'ingénierie : lancez-les tôt et ils avanceront en parallèle du changement de code. Votre marque et campagne 10DLC sont enregistrées auprès du Campaign Registry via Infobip, donc le même enregistrement est soumis à nouveau via Bird ; et les numéros que vous possédez là-bas sont portés selon le calendrier du support.

Questions que les gens posent vraiment

Bird est-il une bonne alternative à Infobip pour le SMS ?
It depends more here than on most of these pages. Bird sends to 190+ countries over 240 direct-to-carrier connections, takes a flat send, makes retries safe with an Idempotency-Key header their clients have no counterpart for, and ships a maintained TypeScript SDK. Infobip matches Bird on the agent surface and on registering 10DLC over an API, and is the better pick if you write Java or C#, if you want per-message control of delivery reports, or if you are buying voice, email and RCS from the same vendor.
Quelle différence y a-t-il dans l'appel d'envoi ?
La structure diffère plus que les noms de champs. Le payload d'Infobip est conçu pour l'envoi en masse : un tableau de messages, chacun avec un tableau de destinations, et le texte du message imbriqué sous content. Bird prend from, to et text au premier niveau. Les deux ajouts réels côté Bird sont category, qui déclare si un message est transactionnel, marketing, authentification ou service, et l'en-tête Idempotency-Key qui sécurise les tentatives de renvoi.
Infobip dispose-t-il d'un serveur MCP ?
Oui, et c'est un point que Bird ne remporte pas. Infobip fait tourner quinze serveurs MCP distants en HTTP, un par produit, authentifiés par clé API ou OAuth 2.1 avec découverte de scopes. Rien n'est installé, exactement comme chez Bird. La différence est de forme plutôt que de portée : Bird fait tourner un seul serveur pour tout l'espace de travail, donc un agent se connecte une seule fois, tandis que le découpage d'Infobip garde la liste d'outils de chaque serveur courte, ce qui aide un agent à choisir le bon outil. Votre préférence dépend de si vous préférez câbler une seule connexion ou plusieurs.
Infobip fournit-il un SDK Node ou TypeScript ?
Pas parmi les cinq qu'ils maintiennent, à savoir Java, C#, PHP, Go et Python. Un client Node existe, publié sous le nom @infobip-api/sdk depuis une organisation communautaire distincte, et il en est toujours à la version 0.3.2, dernière publication en novembre 2023. Une base de code TypeScript peut appeler l'API directement, ce que fait l'exemple de code ci-dessus.
Que peut réellement faire l'agent dans mon compte ?
Exactement ce que vous lui déléguez, et rien de plus. La connexion via OAuth navigateur ouvre un écran de consentement Bird où vous choisissez les permissions d'espace de travail ou d'organisation et sélectionnez celles à déléguer. L'autorisation est limitée à l'intersection de ce que le client a demandé, de ce que vous avez approuvé et de ce que vous détenez réellement, et les scopes org:owner et platform-admin ne sont jamais délégables. L'autorisation apparaît dans les Applications connectées de votre profil, et la révoquer coupe immédiatement l'accès du client.
Quel est le coût du SMS Bird par pays ?
Chaque pays de destination a un tarif sortant publié sur la page de tarification SMS de Bird, avec les frais opérateur et 10DLC détaillés séparément plutôt qu'inclus, ce qui vous permet de chiffrer une campagne vous-même sans appel commercial.

Commencez avec un seul canal.
Ajoutez les autres quand vous êtes prêt.

Une clé API de test est disponible immédiatement. L'accès production se débloque dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Vous utilisez Claude Code, Cursor ou Codex ? Copiez un prompt de configuration et votre agent installe la CLI Bird et les compétences pour vous. Choisissez le vôtre :

Cursor