Agen AI bisa mendaftar ke sebuah layanan, memulai job, atau membuat tiket dukungan, lalu alurnya berhenti, karena jawabannya tiba di tempat yang tidak dihuni agen: kotak masuk email. Kode verifikasi, kuitansi, notifikasi “ekspor Anda sudah siap”, reset kata sandi. Email adalah mekanisme callback tertua di internet, dan agen tidak punya alamat.
Artikel ini menunjukkan solusi terkecil yang bisa kami buat. Satu panggilan API, tanpa pendaftaran, mengembalikan alamat email yang berfungsi, dan email yang masuk ke alamat itu menjadi event terstruktur yang dibaca kembali oleh agen lewat HTTP, di log event yang sama dengan tempat webhook-nya mendarat.
TL;DR
POST https://anyhook.net/api/v1/quickstart(tanpa auth) mengembalikaninbox_addresssepertiq-cd3fe0f8.quickstart@anyhook.net, ditambahinbound_urlwebhook dan kunci API- Email yang dikirim ke alamat itu menjadi event
email.received:from,to,subject,message_id, dan pesan MIME mentah yang lengkap - Agen menampilkan daftar event dengan
GET /api/v1/eventsdan membaca satu event denganGET /api/v1/events/{id}, atau lewat MCP dengananyhook_inbox/anyhook_events/anyhook_inspect(registry:net.anyhook/anyhook, endpoint jarak jauhhttps://anyhook.net/mcp) - Hanya menerima. Kotak masuk ini tidak bisa mengirim atau membalas, dan itu batas yang disengaja, bukan celah di roadmap
- Endpoint gratis kedaluwarsa dalam 7 hari kecuali diklaim; paket Free dibatasi 1.000 event/hari
Satu panggilan itu
curl -X POST https://anyhook.net/api/v1/quickstart
{
"inbound_url": "https://in.anyhook.net/q-cd3fe0f8/quickstart",
"inbox_address": "q-cd3fe0f8.quickstart@anyhook.net",
"api_key": "ahk_live_…",
"claim_url": "https://anyhook.net/claim/…",
"expires_at": "2026-08-06T…"
}
Anda tidak membuat akun, memecahkan captcha, atau mengeklik layar persetujuan OAuth. Itu penting karena pemanggil di sini sering kali bukan manusia. Pemanggilnya adalah agen yang sedang di tengah tugas, dan setiap formulir pendaftaran di alurnya adalah tempat tugas itu mati. Endpoint ini sementara (7 hari) sampai manusia mengeklaimnya lewat claim_url, dan itu juga batas atas penyalahgunaan: tidak ada yang anonim yang bertahan melewati TTL-nya.
App yang sama kini menjawab di dua jalur transport:
| Transport | Alamat |
|---|---|
| Webhook HTTP | https://in.anyhook.net/q-cd3fe0f8/quickstart |
q-cd3fe0f8.quickstart@anyhook.net |
Keduanya mengisi satu log event, jadi “tunggu webhook Stripe” dan “tunggu email konfirmasi” adalah operasi yang sama dari sisi agen: lakukan polling ke API event, periksa payload-nya.
Menjadi apa sebuah email
Kirim email apa pun ke alamat itu. Dalam hitungan detik, email itu muncul sebagai event:
{
"type": "email.received",
"from": "noreply@github.com",
"to": "q-cd3fe0f8.quickstart@anyhook.net",
"subject": "Your verification code is 481920",
"message_id": "<abc123@mail.example.com>",
"date": "Thu, 30 Jul 2026 11:42:31 +0700",
"size": 7026,
"raw": "Received: from …"
}
raw adalah pesan MIME yang lengkap dan tidak diubah: setiap header, setiap bagian, setiap lampiran, persis seperti saat tiba. Field metadata hanya untuk kemudahan; pesan mentah adalah sumber kebenarannya. Untuk kasus agen yang paling umum, mengambil kode dari email verifikasi, baris subjek saja biasanya sudah cukup. Untuk yang lebih kaya, parse MIME-nya dengan library standar bahasa pemrograman Anda. Memang untuk itulah library itu ada.
Membacanya kembali:
curl https://anyhook.net/api/v1/events \
-H "Authorization: Bearer ahk_live_…"
# the list carries no payloads; this returns one event with its body
curl https://anyhook.net/api/v1/events/<id> \
-H "Authorization: Bearer ahk_live_…"
Lewat MCP
Jika agen berbicara MCP, ia tidak pernah menyentuh curl. Server ini terdaftar di registry MCP resmi sebagai net.anyhook/anyhook, dalam bentuk paket npm anyhook-mcp dan endpoint streamable-HTTP jarak jauh di https://anyhook.net/mcp:
anyhook_quickstartlangsung mengembalikaninbox_address(di paket npm, dijalankan tanpa kunci; endpoint jarak jauh butuh kunci API atau masuk terlebih dulu)anyhook_inboxmengembalikan alamat untuk App yang sudah ada, beserta URL webhook-nyaanyhook_events/anyhook_inspectmembaca apa yang tiba
Tool mulai cepat itulah seluruh proses onboarding. Agen yang menemukan server ini di registry bisa membuat kotak masuk untuk dirinya sendiri dan mulai menerima tanpa manusia dalam alurnya. Manusia masuk belakangan, kalau pun pernah, untuk mengeklaim akunnya.
Cara kerjanya (dan mengapa alamatnya berbentuk seperti itu)
Di balik layar, sengaja tidak ada pipeline kedua:
- Catch-all Cloudflare Email Routing menyerahkan setiap pesan untuk domain itu ke Worker edge yang sama yang menerima webhook
- Worker memecah local part alamat pada titik terakhirnya:
{user-slug}.{app-slug}@anyhook.net. Slug disanitasi menjadi[a-z0-9-]saat dibuat, jadi slug tidak pernah bisa berisi titik, dan itu membuat pemecahannya tidak ambigu sejak dari desainnya - Pesan dikemas ulang menjadi permintaan HTTP yang semestinya, dan semua yang ada di downstream, yaitu kuota, batas payload, antrean, percobaan ulang (retry), pengiriman ke tujuan Anda, dan log event, melewati jalur kode yang persis sama dengan webhook
Email yang tidak cocok dengan App sungguhan ditolak di tahap SMTP, bukan ditelan diam-diam. Pengirim yang tidak menerima error akan menganggap emailnya terkirim. Pesan yang terlalu besar dipantulkan dengan cara yang sama.
Dua sifat terbawa dari sisi webhook tanpa biaya tambahan. Body pesan dienkripsi AES-256-GCM sebelum menyentuh database. Dan hash setiap event digabungkan ke rantai per App yang disegel setiap hari, dengan root setiap hari di-commit ke repository git publik yang kredensialnya tidak dipegang AnyHook. Jika kami menyunting email yang tersimpan setelah harinya disegel, anchor yang sudah dipublikasikan tidak akan lolos verifikasi lagi.
Apa yang tidak dilakukannya
Kotak masuk ini tidak mengirim. Tidak ada balasan, tidak ada email keluar, tidak ada kredensial SMTP. Pengiriman adalah tempat deliverability, keselarasan SPF/DKIM, reputasi IP, dan tanggung jawab atas spam berada. Itu disiplin yang berbeda dengan mode kegagalan yang berbeda. Jika agen Anda butuh email percakapan dua arah yang lengkap sebagai produk, kategori itu ada (AgentMail mendapat pendanaan tepat dengan tesis itu). Kotak masuk khusus penerimaan yang ditempelkan ke relay webhook adalah hal yang lebih sempit: satu log event untuk semua yang masuk.
Ini bukan layanan email sekali pakai. Penggunaan yang dimaksud adalah email yang dihasilkan sistem Anda sendiri: konfirmasi untuk akun yang dioperasikan agen Anda secara sah, notifikasi dari layanan yang Anda integrasikan, kuitansi dari alur Anda sendiri. Endpoint gratis dikenai rate limit, dibatasi, dan kedaluwarsa, dan pola penyalahgunaan diblokir. Jika ketentuan sebuah layanan melarang pendaftaran otomatis, kotak masuk tidak mengubahnya.
Ini polling, bukan push. Agen bertanya “apa yang sudah tiba?”, dan tidak ada yang membangunkannya. Saat Anda butuh latensi lebih rendah, pasang destination_url, dan event diteruskan ke server Anda sendiri begitu tiba. Email itu menjadi webhook.
Coba sendiri
# 1. mint an inbox (no signup)
curl -X POST https://anyhook.net/api/v1/quickstart
# 2. send any email to the inbox_address you got back
# 3. find it, then read it
curl https://anyhook.net/api/v1/events -H "Authorization: Bearer <api_key>"
curl https://anyhook.net/api/v1/events/<id> -H "Authorization: Bearer <api_key>"
Total waktu penyiapannya sama dengan lamanya email di langkah 2 tiba.