// REST API

Dokumentasi REST API

Endpoint untuk tool menggunakan GET dan mengembalikan JSON berbentuk { "status": "success", "data": … }. Autentikasi dengan parameter ?api_key= dari halaman API Docs setelah masuk.

Endpoint

Base URL: https://mailsmmo.com

GET/api/v1/services

Layanan — harga & stok

Tanpa ?service= mengembalikan seluruh daftar. Dengan ?service= mengembalikan harga dan stok satu layanan. Tidak perlu kunci API.

Tanpa autentikasi

  • service (opsional) — Kosongkan untuk seluruh daftar; isi kode untuk satu layanan (kode singkat seperti facebook diterima)

Berhasil

{ "status": "success", "data": { "services": [
    { "code": "otp_gmail_facebook", "name": "Facebook", "price": 5000, "stock": 42 }
  ] } }

GET/api/v1/me

Info akun

ID, email, dan saldo dari kunci API yang sedang memanggil.

Perlu Kunci API

Berhasil

{ "status": "success", "data": { "id": "b7e5...-uuid", "email": "demo@mailsmmo.com", "balance": 1000000, "created_at": "2026-01-15T08:30:00Z" } }

GET/api/v1/orders

Buat pesanan

Satu endpoint untuk keduanya: service berupa kode Gmail OTP (otp_gmail_*) memberi 1 kotak surat OTP; berupa kode produk stok (hotmail_*…) membeli sesuai quantity. Saldo dipotong sesuai harga.

Perlu Kunci API

  • service — Kode layanan OTP (otp_gmail_*) atau kode produk stok (mis. hotmail_imap_12m_36m)
  • quantity (opsional) — Hanya untuk email jual putus — jumlah (default 1)
  • unique_key (opsional) — UUID buatan sendiri — pengiriman ulang tidak membuat/memotong dua kali

Berhasil

{ "status": "success", "data": {
    "id": "b7e5a1c2-3d4e-4f60-8a91-2c3d4e5f6a7b", "email": "zurhansuzu@gmail.com",
    "service": "otp_gmail_facebook", "amount": 5000
  } }

GET/api/v1/orders/otp

Ambil OTP berdasarkan pesanan

Membaca OTP satu pesanan. Tidak perlu kunci API — kode pesanan (order_id) adalah kunci akses.

Tanpa autentikasi

  • order_id — Kode pesanan (dikembalikan saat membuat pesanan)
  • unique_key (opsional) — UUID baru yang dibuat sendiri untuk setiap panggilan
  • from (opsional) — Detik Unix — otp/received_at dihilangkan jika belum ada kode yang lebih baru

Berhasil

{ "status": "success", "data": {
    "otp": "481253", "amount": 5000, "received_at": 1732000000,
    "from": "security@facebookmail.com", "otp_history": [
      { "value": "481253", "received_at": 1732000000 }
    ] } }

GET/api/v1/otp/orders

Daftar pesanan OTP

Pesanan Gmail OTP yang disewa, berhalaman, beserta OTP terbaru setiap pesanan.

Perlu Kunci API

  • page (opsional) — Halaman (default 1)
  • page_size (opsional) — Baris per halaman (default 20, maks. 200)

Berhasil

{ "status": "success", "data": { "orders": [
    { "id": "b7e5a1c2-3d4e-4f60-8a91-2c3d4e5f6a7b", "email": "...", "service": "otp_gmail_facebook",
      "latest_otp": "481253", "latest_link": null }
  ], "page": 1, "page_size": 20, "total": 137 } }

GET/api/v1/mail

Baca semua surat

Semua surat dari satu kotak surat, beserta OTP/tautan yang sudah diekstrak.

Perlu Kunci API

  • order_id — Kode pesanan

Berhasil

{ "status": "success", "data": { "count": 1, "messages": [
    { "id": 88, "from": "...", "subject": "...", "otp": "481253", "received_at": "..." }
  ] } }

kode galat umum

{ "status": "error", "message": "out_of_stock", "retryable": true }
  • unauthorized — Kunci API tidak valid atau tidak ada (HTTP 401)
  • invalid_request — Parameter permintaan tidak valid (HTTP 400)
  • not_found — Layanan, pesanan, atau endpoint tidak ditemukan (HTTP 404)
  • insufficient_balance — Saldo tidak mencukupi (HTTP 402)
  • out_of_stock — Stok habis (HTTP 409) — Gmail OTP: retryable, coba lagi beberapa detik; email beli putus: tunggu restok
  • service_unavailable — Server sementara belum dapat menyelesaikan pesanan — ulangi dengan unique_key yang sama (HTTP 503, dapat diulang)
  • in_progress — Pesanan sedang diproses atau mungkin sudah ada di penyedia — ulangi dengan unique_key yang sama (HTTP 409, dapat diulang)
  • forbidden — Tidak memiliki izin atas sumber daya ini (HTTP 403)
  • idempotency_mismatch — unique_key sudah dipakai untuk permintaan lain — gunakan unique_key baru (HTTP 422)
  • order_cancelled — Pesanan dilepas sebelum ditagih, belum ditagih — coba lagi (HTTP 409, retryable)
  • too_many_requests — Terlalu banyak permintaan — tunggu lalu coba lagi (HTTP 429, retryable)
  • auth_unavailable — API key belum bisa diverifikasi saat ini, key tidak rusak — coba lagi (HTTP 503, retryable)
  • shutting_down — Server sedang dimulai ulang — coba lagi beberapa detik lagi (HTTP 503, retryable)
  • payload_too_large — Permintaan terlalu besar (HTTP 413)
  • internal_server_error — Kesalahan sistem, silakan coba lagi nanti (HTTP 500)

Dokumentasi untuk AI dan tool

Dokumentasi lengkap dalam format Markdown ada di https://mailsmmo.com/llms.txt — tempel ke Cursor, Claude, atau ChatGPT untuk membuat kode integrasi.

Coba ulang dengan aman memakai unique_key

Kirim unique_key (UUID buatan sendiri) di setiap pesanan. Jika koneksi terputus, coba ulang dengan unique_key yang sama: Anda mendapatkan pesanan yang sama, tanpa pesanan baru dan tanpa potongan kedua.

Format error

Saat terjadi error, respons hanya berisi status, message (kode error dalam snake_case) dan retryable, yang memberi tahu apakah Anda perlu mencoba lagi.

Mulai gunakan MailSMMO

Daftar gratis, isi saldo dompet, dan sewa email pertama Anda dalam hitungan menit.

Buat akun →