Catatan Perubahan
Halaman ini mencatat perubahan pada API dan pada dokumentasi ini. Entri dimulai 2026-09-19: apa pun yang berubah sebelum halaman ini ada tidak dicantumkan secara surut, jadi anggap entri yang tidak ada sebagai “tidak tercatat”, bukan “tidak berubah”.
Cara membacanya
Section titled “Cara membacanya”| Jenis | Artinya |
|---|---|
| API | Layanan berubah — sebuah endpoint, field, atau batas. |
| Kontrak | Dokumen OpenAPI yang diterbitkan berubah. |
| Dokumentasi | Dokumentasi berubah. API tidak berubah. |
| Koreksi | Dokumentasi selama ini menjelaskan API secara keliru. |
Entri Koreksi ditandai terpisah dengan sengaja. Entri tersebut menjelaskan perubahan pada apa yang Anda baca, bukan pada apa yang dilakukan API — jadi tidak ada bagian integrasi Anda yang rusak, tetapi apa pun yang Anda bangun berdasarkan deskripsi lama mungkin keliru.
2026-10-27 — Referensi kode negara
Section titled “2026-10-27 — Referensi kode negara”Dokumentasi · Ditambahkan
- Halaman Kode Negara yang dapat dicari, mencantumkan semua kode ISO 3166-1 alpha-2 yang ditetapkan secara resmi, ditautkan dari endpoint yang menerima kolom
country.
2026-09-19 — Dokumentasi direstrukturisasi, kontrak diterbitkan
Section titled “2026-09-19 — Dokumentasi direstrukturisasi, kontrak diterbitkan”Dokumentasi · Ditambahkan
- Bagian Referensi: OpenAPI, Versi & Penghentian, Status & Dukungan, Keamanan dan Glosarium.
- Dokumen OpenAPI 3.1 kini diterbitkan di
https://docs.zelnum.com/openapi.yaml, cermin yang identik byte dengan salinan platform, dan dapat diimpor ke Postman, Insomnia, serta generator klien. - Contoh klien dalam Python, Node.js, PHP dan Go untuk kedua mode deteksi, di samping contoh cURL yang sudah ada. Navigasi selama ini menjanjikan contoh SDK padahal hanya cURL yang tersedia.
- Tabel respons field demi field untuk pemeriksaan realtime, pengiriman massal, status tugas, dan endpoint hasil.
- Dua pengaman build baru: build kini gagal jika ada tabel yang tidak rapi di locale mana pun, dan build mencocokkan setiap endpoint yang disebut dokumentasi ini dengan dokumen OpenAPI yang di-vendor di kedua arah — endpoint terdokumentasi yang tidak dimiliki kontrak, dan jalur kontrak yang tidak didokumentasikan siapa pun, keduanya merupakan kegagalan.
Kontrak · Ditambahkan
- Dokumen OpenAPI itu sendiri: 10 jalur, 9 skema, dan
deprecated: truepadaPOST /v1/realtime/detectyang lama.
Dokumentasi · Koreksi
countryuntuk massal didokumentasikan sebagai wajib untuk setiap pengiriman. Field itu wajib untuk produk telepon dan harus dihilangkan untuk produk email. Seperti tertulis, sembilan produk email massal tidak dapat dikirim — setiap permintaan akan gagal validasi.- Aturan volume massal itu keliru. Bunyinya “1,000 hingga 2,000,000 nomor per permintaan”. Aturan sebenarnya adalah minimum produk yang dipilih itu sendiri — 500, 1,000 atau 2,000 — hingga maksimum platform 2,000,000. Angka lama itu mengecualikan sebelas produk yang minimumnya 500.
- Katalog error mencantumkan empat kode yang tidak pernah dikembalikan API. Halaman dokumen lama platform menyebut
not_found,result_not_ready,result_expireddanvalidation_failed; implementasinya tidak menghasilkan satu pun di antaranya, dan respons tersebut sama sekali tidak membawa fieldcode. Tabel kini mencantumkan 22 kode yang benar-benar dikembalikan API, dan tabel kedua mendokumentasikan kondisi tanpa kode — dengan peringatan bagi siapa pun yang mem-porting keempat cabang tersebut. - Contoh respons kehilangan field yang sebenarnya dikembalikan API.
series,charged_amountdanrefunded_amountpada respons realtime;idempotent_replaydanrecovery_pendingpada pengiriman massal; serta sepuluh penghitung progres tugas termasuksubmitted,prefiltered,deduped,stage,last_progress_atdanfailure_message. - Batas laju menyebut endpoint yang salah. Baris realtime menyebut
POST /v1/realtime/check/phone; batasnya berlaku untukPOST /v1/realtime/check/{series}, termasuk email. - Header respons dijelaskan secara keliru. Halaman batas laju menyiratkan seluruh rangkaian header muncul pada setiap respons. Tidak demikian: bucket realtime hanya melaporkan
X-RateLimit-Remainingsaat berhasil dan tidak pernahX-RateLimit-Limit, danX-RateLimit-Resethanya muncul pada429umum atau deteksi. Halaman itu kini menyebutkan header mana muncul di mana. - Model kunci dijelaskan secara keliru. Halaman keamanan menyatakan bahwa sebuah akun hanya menyimpan satu kunci pada satu waktu. Sebuah akun dapat menyimpan beberapa kunci aktif, dan Konsol membuat, meregenerasi, serta menghapusnya satu per satu — jadi rotasi bertahap tanpa downtime dapat dilakukan, dan regenerasi di tempat adalah varian yang tanpa tumpang tindih.
GET /v1/api-keymelaporkan kunci aktif terbaru, bukan inventaris, danlast_used-nya ditulis paling banyak sekali setiap lima menit. - ID versus slug dijelaskan secara keliru. Glosarium menyatakan bahwa ID atau slug yang tertukar ditolak sebagai
product_mode_not_supported. Pada endpoint realtime,product_idsdivalidasi sebagai array bilangan bulat, sehingga slug ditolak lebih awal sebagai400 invalid_realtime_request;422 product_mode_not_supportedadalah jawaban endpoint massal terhadap produk realtime. - Halaman format respons bertentangan dengan halaman saldo soal mata uang. Satu menyebut “mata uang penagihan akun”, yang lain USD. Keduanya kini menyebut USD, sesuai dengan kontrak dan endpoint saldo.
- Satu satuan harga disebutkan tanpa sumber. Massal dijelaskan sebagai “dihargai per 10,000 pemeriksaan”. Katalog tidak mengekspos harga, jadi klaim itu dihapus, bukan dipertahankan.
- Dua koreksi baru sampai ke halaman yang ditulis tangan. Pernyataan mata uang dan klaim “per 10,000 pemeriksaan” telah diperbaiki pada halaman bahasa Inggris dan Tionghoa Sederhana, tetapi tabel string yang menghasilkan tujuh locale lainnya masih membawanya, sehingga tujuh locale terus menerbitkan keduanya. Keduanya juga dikoreksi di dalam tabel.
/examples/adalah halaman yang berbeda di setiap locale. Halaman bahasa Inggris berupa pusat navigasi singkat, sedangkan delapan lainnya menampilkan panduan massal lima langkah. Bahasa Inggris kini sama dengan panduan tersebut, sehingga kesembilan locale memuat konten yang sama.
Dokumentasi · Perbaikan
- Tabel parameter diam-diam kehilangan kolom deskripsinya di ketujuh locale yang dihasilkan. Helper bersama mengeluarkan header tiga kolom untuk baris empat sel, dan GFM membuang setiap sel melebihi lebar header — jadi misalnya dalam bahasa Spanyol, nilai “Wajib” tampil di bawah judul “Deskripsi” dan deskripsinya sendiri hilang, pada tiga halaman di tujuh locale. Helper itu kini mengambil bentuk kolom yang eksplisit dan menggagalkan build pada baris yang tidak rapi, dan pengaman tahap dist memeriksa ulang setiap tabel yang dirender di setiap locale secara independen.
- Locale yang dihasilkan menampilkan header kolom tabel produk, catatannya, dan baris sinkronisasinya dalam bahasa Inggris, dan backtick pada catatan itu sampai ke browser sebagai karakter literal. Teks komponen kini berasal dari tabel string yang diterjemahkan, dan terjemahan yang hilang menggagalkan build alih-alih memakai fallback.
Berlangganan perubahan
Section titled “Berlangganan perubahan”Belum ada feed. Sampai ada, sinyal yang andal adalah kontrak:
npm run openapi:checkdalam tugas terjadwal — perintah ini keluar dengan status non-nol begitu dokumen yang diterbitkan berbeda dari salinan yang Anda vendor. Lihat OpenAPI untuk kedua URL tersebut.