Kembali ke Beranda
Autentikasi API Key & Token
Untuk menggunakan Private Domain milik Anda atau meningkatkan kuota request, Anda dapat menyertakan API Key dari Dashboard.
Gunakan salah satu dari 3 metode autentikasi berikut:
# Metode 1: Header X-API-Key (Direkomendasikan)
X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx
# Metode 2: Header Authorization Bearer
Authorization: Bearer <TOKEN_JWT_DASHBOARD>
# Metode 3: Query Parameter URL
GET /api/v1/messages?login=user&domain=private.com&apikey=pzm_xxxxxx
1. Dapatkan Daftar Domain (Public & Private)
GET
/api/v1/domains
Mengembalikan daftar domain yang aktif dan siap digunakan. Jika mengirimkan API Key atau Header Bearer Token, domain Private yang Anda miliki juga akan otomatis disertakan lengkap dengan status verifikasi DNS & Nameserver Cloudflare resminya.
CONTOH REQUEST:
curl "https://panzzmail.irfanff014.workers.dev/api/v1/domains" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx"
CONTOH RESPONSE (200 OK):
[
{
"domain": "produk-panzz.indevs.in",
"type": "public",
"is_active_dns": true,
"dns_status": "ready",
"nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
]
},
{
"domain": "panzzprem.web.id",
"type": "private",
"is_mine": true,
"is_active_dns": false,
"dns_status": "unconfigured",
"dns_status_label": "Nameserver Belum Diisi",
"nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
],
"live_nameservers": []
}
]
Keterangan Properti: is_active_dns: true menandakan domain sudah diarahkan ke Nameserver Cloudflare dan siap menerima email secara real-time. Jika bernilai false, Anda perlu mengganti Nameserver di panel registrar domain Anda sesuai yang tertera di array nameservers.
2. Cek Kotak Masuk (Inbox) Email
GET
/api/v1/messages?login={user}&domain={host}
| PARAMETER | TIPE | WAJIB | DESKRIPSI |
login | string | Ya | Nama username email (sebelum tanda @) |
domain | string | Ya | Nama domain (sesudah tanda @) |
CONTOH REQUEST:
curl "https://panzzmail.irfanff014.workers.dev/api/v1/messages?login=panzz&domain=panzzprem.web.id" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx"
CONTOH RESPONSE (200 OK):
[
{
"id": "e6a4b123-7f89-4b92-80cf-f28a9b1c7890",
"from": "noreply@github.com",
"subject": "Your GitHub verification code",
"date": "2026-09-14T14:30:00.000Z"
}
]
3. Baca Isi Lengkap Email
GET
/api/v1/readMessage?login={user}&domain={host}&id={id}
| PARAMETER | TIPE | WAJIB | DESKRIPSI |
login | string | Ya | Nama username email (sebelum tanda @) |
domain | string | Ya | Nama domain (sesudah tanda @) |
id | string | Ya | UUID ID email dari endpoint daftar pesan |
CONTOH REQUEST:
curl "https://panzzmail.irfanff014.workers.dev/api/v1/readMessage?login=panzz&domain=panzzprem.web.id&id=e6a4b123-7f89-4b92-80cf-f28a9b1c7890" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx"
CONTOH RESPONSE (200 OK):
{
"id": "e6a4b123-7f89-4b92-80cf-f28a9b1c7890",
"from": "noreply@github.com",
"to": "panzz@panzzprem.web.id",
"subject": "Your GitHub verification code",
"date": "2026-09-14T14:30:00.000Z",
"body": "Berikut kode verifikasi akun GitHub Anda: 739201. Kode ini berlaku selama 10 menit.",
"textBody": "Berikut kode verifikasi akun GitHub Anda: 739201.",
"htmlBody": "<p>Berikut kode verifikasi akun GitHub Anda: <strong>739201</strong>.</p>",
"attachments": []
}
4. Cek Propagasi DNS & Nameserver Live
GET
/api/dns/check?domain={domain}
Endpoint publik untuk memverifikasi secara langsung apakah domain sudah mengarahkan Nameserver-nya ke Cloudflare secara aktif di Internet (via Cloudflare 1.1.1.1 DNS over HTTPS).
CONTOH REQUEST:
curl "https://panzzmail.irfanff014.workers.dev/api/dns/check?domain=panzzprem.web.id"
CONTOH RESPONSE (200 OK):
{
"domain": "panzzprem.web.id",
"status": "ready",
"status_label": "Aktif & Siap",
"nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
],
"live_nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
]
}
5. Kelola Custom Domain Mandiri (Otomatis Cloudflare)
GET
POST
/api/user/domains
Daftarkan domain pribadi Anda sendiri secara otomatis. Sistem akan langsung membuatkan Cloudflare Zone, record MX, SPF, dan aturan Email Routing Catch-all Worker tanpa perlu campur tangan admin manual.
A. LIHAT DAFTAR DOMAIN PRIBADI SAYA:
curl "https://panzzmail.irfanff014.workers.dev/api/user/domains" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx"
B. TAMBAH DOMAIN PRIBADI BARU (OTOMATIS CLOUDFLARE):
curl -X POST "https://panzzmail.irfanff014.workers.dev/api/user/domains" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"action": "add", "domain": "domainbisnis.com"}'
CONTOH RESPONSE (200 OK):
{
"success": true,
"message": "Domain domainbisnis.com berhasil otomatis didaftarkan ke Cloudflare!",
"domain": {
"domain": "domainbisnis.com",
"type": "private",
"owner": "user@gmail.com",
"status": "active",
"cf_zone_id": "42d894abea0d837bafddeae1dde90dc7",
"nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
]
},
"nameservers": [
"kehlani.ns.cloudflare.com",
"sevki.ns.cloudflare.com"
],
"cloudflare_auto": true,
"total": 3,
"limit": 10
}
Tanpa Perlu Setup DNS Manual! Anda hanya perlu menyalin 2 Nameserver di atas (kehlani.ns.cloudflare.com & sevki.ns.cloudflare.com) lalu memasangnya di registrar tempat Anda membeli domain.
C. HAPUS DOMAIN PRIBADI:
curl -X POST "https://panzzmail.irfanff014.workers.dev/api/user/domains" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"action": "delete", "domain": "domainbisnis.com"}'
6. Pesan / Beli Domain ke Admin
GET
POST
/api/user/domain_orders
Bagi pengguna yang tidak ingin repot membeli domain dan mengatur DNS sendiri, gunakan endpoint ini untuk mengajukan permohonan pembelian domain ke Admin.
A. LIHAT STATUS RIWAYAT PESANAN DOMAIN:
curl "https://panzzmail.irfanff014.workers.dev/api/user/domain_orders" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx"
B. KIRIM PESANAN DOMAIN BARU:
curl -X POST "https://panzzmail.irfanff014.workers.dev/api/user/domain_orders" \
-H "X-API-Key: pzm_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"domain": "toko-keren.com", "note": "Domain untuk toko online dan notifikasi pesanan"}'
CONTOH RESPONSE (200 OK):
{
"success": true,
"message": "Pesanan domain 'toko-keren.com' berhasil dikirim ke Admin! Admin akan segera memproses pembelian domain Anda.",
"order": {
"id": "ORD-1789390000000",
"user_email": "user@gmail.com",
"user_plan": "standard",
"domain": "toko-keren.com",
"note": "Domain untuk toko online dan notifikasi pesanan",
"status": "pending",
"created_at": "2026-09-14T14:40:00.000Z",
"admin_note": ""
}
}
7. Kode Status HTTP & Format Error
| KODE | ARTI | DESKRIPSI |
200 OK | Berhasil | Request sukses diproses |
400 Bad Request | Parameter Kurang / Salah | Parameter tidak lengkap atau format nama domain tidak valid |
401 Unauthorized | Autentikasi Dibutuhkan | API Key atau Token tidak valid / tidak disertakan |
403 Forbidden | Akses Ditolak / Kuota Penuh | Mencoba mengakses domain milik pengguna lain atau kuota domain paket telah tercapai |
404 Not Found | Tidak Ditemukan | Email, domain, atau pesanan tidak ditemukan di database |
409 Conflict | Sudah Terdaftar | Domain sudah terdaftar di sistem PanzzMail |
429 Too Many Requests | Limit Kuota Tercapai | Batas kuota harian request API untuk paket Anda telah habis |
FORMAT RESPONSE ERROR:
{
"error": "Pesan deskripsi error yang terjadi"
}
Limit & Kuota Paket Pengguna
| PAKET | KUOTA API / HARI | MAKS DOMAIN PRIBADI | HARGA |
| Free | 500 req/hari | Hanya Public Domain | Gratis |
| Standard | 2.500 req/hari | Maks 10 Domain Pribadi | Rp 25.000 / bln |
| Premium | 25.000 req/hari | Maks 50 Domain Pribadi | Rp 50.000 / bln |
| Reseller / VIP | Tidak Terbatas | Tidak Terbatas | Rp 125.000 / bln |