Sign inGet Started

cURL

Envoyez votre premier e-mail avec curl uniquement : exportez une clé API, envoyez un message avec POST, puis récupérez-le avec GET pour suivre sa livraison. Il s’agit du flux HTTP brut ; tout ce que font les SDK part de là.

1. Exportez votre clé API

Créez une clé dans le tableau de bord sous Platform tools > API keys (Envoyer 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 détermine 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é appartient à une autre région.

2. Envoyez un e-mail

Envoyez une requête POST à /v1/email/messages, 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 de réception. Sélectionnez l’onglet cURL pour ce guide de démarrage rapide.

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 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"
}

Avec HTTP brut, aucun SDK ne génère de clé d’idempotence à votre place. Pour vous protéger lors d’une nouvelle tentative, fournissez une clé dès la première tentative et réutilisez-la quand vous réessayez. Consultez Idempotence pour un exemple et les limites de rejeu.

3. Suivez la livraison

Récupérez le message avec une requête GET à l’aide de son ID em_ et suivez l’évolution du statut de accepted à delivered, en passant par processed. Sélectionnez de nouveau l’onglet 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);

Comme le destinataire est l’adresse sandbox delivered@messagebird.dev, la remise est garantie : le message passe par le vrai pipeline de Bird, mais n’atteint jamais une vraie boîte de réception.

Étapes suivantes