API Docs — Temp Mail

API terbuka, tanpa API key. Pakai domain mana pun: oot.web.id, ruru.my.id, atau workers.dev. Semua respons berbentuk JSON. Inbox bersifat publik: siapa pun yang tahu alamatnya bisa membaca isinya, jadi jangan pakai untuk hal sensitif.

Contoh Cepat

Buat alamat, tunggu email masuk, lalu baca inbox-nya.

curl "https://oot.web.id/api/random?domain=oot.web.id"
curl "https://oot.web.id/api/inbox?address=ALAMAT"
curl "https://oot.web.id/api/message?address=ALAMAT&id=ID_PESAN"

Buka Inbox Lewat URL

Alamat juga bisa dibuka langsung lewat URL, jadi inbox bisa disimpan sebagai bookmark atau dibagikan lewat link: https://oot.web.id/nama@oot.web.id. Begitu alamat dibuat atau dipilih di web, URL halaman otomatis berubah mengikuti alamatnya. Buka link itu kapan pun untuk melihat inbox yang sama lagi (pesan tetap hilang sendiri setelah 24 jam).

GET Daftar Domain

Ambil semua domain email yang tersedia.

/api/domains

{
  "domains": ["ruru.my.id", "oot.web.id"]
}

GET Buat Email Acak

Buat alamat email acak. Alamat langsung bisa menerima email, tidak perlu didaftarkan.

/api/random?domain={domain}

ParameterKeterangan
domainSalah satu domain dari /api/domains (default ruru.my.id)
{
  "address": "k3x9pq2a7b@oot.web.id"
}

GET Buat Email Custom

Buat alamat email dengan nama pilihan sendiri.

/api/custom?username={nama}&domain={domain}

ParameterKeterangan
username wajib3-32 karakter: huruf kecil, angka, titik, strip, underscore
domainSalah satu domain dari /api/domains (default ruru.my.id)
{
  "address": "tokoku@oot.web.id"
}

GET Baca Inbox

Ambil semua email masuk untuk sebuah alamat. Hasilnya array, kosong kalau belum ada email.

/api/inbox?address={email}

ParameterKeterangan
address wajibAlamat email, misal nama@oot.web.id
{
  "address": "tokoku@oot.web.id",
  "messages": [
    {
      "id": "a1b2c3",
      "from": "Canva <no-reply@canva.com>",
      "subject": "Kode verifikasi Anda: 482913",
      "date": "Wed, 28 Oct 2026 13:18:26 GMT",
      "ts": 1793192306000,
      "snippet": "Gunakan kode 482913 untuk ..."
    }
  ]
}

GET Baca Satu Pesan

Ambil isi lengkap satu pesan (teks bersih, tanpa tag HTML).

/api/message?address={email}&id={id}

ParameterKeterangan
address wajibAlamat email pemilik inbox
id wajibID pesan dari endpoint Baca Inbox
{
  "id": "a1b2c3",
  "address": "tokoku@oot.web.id",
  "from": "Canva <no-reply@canva.com>",
  "subject": "Kode verifikasi Anda: 482913",
  "date": "Wed, 28 Oct 2026 13:18:26 GMT",
  "ts": 1793192306000,
  "text": "Gunakan kode 482913 untuk ...",
  "snippet": "Gunakan kode 482913 untuk ..."
}

GET Cek Email Baru

Endpoint ringan untuk polling. Cek apakah ada email baru sejak waktu tertentu (Unix timestamp, detik). Panggil tiap beberapa detik, lalu ambil inbox kalau new = true.

/api/poll?address={email}&since={timestamp}

ParameterKeterangan
address wajibAlamat email
sinceUnix timestamp terakhir dicek, detik (default 0)
{
  "address": "tokoku@oot.web.id",
  "new": true,
  "count": 2,
  "latest": 1793192306
}

POST Hapus Email

Hapus satu email dari inbox. Kirim sebagai JSON.

/api/delete

FieldKeterangan
address wajibAlamat email pemilik inbox
id wajibID pesan dari endpoint Baca Inbox
curl -X POST "https://oot.web.id/api/delete" -H "Content-Type: application/json" -d '{"address": "tokoku@oot.web.id", "id": "a1b2c3"}'
{
  "success": true
}

Polling dengan JavaScript

var API = "https://oot.web.id";
var email = await fetch(API + "/api/random?domain=oot.web.id").then(function (r) { return r.json(); }).then(function (d) { return d.address; });
console.log("alamat:", email);
var since = 0;
for (var i = 0; i < 24; i++) {
  var poll = await fetch(API + "/api/poll?address=" + encodeURIComponent(email) + "&since=" + since).then(function (r) { return r.json(); });
  if (poll.new) {
    var inbox = await fetch(API + "/api/inbox?address=" + encodeURIComponent(email)).then(function (r) { return r.json(); });
    console.log(inbox.messages[0].subject, inbox.messages[0].snippet);
    break;
  }
  since = poll.latest;
  await new Promise(function (res) { setTimeout(res, 5000); });
}

Error

Kalau gagal, respons berisi field error. Selalu cek field ini dulu.

KodeArti
400Alamat atau parameter tidak valid
404Pesan tidak ditemukan / alamat dan ID tidak cocok
405Method salah (hapus email wajib POST)
{
  "error": "alamat tidak valid, pakai @ruru.my.id atau @oot.web.id"
}

Coba Langsung

Hasilnya muncul di sini.

Kembali ke Temp Mail