Sign inGet Started

cURL

Kirim email pertama Anda hanya dengan curl: ekspor kunci API, kirim pesan dengan POST, lalu ambil kembali dengan GET untuk memantau pengirimannya. Ini adalah alur HTTP mentah; semua yang dilakukan SDK berawal dari sini.

1. Ekspor kunci API Anda

Buat kunci di dashboard pada Platform tools > API keys (Kirim email pertama Anda menjelaskan langkahnya), lalu ekspor kunci tersebut:

Contoh kode
export BIRD_API_KEY="bk_us1_..."

Prefiks region menentukan host API Anda: kunci bk_us1_ memanggil https://us1.platform.bird.com, dan kunci bk_eu1_ memanggil https://eu1.platform.bird.com. Contoh pengiriman menggunakan us1; ganti host jika kunci Anda berasal dari region lain.

2. Kirim email

Kirim POST ke /v1/email/messages, dari domain onboarding bersama kami ke alamat sandbox delivered@messagebird.dev. Anda tidak memerlukan verifikasi domain atau kotak surat sungguhan. Pilih tab cURL untuk panduan cepat ini.

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 merespons dengan 202: Bird telah menerima email dan melakukan pengiriman secara asinkron. Kolom *_count melacak penerima melalui status pengiriman. Pada respons awal, satu penerima diterima dan belum ada yang terkirim:

Contoh kode
{
  "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"
}

HTTP mentah tidak memiliki SDK yang membuatkan kunci idempotensi untuk Anda. Agar terlindungi saat mencoba lagi, sertakan kunci pada percobaan pertama dan gunakan kembali kunci yang sama pada setiap percobaan ulang. Lihat Idempotency untuk contoh dan batas pemutaran ulang.

3. Pantau pengirimannya

Ambil pesan dengan GET berdasarkan ID em_ dan pantau statusnya berubah dari accepted melalui processed hingga delivered. Pilih tab cURL lagi:

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);

Karena penerimanya adalah alamat sandbox delivered@messagebird.dev, pengiriman dijamin berhasil: pesan melewati pipeline nyata Bird, tetapi tidak pernah masuk ke kotak surat sungguhan.

Langkah berikutnya