Sign inGet Started

cURL

Senden Sie Ihre erste E-Mail nur mit curl: Exportieren Sie einen API-Schlüssel, senden Sie eine Nachricht per POST und rufen Sie sie per GET ab, um die Zustellung zu verfolgen. Das ist der reine HTTP-Ablauf, auf dem alles aufbaut, was die SDKs tun.

1. Exportieren Sie Ihren API-Schlüssel

Erstellen Sie im Dashboard unter Platform tools > API keys einen Schlüssel (Send your first email beschreibt die Schritte) und exportieren Sie ihn:

Codebeispiel
export BIRD_API_KEY="bk_us1_..."

Das Regionspräfix bestimmt Ihren API-Host: bk_us1_-Schlüssel rufen https://us1.platform.bird.com auf, bk_eu1_-Schlüssel rufen https://eu1.platform.bird.com auf. Die Sendebeispiele verwenden us1. Ändern Sie den Host, wenn Ihr Schlüssel zu einer anderen Region gehört.

2. Senden Sie eine E-Mail

Senden Sie einen POST an /v1/email/messages, mit unserer gemeinsamen Onboarding-Domain als Absender und der delivered@messagebird.dev-Sandbox-Adresse als Empfänger. Sie benötigen dafür weder eine Domainverifizierung noch ein echtes Postfach. Wählen Sie für diesen Schnellstart den Tab cURL.

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"

Die API antwortet mit 202: Bird hat die E-Mail angenommen und stellt sie asynchron zu. Die Felder *_count verfolgen die Empfänger durch die Zustellungsstatus. In der ersten Antwort ist ein Empfänger angenommen und keiner zugestellt:

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

Bei reinem HTTP erzeugt kein SDK einen Idempotenzschlüssel für Sie. Zum Schutz bei einem erneuten Versuch geben Sie beim ersten Versuch einen Schlüssel mit und verwenden ihn wieder, wenn Sie es erneut versuchen. Unter Idempotency finden Sie ein Beispiel und die Grenzen für Wiederholungen.

3. Verfolgen Sie die Zustellung

Rufen Sie die Nachricht per GET über ihre em_-ID ab und verfolgen Sie, wie der Status von accepted über processed zu delivered wechselt. Wählen Sie erneut den Tab 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);

Da der Empfänger die delivered@messagebird.dev-Sandbox-Adresse ist, ist die Zustellung garantiert: Die Nachricht durchläuft die echte Pipeline von Bird, erreicht aber nie ein echtes Postfach.

Nächste Schritte