SultanDermawan mendonasikan Rp10.000 | tawdawd
Anonim mendonasikan Rp25.000 | Sedikit rezeki buat flashmail. Sangat ngebantu nyaring email spam.
Rian_WebDev mendonasikan Rp150.000 | Patungan buat beli kopi developer + bayar sewa server biar ga kena RTO. Semangat!
Hamba Allah mendonasikan Rp50.000 | Makasih bang, email routingnya lancar jaya buat testing project kuliah
API AKSES OTOMASI

FlashMail API Documentation

Integrasikan pembuatan email sementara langsung ke dalam skrip pengujian, bot otomatis, atau aplikasi Anda dengan dokumentasi RESTful yang bersih.

External REST API Console

Integrasikan layanan email sementara dengan endpoint publik kami secara aman.

Base URL: https://flashmail.biz.id/webapi/v1
Skema Autentikasi & Keamanan (HMAC SHA-256)

Semua request ke API memerlukan validasi kredensial client_id pada body request serta header autentikasi yang divalidasi menggunakan algoritma HMAC SHA-256. Request yang dikirim memiliki masa berlaku maksimal 5 menit (300 detik).

Required HTTP Headers:
Header Key Tipe Deskripsi
X-Timestamp Integer Unix Epoch Timestamp dalam detik.
X-Nonce String String acak unik per request untuk mencegah Replay Attack.
X-Signature String Hasil kalkulasi HMAC-SHA256 dari gabungan payload menggunakan Secret Key Anda.
Contoh Generator Signature (PHP):
SignatureGenerator.php
$clientId  = "YOUR_CLIENT_ID";
$secretKey = "YOUR_SECRET_KEY";
$timestamp = time();
$nonce     = bin2hex(random_bytes(16));

$jsonBody  = json_encode(['client_id' => $clientId]);
$bodyHash  = hash('sha256', $jsonBody);

$payload   = implode('|', [$clientId, $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $payload, $secretKey);

$headers = [
    "Content-Type: application/json",
    "X-Timestamp: {$timestamp}",
    "X-Nonce: {$nonce}",
    "X-Signature: {$signature}"
];
POST /credential/check
Rate Limit: 30 Req/Min

Digunakan untuk memverifikasi apakah Client ID, Secret Key, dan Signature yang dibuat sudah valid.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "code": 200,
    "message": "Credential Valid",
    "data": {
        "user_id": 1,
        "name": "Developer"
    },
    "server_time": 1785721000
}
POST /domains
Rate Limit: 30 Req/Min

Mengambil daftar domain publik dan privat milik Anda yang berstatus aktif untuk digunakan pembuatan email.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Daftar domain aktif berhasil diambil.",
    "data": [
        {
            "uuid": "2b8a0c6d-3e81-427a-a63e-9189b274cfb1",
            "domain": "flashmail.id",
            "type": "public",
            "expired_at": null,
            "created_at": "2026-01-10T08:00:00.000000Z"
        }
    ]
}
POST /generate
Rate Limit: 15 Req/Min

Membuat alamat email sementara baru pada domain aktif yang dipilih. Mengembalikan token khusus untuk membuka inbox.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
domain String Wajib Nama domain aktif (misal: flashmail.id).
username String Opsional Custom username awal email. Jika dikosongkan, sistem generate otomatis.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Email temporary berhasil dibuat.",
    "data": {
        "email": "[email protected]",
        "token": "7a918e24c5b3d6f1a8e93210457621c9",
        "expired_at": "2026-07-31 13:15:49"
    }
}
POST /inbox
Rate Limit: 60 Req/Min

Mengambil daftar ringkasan email masuk pada kotak pesan sementara berdasarkan token email.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
token String Wajib Token email dari endpoint /generate.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Daftar pesan berhasil diambil.",
    "data": {
        "email": "[email protected]",
        "expired_at": "2026-07-31 13:15:49",
        "messages": [
            {
                "uuid": "e8d91a20-4f5b-11ee-be56-0242ac120002",
                "from_email": "[email protected]",
                "from_name": "Verification Service",
                "subject": "Kode Verifikasi Akun Anda",
                "received_at": "2026-07-30 12:00:00",
                "is_seen": false,
                "attachments_count": 0
            }
        ]
    }
}
POST /message
Rate Limit: 30 Req/Min

Membaca detail isi konten pesan email (HTML/Text) beserta parsing otomatis link verifikasi/OTP.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
token String Wajib Token email sementara.
uuid String Wajib UUID pesan spesifik dari list /inbox.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Detail pesan berhasil diambil.",
    "data": {
        "uuid": "e8d91a20-4f5b-11ee-be56-0242ac120002",
        "subject": "Kode Verifikasi Akun Anda",
        "from": {
            "name": "Verification Service",
            "email": "[email protected]"
        },
        "html_body": "<p>Kode verifikasi Anda adalah <b>884920</b></p>",
        "text_body": "Kode verifikasi Anda adalah 884920",
        "links": [],
        "received_at": "2026-07-30 12:00:00",
        "attachments": []
    }
}
POST /delete-email
Rate Limit: 15 Req/Min

Menghapus akun email sementara secara permanen berdasarkan token email.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
token String Wajib Token email yang ingin dihapus.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Email temporary berhasil dihapus."
}
POST /delete-message
Rate Limit: 30 Req/Min

Menghapus satu pesan masuk spesifik berdasarkan uuid pesan dan token email.

Request Body (JSON):
Field Tipe Status Deskripsi
client_id String Wajib Client ID akun Anda.
token String Wajib Token email sementara.
uuid String Wajib UUID pesan yang ingin dihapus.
Response Contoh (200 OK):
JSON Response
{
    "success": true,
    "message": "Pesan berhasil dihapus."
}