Developer API

API sederhana untuk inbox sementara.

Semua endpoint publik menggunakan JSON dan tidak memerlukan API key. Gunakan dengan bijak; konten email bersifat sementara dan dapat diakses siapa pun yang mengetahui alamatnya.

Base URL

https://luminoir.my.id
Format: JSONAutentikasi publik: tidak adaRetensi: 24 jam
GET/api/domains

Mengembalikan domain approved untuk publik. Tambahkan ?scope=mine untuk melihat domain milik browser ini.

POST/api/domains

Menambahkan domain baru ke Resend, menyiapkan record email, dan mengikat domain ke browser ini lewat cookie kepemilikan.

{
  "domain": "contoh.com",
  "turnstileToken": "opsional"
}
GET/api/domains/{domain}/verify

Memverifikasi record MX di DNS publik dan menyegarkan status domain.

DELETE/api/domains/{domain}

Membatalkan domain pending/gagal milik browser ini, termasuk menghapusnya dari Resend. Domain aktif atau milik pengguna lain tidak bisa dihapus.

GET/api/inbox/{address}

Mengambil maksimal 50 email terbaru untuk sebuah alamat, plus OTP terdeteksi.

DELETE/api/inbox/{address}

Menghapus seluruh email pada alamat tersebut.

GET/api/emails/{id}

Mengambil isi lengkap email (HTML, teks, lampiran) berdasarkan ID.

POST/api/webhook/resend

Endpoint internal untuk event email.received dari Resend. Signature wajib valid.

Setup deployment

MailNoir memakai Neon Postgres untuk data dan Resend untuk menerima email. Vercel menjalankan UI dan webhook.

1. Siapkan database Neon

Buat project di Neon, salin connection string, lalu jalankan isi drizzle/0000_mailnoir.sql di SQL Editor.

2. Buat API key Resend

Buat API key dengan akses domain dan receiving, lalu isi RESEND_API_KEY.

3. Deploy ke Vercel

Set DATABASE_URL, RESEND_API_KEY, RESEND_WEBHOOK_SECRET, CRON_SECRET, dan NEXT_PUBLIC_APP_URL.

4. Daftarkan webhook Resend

Tambahkan endpoint https://luminoir.my.id/api/webhook/resend dengan event email.received, lalu salin signing secret.

Contoh

Ambil inbox

curl "https://luminoir.my.id/api/inbox/[email protected]"

Tambah domain

curl -X POST "https://luminoir.my.id/api/domains" \
  -H "Content-Type: application/json" \
  -d '{"domain":"contoh.com"}'

Butuh bantuan menghubungkan domain? Mulai dari halaman Tambah Domain, semua record DNS akan dibuat otomatis.

Tambah Domain