BIRD Email

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

Configurazione in:
Cursor

Email transazionali e di marketing sulla stessa infrastruttura che gestisce SMS, voce e WhatsApp. Circa il 40% delle email commerciali mondiali transita sulla rete Bird. Siamo in questo settore da un decennio. Durante il weekend del Black Friday 2025 abbiamo elaborato 19,9 miliardi di email.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY!,
});

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

5 minuti con npm install al primo invio

Invia un'email dal linguaggio che già utilizzi.

SDK per ogni runtime principale. Il primo invio puo essere indirizzato a un indirizzo di test dedicato (delivered@messagebird.dev), cosi puoi sviluppare sull'API live (invii, webhook, l'intero flusso) prima di verificare un dominio.

1
2
3
4
5
6
7
const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"

Dieci aspetti dell'email che non sono più un vostro problema.

Primitive di deliverability e operative, nominati e verificabili.

  1. 01

    Firma all'edge.

    Tre record da pubblicare: DKIM, un CNAME per il return-path e una policy DMARC. Il CNAME copre anche SPF, quindi non serve aggiungere nulla all'apex del dominio.

  2. 02

    Un audit prima ancora di inviare un byte.

    Punta lo strumento di audit su qualsiasi dominio: risolve i record DMARC, SPF, DKIM, BIMI e MX attivi, valuta come interagiscono e classifica le priorità di intervento. Non serve un account.

  3. 03

    IP dedicati gestiti.

    Forniti per account e riscaldati automaticamente nell'arco di circa 30 giorni, organizzati in pool che controlli tu.

  4. 04

    Lista di soppressione dinamica.

    Bounce, reclami e disiscrizioni sopprimono il destinatario automaticamente e in modo reversibile.

  5. 05

    Nessun polling per verificare un dominio.

    Aggiungete un dominio, pubblicate i record e Bird effettua nuovi controlli automaticamente finché non vengono risolti, di solito entro pochi minuti dalla propagazione DNS. C'è anche una chiamata di verifica se volete una risposta immediata.

  6. 06

    Template salvati o il vostro HTML.

    Specificate un template salvato e Bird lo renderizza con Liquid, oppure renderizzate React Email in HTML nella vostra app e passate il risultato.

  7. 07

    Log delle email ricercabile.

    Ogni messaggio inviato viene registrato con i relativi eventi di consegna e lo stato. Interroga qualsiasi email tramite ID.

  8. 08

    Metriche di deliverability, dettagliate.

    Codici di bounce, tipi di reclamo e suddivisioni per provider di posta e client, ripartiti per dominio, ISP e IP, nella dashboard e tramite l'API delle statistiche.

  9. 09

    Parsing in entrata.

    Utilizzate un indirizzo di inoltro generato da Bird oppure pubblicate i record MX su un sottodominio di vostra proprietà. In entrambi i casi la mail arriva come webhook firmato che potete concatenare in thread.

  10. 10

    Invio in batch fino a 100.

    Fino a 100 messaggi indipendenti per chiamata, ciascuno con il proprio destinatario e le proprie variabili. Una sola chiave di idempotenza copre l'intero batch.

Perché sviluppiamo l'email

Perché i tuoi codici di verifica non dovrebbero trovarsi su un fornitore diverso dalle tue ricevute di consegna.

L'email non e un prodotto a se; e un canale all'interno di un flusso. I codici di autenticazione partono come email e ripiegano su SMS. Le ricevute vengono inviate via WhatsApp quando il cliente lo preferisce. Bird Email e quello la cui API, i cui webhook e il cui contratto di idempotenza corrispondono a ogni altro canale, perche lo stesso team di ingegneria li ha costruiti tutti sulla stessa rete.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY!,
});

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

Ogni cambio di stato è un webhook.

Payload firmati in HMAC, protetti dai replay, idempotenti. La stessa busta firmata su ogni canale Bird, cosi l'handler che scrivi per l'email gia analizza i tuoi eventi SMS e WhatsApp.

POST /webhooks/bird
signed
{
  "type": "email.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "email_id":       "em_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient_id":   "er_01krdgeqcxet5s7t44vh8rt9mg",
    "workspace_id":   "ws_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient":      "ada@example.com",
    "recipient_role": "to",
    "tags":     [{ "name": "campaign", "value": "spring-2026" }],
    "metadata": { "order_id": "ord_5512" }
  }
}

Otto tentativi nell'arco di circa 27,5 ore, con backoff di 5s, 5m, 30m, 2h, 5h, 10h, 10h e un jitter del 20% per evitare che i retry si sincronizzino. Ogni tentativo riutilizza lo stesso webhook-id, ed è questo che fa funzionare il vostro controllo di deduplicazione. Dopo l'ultimo tentativo la consegna fallisce definitivamente, e una chiamata di replay la recupera.

  • email.acceptedL'invio è stato accettato ed è in fase di preparazione per la consegna.
  • email.processedIn coda per il mail server del destinatario.
  • email.deliveredIl mail server del destinatario ha accettato il messaggio.
  • email.openedIl destinatario ha aperto il messaggio. Può attivarsi più di una volta.
  • email.clickedIl destinatario ha cliccato un link tracciato.
  • email.bouncedErrore permanente: tipo di bounce e codice SMTP nel payload.
  • email.complainedIl destinatario ha segnalato il messaggio come spam.
  • email.unsubscribedIl destinatario ha scelto di disiscriversi tramite un link di disiscrizione tracciato.
  • email.list_unsubscribedIl destinatario ha utilizzato la disiscrizione con un clic del proprio client di posta.

Se hai integrato l'email, hai integrato gli SMS.

Stesso modello di autenticazione, stesso contratto di idempotenza, stessa busta di errore, stessa forma del webhook. La differenza sta in cosa fa ciascuno, non in come lo chiami.

Email

Dominio verificato, firma all'edge, gestione delle soppressioni integrata. Renderizza con React o invia HTML grezzo.

order-shipped.tsx
await bird.email.send({
  from:    "hello@bird.com",
  to:      ["ada@example.com"],
  subject: "Your code",
  html:    `<p>Code: ${code}</p>`,
});

SMS

Stesso envelope, stessa idempotenza, stesso registro dei tipi di errore. Il trasporto è l'unica differenza.

order-shipped.tsx
await bird.sms.send({
  from:     "Bird",
  to:       "+14155550172",
  text:     `Your code is ${code}.`,
  category: "authentication",
});

Prezzi

A partire da 0,30$ ogni 1.000 email

Inizia gratis: 1.000 email al mese, senza carta. I piani a pagamento partono da $15 per 50K, e la tariffa per messaggio del piano Growth continua a calare man mano che scali fino a 2,5M. Nessun costo di piattaforma, nessun costo per postazione, nessuna funzionalita di livello bloccata dietro impegni annuali.

Scelto ogni giorno dai team che sviluppano software di livello mondiale

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