Sign inGet Started

cURL

Kirim email pertama Anda hanya dengan curl: ekspor kunci API, POST sebuah pesan, dan GET pesan tersebut untuk memantau pengirimannya. Ini adalah alur HTTP mentah; semua yang dilakukan SDK dimulai dari sini.

1. Ekspor kunci API Anda

Buat kunci di dashboard pada Developers > API keys (Kirim email pertama Anda memandu prosesnya), lalu ekspor:
Contoh kode
export BIRD_API_KEY="bk_us1_..."
Prefiks region memilih 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; ubah host jika kunci Anda memiliki region lain.

2. Kirim email

POST ke /v1/email/messages, mengirim dari domain onboarding bersama kami ke alamat sandbox delivered@messagebird.dev. Anda tidak memerlukan verifikasi domain atau mailbox asli. Pilih tab cURL untuk quickstart 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 mengirimnya secara asinkron. Field *_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 langsung tidak memiliki SDK yang menghasilkan kunci idempotensi untuk Anda. Untuk perlindungan coba lagi, sertakan kunci pada percobaan pertama dan gunakan kembali kunci tersebut saat mencoba lagi. Lihat Idempotensi untuk contoh dan batas pemutaran ulang.

3. Pantau pengirimannya

GET pesan berdasarkan em_ ID-nya dan pantau status bergerak dari accepted melalui processed ke 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;
Karena penerimanya adalah alamat sandbox delivered@messagebird.dev, pengiriman dijamin berhasil: pesan melewati pipeline asli Bird tetapi tidak menyentuh mailbox asli.

Langkah selanjutnya