📡 API Documentation

Integrasikan Sphixmail ke bot, app, atau script menggunakan REST API v1. Semua endpoint membutuhkan API Key dari Admin Panel, kecuali OTP polling.

Buat API Key di Admin Panel → API Keys, lalu tempel di sini untuk mengaktifkan tombol Try It Out.
Base URL
https://sphixmail.example.com
Autentikasi
/pub/[endpoint]/[apikey]
API key ditempatkan langsung di URL path. Buat key di Admin → API Keys.
🌐 Domains
GET /pub/domains/[apikey] List domain aktif ▶
Parameters
ParamTipeDeskripsi
[apikey]pathAPI Key dari Admin Panel
Example Request
curl https://sphixmail.example.com/pub/domains/YOUR_API_KEY
Example Response
{"success":true,"count":2,"domains":[{"domain":"mail.example.com","type":"open","added_at":"2026-01-01T00:00:00Z"}]}
Response
✉ Email
GET /pub/email/[email]/[apikey] Validasi email ▶
Parameters
ParamTipeDeskripsi
[email]pathAlamat email lengkap (URL-encoded)
[apikey]pathAPI Key dari Admin Panel
Example Request
curl https://sphixmail.example.com/pub/email/user%40mail.example.com/YOUR_API_KEY
Example Response
{"success":true,"email":"user@mail.example.com","local":"user","domain":"mail.example.com","message":"Email is valid and ready to use"}
Response
📬 Messages
GET /pub/messages/[email]/[apikey] Ambil semua pesan ▶
Parameters
ParamTipeDeskripsi
[email]pathAlamat email inbox
[apikey]pathAPI Key
limitqueryBatas jumlah pesan (opsional, default: semua)
Example Request
curl "https://sphixmail.example.com/pub/messages/user%40mail.example.com/YOUR_API_KEY?limit=10"
Example Response
{"success":true,"email":"user@mail.example.com","count":1,"messages":[{"id":"msg_123","from":"noreply@github.com","subject":"Verify your email","preview":"Click the link...","body_text":"...","body_html":"...","received_at":"2026-09-10T00:00:00Z"}]}
Response
DELETE /pub/message/[message_id]/[apikey] Hapus pesan ▶
Parameters
ParamTipeDeskripsi
[message_id]pathID pesan (dari endpoint messages)
[apikey]pathAPI Key
Example Request
curl -X DELETE https://sphixmail.example.com/pub/message/msg_abc123/YOUR_API_KEY
Example Response
{"success":true,"message":"Message deleted successfully","deleted_id":"msg_abc123"}
📊 Stats
GET /pub/stats/[apikey] Statistik sistem ▶
Parameters
ParamTipeDeskripsi
[apikey]pathAPI Key
filtersqueryComma-separated: most_popular_receiver, total_messages, unread_messages, latest_messages (default: semua)
Example Request
curl "https://sphixmail.example.com/pub/stats/YOUR_API_KEY?filters=total_messages,unread_messages"
Response
⚡ OTP Long-Polling
GET /pub/inbox/[email]/wait-otp/[apikey] Tunggu OTP masuk ▶
Parameters
ParamTipeDeskripsi
[email]pathAlamat email inbox
[apikey]pathAPI Key dari Admin Panel
timeoutqueryMax detik tunggu (default: 30, max: 60)
subject_containsqueryFilter subject (opsional)
afterqueryHanya ambil pesan setelah message_id ini
Example Request
curl "https://sphixmail.example.com/pub/inbox/user%40mail.example.com/wait-otp/YOUR_API_KEY?timeout=30&subject_contains=OTP"
Response (found)
{"found":true,"message":{"id":"msg_abc","from":"noreply@service.com","subject":"Your OTP","received_at":"2026-09-10T00:00:00Z"},"otp":"123456"}
Response (timeout)
{"found":false,"message":"Timeout - no email received"}
ℹ OTP diekstrak dengan regex \b\d{4,8}\b dari body. Endpoint ini membutuhkan API key untuk security dan rate limiting.