// REST API

เอกสาร REST API

เอนด์พอยต์สำหรับเครื่องมือใช้ GET และตอบกลับเป็น JSON ในรูปแบบ { "status": "success", "data": … } ยืนยันตัวตนด้วยพารามิเตอร์ ?api_key= จากหน้า API Docs หลังเข้าสู่ระบบ

เอนด์พอยต์

Base URL: https://mailsmmo.com

GET/api/v1/services

บริการ — ราคาและสต็อก

ถ้าไม่ระบุ ?service= จะส่งคืนรายการทั้งหมด ถ้าระบุ ?service= จะส่งคืนราคาและสต็อกของบริการเดียว ไม่ต้องใช้ API key

ไม่ต้องยืนยันตัวตน

  • service (ไม่บังคับ) — เว้นว่างเพื่อรับรายการทั้งหมด ระบุรหัสเพื่อรับบริการเดียว (รับรหัสแบบย่อเช่น facebook ได้)

สำเร็จ

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

GET/api/v1/me

ข้อมูลบัญชี

ID อีเมล และยอดเงินของ API key ที่เรียกใช้

ต้องใช้ API key

สำเร็จ

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

GET/api/v1/orders

สร้างคำสั่งซื้อ

endpoint เดียวสำหรับทั้งสองแบบ: รหัส Gmail OTP (otp_gmail_*) จะออกกล่องเมล OTP หนึ่งกล่อง รหัสสินค้าในสต็อก (hotmail_*…) จะซื้อตามจำนวน ยอดเงินจะถูกตัดตามราคาที่แสดง

ต้องใช้ API key

  • service — รหัสบริการ OTP (otp_gmail_*) หรือรหัสสินค้าในสต็อก (เช่น hotmail_imap_12m_36m)
  • quantity (ไม่บังคับ) — สำหรับอีเมลที่ขายครั้งเดียวเท่านั้น — จำนวน (ค่าเริ่มต้น 1)
  • unique_key (ไม่บังคับ) — UUID ที่สร้างเอง — ส่งซ้ำจะไม่สร้างหรือตัดเงินซ้ำ

สำเร็จ

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

GET/api/v1/orders/otp

รับ OTP ตามคำสั่งซื้อ

อ่าน OTP ของคำสั่งซื้อหนึ่งรายการ ไม่ต้องใช้ API key — รหัสคำสั่งซื้อ (order_id) คือกุญแจเข้าถึง

ไม่ต้องยืนยันตัวตน

  • order_id — รหัสคำสั่งซื้อ (ได้รับเมื่อสร้างคำสั่งซื้อ)
  • unique_key (ไม่บังคับ) — UUID ใหม่ที่สร้างเองสำหรับการเรียกแต่ละครั้ง
  • from (ไม่บังคับ) — Unix วินาที — จะไม่ส่ง otp/received_at หากไม่มีโค้ดที่ใหม่กว่า

สำเร็จ

{ "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

รายการคำสั่งซื้อ OTP

คำสั่งซื้อ Gmail OTP ที่เช่า แบ่งหน้า พร้อม OTP ล่าสุดของแต่ละคำสั่งซื้อ

ต้องใช้ API key

  • page (ไม่บังคับ) — หน้า (ค่าเริ่มต้น 1)
  • page_size (ไม่บังคับ) — จำนวนแถวต่อหน้า (ค่าเริ่มต้น 20 สูงสุด 200)

สำเร็จ

{ "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

อ่านข้อความทั้งหมด

ข้อความทั้งหมดของกล่องเมลหนึ่งกล่อง พร้อม OTP/ลิงก์ที่ดึงได้

ต้องใช้ API key

  • order_id — รหัสคำสั่งซื้อ

สำเร็จ

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

รหัสข้อผิดพลาดที่พบบ่อย

{ "status": "error", "message": "out_of_stock", "retryable": true }
  • unauthorized — API key ไม่ถูกต้องหรือไม่มี (HTTP 401)
  • invalid_request — พารามิเตอร์คำขอไม่ถูกต้อง (HTTP 400)
  • not_found — ไม่พบบริการ คำสั่งซื้อ หรือ endpoint (HTTP 404)
  • insufficient_balance — ยอดเงินไม่เพียงพอ (HTTP 402)
  • out_of_stock — สินค้าหมด (HTTP 409) — Gmail OTP: retryable ลองใหม่ในอีกไม่กี่วินาที; อีเมลแบบขายขาด: รอเติมสต็อก
  • service_unavailable — เซิร์ฟเวอร์ยังดำเนินการคำสั่งซื้อไม่เสร็จในขณะนี้ — ลองใหม่ด้วย unique_key เดิม (HTTP 503, retryable)
  • in_progress — คำสั่งซื้อกำลังสรุปผลหรืออาจมีอยู่แล้วที่ผู้ให้บริการ — ลองใหม่ด้วย unique_key เดิม (HTTP 409, retryable)
  • forbidden — ไม่มีสิทธิ์เข้าถึงทรัพยากรนี้ (HTTP 403)
  • idempotency_mismatch — unique_key ถูกใช้กับคำขออื่นแล้ว — ใช้ unique_key ใหม่ (HTTP 422)
  • order_cancelled — คำสั่งซื้อถูกปล่อยก่อนตัดเงิน ยังไม่มีการตัดเงิน — ลองใหม่ (HTTP 409, retryable)
  • too_many_requests — คำขอมากเกินไป — รอแล้วลองใหม่ (HTTP 429, retryable)
  • auth_unavailable — ยังตรวจสอบ API key ไม่ได้ในขณะนี้ key ไม่มีปัญหา — ลองใหม่ (HTTP 503, retryable)
  • shutting_down — เซิร์ฟเวอร์กำลังรีสตาร์ต — ลองใหม่ในอีกไม่กี่วินาที (HTTP 503, retryable)
  • payload_too_large — body ของคำขอใหญ่เกินไป (HTTP 413)
  • internal_server_error — เซิร์ฟเวอร์ขัดข้อง โปรดลองอีกครั้งภายหลัง (HTTP 500)

เอกสารสำหรับ AI และเครื่องมือ

เอกสารฉบับเต็มในรูปแบบ Markdown อยู่ที่ https://mailsmmo.com/llms.txt — วางลงใน Cursor, Claude หรือ ChatGPT เพื่อสร้างโค้ดเชื่อมต่อ

ลองใหม่อย่างปลอดภัยด้วย unique_key

ส่ง unique_key (UUID ที่สร้างเอง) ไปกับทุกคำสั่งซื้อ หากเครือข่ายหลุด ให้ลองใหม่ด้วย unique_key เดิม: คุณจะได้คำสั่งซื้อเดิมกลับมา ไม่มีคำสั่งซื้อใหม่และไม่ถูกหักเงินซ้ำ

รูปแบบข้อผิดพลาด

เมื่อเกิดข้อผิดพลาด ผลลัพธ์จะมีเพียง status, message (รหัสข้อผิดพลาดแบบ snake_case) และ retryable ซึ่งบอกว่าควรลองใหม่หรือไม่

เริ่มต้นใช้งาน MailSMMO

สมัครฟรี เติมเงินเข้าวอลเล็ต แล้วเช่าเมลแรกได้ภายในไม่กี่นาที

สร้างบัญชี →