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 rohe HTTP-Ablauf; alles, was die SDKs tun, beginnt hier.

1. API-Schlüssel exportieren

Erstellen Sie im Dashboard unter Platform tools > API keys einen Schlüssel (Ihre erste E-Mail senden führt Sie durch den Vorgang) und exportieren Sie ihn:

Codebeispiel
export BIRD_API_KEY="bk_us1_..."

Das Regionspräfix wählt 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 eine andere Region hat.

2. Eine E-Mail senden

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 weder eine Domain-Verifizierung noch ein echtes Postfach. Wählen Sie für diesen Schnellstart den cURL-Tab.

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 *_count-Felder verfolgen Empfänger durch die Zustellstatus. In der ersten Antwort ist ein Empfänger akzeptiert 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"
}

Rohes HTTP hat kein SDK, das einen Idempotenzschlüssel für Sie erzeugt. Zum Schutz bei einem erneuten Versuch übergeben Sie beim ersten Versuch einen Schlüssel und verwenden ihn bei jedem erneuten Versuch wieder. Unter Idempotenz finden Sie ein Beispiel und die Wiedergabelimits.

3. Zustellung verfolgen

Rufen Sie die Nachricht per GET über ihre em_-ID ab und beobachten Sie, wie der Status von accepted über processed zu delivered wechselt. Wählen Sie erneut den cURL-Tab:

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

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