API Documentation
Base URL:
Authentication
Tidak perlu API key. Semua endpoint terbuka. Cocok untuk integrasi bot, script, dan web lain.
Endpoints
GET/api/health
Cek status server dan domain yang aktif.
# curl
curl
Response:
{ "status": "ok", "domain": "sisuryax.com" }
POST/api/inbox/create
Buat email temporer baru. Random atau custom username.
Body (optional): { "username": "customuser", "domain": "sisuryax.com" }
# random email
curl -X POST \
-H "Content-Type: application/json" \
-d '{}'
# custom username
curl -X POST \
-H "Content-Type: application/json" \
-d '{"username":"myname"}'
Response:
{ "sessionId": "uuid", "address": "abc123@sisuryax.com", "domain": "sisuryax.com" }
POST/api/inbox/change
Ganti ke email custom (username wajib).
Body: { "username": "newuser", "domain": "sisuryax.com" }
curl -X POST \
-H "Content-Type: application/json" \
-d '{"username":"newuser"}'
POST/api/inbox/login
Login ke email yang sudah ada. Cek apakah pernah menerima email dan return semua messages.
Body: { "email": "nama@sisuryax.com" }
curl -X POST \
-H "Content-Type: application/json" \
-d '{"email":"nama@sisuryax.com"}'
Response (email ditemukan):
{ "sessionId": "uuid", "address": "nama@sisuryax.com", "hasMessages": true, "registered": true, "count": 3, "messages": [...] }
GET/api/inbox/{email}/messages
Ambil semua email yang masuk ke alamat tersebut.
Path param: email — alamat lengkap (mis: abc@sisuryax.com)
curl
GET/api/inbox/{email}/message/{id}
Ambil detail satu email berdasarkan ID.
curl
Python Example
import requests
BASE = "https://email.sisuryax.com"
# 1. Create email
r = requests.post(f"{BASE}/api/inbox/create", json={})
addr = r.json()["address"]
print(f"Email: {addr}")
# 2. Wait and check messages
import time; time.sleep(10)
r = requests.get(f"{BASE}/api/inbox/{addr}/messages")
msgs = r.json()["messages"]
for m in msgs:
print(f"[{m['subject']}] from {m['from']}")
print(m["body"][:200])
JavaScript / Bot Example
// Buat email & poll untuk OTP
const BASE = "https://email.sisuryax.com";
const res = await fetch(`${BASE}/api/inbox/create`, {
method: "POST",
headers: {"Content-Type": "application/json"},
body: "{}"
});
const { address } = await res.json();
// Poll messages setiap 5 detik
setInterval(async () => {
const r = await fetch(`${BASE}/api/inbox/${address}/messages`);
const { messages } = await r.json();
console.log(`${messages.length} emails`);
}, 5000);
Notes
— Email ke *@sisuryax.com diteruskan via Cloudflare Catch-All ke Gmail
— Server baca Gmail via IMAP, filter berdasarkan header To:
— Email baru muncul dalam ~5-15 detik setelah diterima
— Rate limit: max ~30 request/menit
— HTML email di-render dalam sandboxed iframe (aman dari XSS)