Bird Products

Nove superfici. Una piattaforma. Stessa struttura.

Email, SMS, Voice, WhatsApp, Verify, Lookup, RCS, Push e Realtime — ciascuna un'API di prima classe. Stessa autenticazione, stessa idempotenza, stessi webhook, stesso formato degli errori. Impara una, le conosci tutte.

Configura in:
Cursor

Tutti i prodotti. Nove superfici, un solo SDK.

01POST /v1/emails

Email. L'API email per sviluppatori che inviano anche il resto del messaggio.

welcome.tsx
await bird.email.send({
  to: ["alex@example.com"],
  subject: "Welcome to Bird",
  html: "<p>You're in. Let's ship.</p>",
});
02POST /v1/sms

SMS. L'API SMS per sviluppatori che devono davvero rilasciare.

notify.ts
await bird.sms.send({
  to: "+15005550006",
  text: "Your code is 847291. Expires in 10 min.",
});
SMS è in fase di aggiornamento
03POST /v1/voice/calls

Voice. Voce programmabile in JSON. Chiamate, IVR, registrazione, TTS.

dial.ts
await bird.voice.calls.create({
  to: "+15005550010",
  from: "+14155550199",
  flow: [
    { say: "Your order is confirmed." },
  ],
});
Voice è in fase di aggiornamento
04POST /v1/whatsapp/messages

WhatsApp. L'API WhatsApp Business, senza il passaggio dal BSP.

message.ts
await bird.whatsapp.send({
  to: "+15005550006",
  type: "text",
  text: { body: "Order confirmed! 🎉" },
});
WhatsApp è in fase di aggiornamento
05POST /v1/verify/verifications

Verify. L'API OTP per sviluppatori che hanno bisogno che i codici arrivino.

verify.ts
await bird.verify.verifications.create({
  to: { phone_number: "+15005550006" },
});
// check by target — no id to store
await bird.verify.verifications.check({
  to: { phone_number: "+15005550006" }, code: userCode,
});
In anteprima
06GET /v1/lookup

Lookup. Intelligence sui numeri di telefono: tipo di linea, operatore, segnali di frode.

lookup.ts
const { lineType, carrier, fraud } =
  await bird.lookup.get("+15005550006");
Lookup è in fase di aggiornamento
07POST /v1/rcs

RCS. RCS Business Messaging — il fratello più elegante degli SMS.

rich.ts
await bird.rcs.send({
  to: "+15005550006",
  text: "Your order shipped! 📦",
  suggestions: [
    { type: "openUrl", text: "Track it", url },
  ],
});
RCS è in fase di aggiornamento
08POST /v1/push

Push. Notifiche push per iOS, Android e web.

push.ts
await bird.push.send({
  to: { deviceToken },
  notification: {
    title: "Order shipped!",
    body: "Your package is on its way.",
  },
});
Push è in fase di aggiornamento
09POST /v1/realtime/publish

Realtime. Pub/sub in hosting tramite WebSocket. Sottoscrivi, pubblica, scala.

realtime.ts
await bird.realtime.publish({
  channel: "orders",
  event: "order.shipped",
  data: { orderId, status: "shipped" },
});
Realtime è in fase di aggiornamento

Ogni prodotto sopra condivide un unico modello di autenticazione, un unico contratto di idempotenza, un unico formato di errore, un unico contratto webhook, un unico schema di paginazione a cursore. Impara uno, li conosci tutti.

/ Auth

/ Idempotency

/ Errors

/ Webhooks

/ Pagination

/ Typed IDs

Vedi gli endpoint API

Inizia con un canale.
Aggiungi gli altri quando sei pronto.

Una chiave API di test è subito tua. La produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

Usi Claude Code, Cursor o Codex? Copia un prompt di configurazione e il tuo agente installerà la CLI e le skill di Bird per te. Scegli il tuo:

Cursor