API inboxsink
Kotak sekali pakai yang bisa dikendalikan lewat kode, untuk menguji alur pendaftaran tanpa bergantung pada kotak surat sungguhan. Lima rute, satu basis di https://inboxsink.com, JSON.
Rute yang benar-benar mengubah sesuatu adalah wait: ia memblokir sampai pesan tiba. Tanpa itu, pengujian ujung ke ujung menebak dengan sleep dan menjadi rapuh begitu antrean pengiriman melambat.
Seribu panggilan per bulan, tanpa kartu. Cukup untuk memasangnya ke rangkaian pengujian Anda dan melihat apakah bertahan.
Nanti, ketika pengujian Anda mulai ditolak: domain milik Anda tidak dipublikasikan di mana pun, jadi tidak masuk daftar hitam — 29 € per bulan.
Klien JavaScript
Paket tanpa dependensi apa pun, untuk Node 18 ke atas. Kodenya ada di GitHub.
npm i inboxsink
import { InboxSink } from 'inboxsink'; const sink = new InboxSink(process.env.INBOXSINK_API_KEY); const inbox = await sink.createInbox(); const code = await sink.waitForOtp(inbox.id); // '204815'
waitForOtp melempar galat alih-alih mengembalikan null ketika tidak ada kode yang datang: sebuah pengujian harus gagal dengan keras, bukan diam-diam mengisi kolom kosong.
Autentikasi
Satu header Authorization di setiap panggilan. Kunci dibuat dari panel dan diawali ibsk_.
curl -H "Authorization: Bearer ibsk_…" \
https://inboxsink.com/v1/domains
Kunci dalam bentuk terbaca hanya ditampilkan saat pembuatan. Setelah itu hanya awalannya yang terlihat — kami hanya menyimpan sidik jarinya.
Membuat kotak
Semua parameter bersifat opsional: domain (bawaannya domain acak dari kumpulan), prefix (bawaannya acak), ttl_seconds (60 detik sampai 30 hari).
curl -X POST https://inboxsink.com/v1/inboxes \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"ttl_seconds": 900}' → 201 { "id": "42", "address": "9f2c1a@mailhusk.com", "expires_at": "2026-09-01T15:12:00Z" }
Kotak yang dibuat lewat API bersifat privat: hanya kunci yang membuatnya yang bisa membacanya.
Menunggu pesan
Memblokir sampai sebuah pesan tiba, lalu langsung menjawab. timeout dalam milidetik (bawaan 30 000, maksimum 120 000), since untuk hanya menerima pesan setelah suatu pengenal.
Menjawab 204 tanpa isi bila waktunya habis tanpa pesan — itu bukan galat, itu jawaban normal untuk «tidak ada yang datang».
curl -H "Authorization: Bearer $KEY" \ "https://inboxsink.com/v1/inboxes/42/wait?timeout=45000" → 200 { "message": { "id": "913", "from": "no-reply@acme.com", "subject": "…", "otp": "204815", "link": "https://acme.com/confirm/9f3a" } }
otp dan link sudah diambil untuk Anda. Kode hanya dilaporkan bila pesannya memang mengumumkan satu («kode», «verifikasi», «masuk»…) — jumlah tagihan atau angka tahun tidak akan pernah dikira kode.
Mendaftar pesan
Menerima since dan limit (bawaan 50, maksimum 200). Mengembalikan ringkasan, tanpa isi pesan.
Membaca pesan
Pesan lengkap: text, html, headers dan daftar lampiran.
Menghapus kotak
Menghapus kotak dan pesannya seketika. Menjawab 204.
Galat
| 204 | Tanpa isi — untuk wait, waktunya habis tanpa pesan |
| 400 | Parameter tidak sah |
| 401 | Kunci tidak ada, tidak dikenal, atau dicabut |
| 403 | Kotak itu milik kunci lain |
| 404 | Kotak atau pesan tidak ada, atau sudah kedaluwarsa |
| 429 | Terlalu banyak panggilan |
Batas dan masa hidup
Kotak dari kumpulan publik hidup satu jam; yang dibuat lewat API mengikuti ttl_seconds masing-masing, sampai tiga puluh hari. Setelah itu kotak dan pesannya dihapus — tidak ada arsip yang bisa diambil kemudian.
Pesan di atas sepuluh megabita ditolak saat diterima. Alamat pada domain yang tidak dikenal ditolak selama sesi SMTP, tanpa menghasilkan pantulan.
Kotak ini tidak bisa mengirim surat, dan itu disengaja: pesan yang dikirim dari domain sekali pakai tidak akan sampai ke mana pun.