Sign inGet Started

cURL

Invia la tua prima email usando solo curl: esporta una chiave API, invia un messaggio con POST e recuperalo con GET per seguirne la consegna. Questo è il flusso HTTP di base; tutto ciò che fanno gli SDK parte da qui.

1. Esporta la tua chiave API

Crea una chiave nella dashboard in Platform tools > API keys (Invia la tua prima email descrive la procedura), poi esportala:

Esempio di codice
export BIRD_API_KEY="bk_us1_..."

Il prefisso della regione determina l'host API: le chiavi bk_us1_ chiamano https://us1.platform.bird.com e le chiavi bk_eu1_ chiamano https://eu1.platform.bird.com. Gli esempi di invio usano us1; cambia l'host se la tua chiave appartiene a un'altra regione.

2. Invia un'email

Invia una richiesta POST a /v1/email/messages, usando come mittente il nostro dominio di onboarding condiviso e come destinatario l'indirizzo sandbox delivered@messagebird.dev. Non servono la verifica del dominio né una casella di posta reale. Seleziona la scheda cURL per questa guida rapida.

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"

L'API risponde con 202: Bird ha accettato l'email e la consegna in modo asincrono. I campi *_count registrano il passaggio dei destinatari attraverso gli stati di consegna. Nella risposta iniziale, un destinatario risulta accettato e nessuno consegnato:

Esempio di codice
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted",
  "category": "marketing",
  "from": { "email": "onboarding@messagebird.dev" },
  "to": [{ "email": "delivered@messagebird.dev" }],
  "subject": "Hello from Bird",
  "accepted_count": 1,
  "processed_count": 0,
  "delivered_count": 0,
  "deferred_count": 0,
  "bounced_count": 0,
  "complained_count": 0,
  "rejected_count": 0,
  "open_count": 0,
  "click_count": 0,
  "track_opens": true,
  "track_clicks": true,
  "created_at": "2026-07-23T13:58:20.866Z"
}

Con HTTP diretta non c'è un SDK che genera una chiave di idempotenza al posto tuo. Per proteggerti dagli invii duplicati, fornisci una chiave al primo tentativo e riutilizzala quando devi riprovare. Consulta Idempotenza per un esempio e per i limiti di ripetizione.

3. Segui la consegna

Recupera il messaggio con una GET tramite il suo ID em_ e osserva lo stato passare da accepted a processed fino a delivered. Seleziona di nuovo la scheda cURL:

const msg = await bird.email.get("em_abc123");
msg.status; // "accepted" | "processed" | "delivered" | "bounced" | …
msg.delivered_count;
msg.bounced_count;
console.log(msg.subject, msg.subject_recipient_id);

Poiché il destinatario è l'indirizzo sandbox delivered@messagebird.dev, la consegna è garantita: il messaggio attraversa la pipeline reale di Bird ma non raggiunge mai una casella di posta reale.

Passaggi successivi