Sign inGet Started

cURL

Envoyez votre premier e-mail avec curl uniquement : exportez une clé API, faites un POST d'un message, puis un GET pour suivre sa livraison. C'est le flux HTTP brut ; tout ce que font les SDK commence ici.

1. Exportez votre clé API

Créez une clé dans le tableau de bord sous Developers > Clés API (Envoyez votre premier e-mail détaille la procédure), puis exportez-la :
Exemple de code
export BIRD_API_KEY="bk_us1_..."
Le préfixe de région sélectionne votre hôte API : les clés bk_us1_ appellent https://us1.platform.bird.com, et les clés bk_eu1_ appellent https://eu1.platform.bird.com. Les exemples d'envoi utilisent us1 ; changez l'hôte si votre clé a une autre région.

2. Envoyez un e-mail

Faites un POST vers /v1/email/messages, en envoyant depuis notre domaine d'intégration partagé vers l'adresse sandbox delivered@messagebird.dev. Vous n'avez besoin ni de vérification de domaine ni d'une vraie boîte mail. Sélectionnez l'onglet cURL pour ce guide de démarrage.
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"
API répond avec 202 : Bird a accepté l'e-mail et le livre de manière asynchrone. Les champs *_count suivent les destinataires à travers les états de livraison. Dans la réponse initiale, un destinataire est accepté et aucun n'est livré :
Exemple de code
{
  "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"
}
Le HTTP brut n'a pas de SDK pour générer une clé d'idempotence à votre place. Pour vous protéger lors d'une nouvelle tentative, fournissez une clé dès le premier appel et réutilisez-la en cas de réessai. Consultez Idempotence pour un exemple et les limites de rejeu.

3. Suivez la livraison

Faites un GET du message par son ID em_ et observez le statut passer de accepted à processed puis à delivered. Sélectionnez à nouveau l'onglet cURL :
const msg = await bird.email.get("em_abc123");
msg.status; // "accepted" | "processed" | "delivered" | "bounced" | …
msg.delivered_count;
msg.bounced_count;
Comme le destinataire est l'adresse sandbox delivered@messagebird.dev, la livraison est garantie : le message passe par le pipeline réel de Bird mais n'atteint jamais une vraie boîte mail.

Étapes suivantes