// REST API

Dokumentasyon ng REST API

Gumagamit ng GET ang mga endpoint para sa tool at nagbabalik ng JSON na may hugis na { "status": "success", "data": … }. Mag-authenticate gamit ang ?api_key= parameter mula sa API Docs page pagkatapos mag-sign in.

Mga endpoint

Base URL: https://mailsmmo.com

GET/api/v1/services

Mga serbisyo — presyo & stock

Kapag walang ?service=, ibinabalik ang buong listahan. Kapag may ?service=, ibinabalik ang presyo at stock ng isang serbisyo. Hindi kailangan ng API key.

Walang auth

  • service (opsyonal) — Iwanang blangko para sa buong listahan; ang isang code ay nagbabalik ng isang serbisyo (tinatanggap ang bare code tulad ng facebook)

Tagumpay

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

GET/api/v1/me

Impormasyon ng account

ID, email at balance ng API key na tumatawag.

Kailangan ng API key

Tagumpay

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

GET/api/v1/orders

Gumawa ng order

Iisang endpoint para sa dalawa: ang Gmail OTP code (otp_gmail_*) ay nagbibigay ng isang OTP mailbox; ang stock product code (hotmail_*…) ay bumibili ayon sa dami. Sinisingil ang balance ayon sa nakalistang presyo.

Kailangan ng API key

  • service — OTP service code (otp_gmail_*) o stock product code (hal. hotmail_imap_12m_36m)
  • quantity (opsyonal) — Para lang sa isahang benta ng email — dami (default 1)
  • unique_key (opsyonal) — Sariling-gawang UUID — ang muling pagpapadala ay hindi gagawa o sisingil nang dalawang beses

Tagumpay

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

GET/api/v1/orders/otp

Kunin ang OTP ayon sa order

Binabasa ang OTP ng isang order. Hindi kailangan ng API key — ang order code (order_id) ang nagsisilbing access key.

Walang auth

  • order_id — Order code (ibinabalik kapag ginawa ang order)
  • unique_key (opsyonal) — Bagong sariling-gawang UUID sa bawat tawag
  • from (opsyonal) — Unix seconds — hindi isasama ang otp/received_at maliban kung may mas bagong code

Tagumpay

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

Listahan ng OTP order

Mga na-rent na Gmail OTP order, naka-paginate, kasama ang pinakabagong OTP ng bawat order.

Kailangan ng API key

  • page (opsyonal) — Pahina (default 1)
  • page_size (opsyonal) — Row kada pahina (default 20, max 200)

Tagumpay

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

Basahin ang lahat ng mensahe

Lahat ng mensahe ng isang mailbox, kasama ang na-extract na OTP/link.

Kailangan ng API key

  • order_id — Order code

Tagumpay

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

karaniwang error code

{ "status": "error", "message": "out_of_stock", "retryable": true }
  • unauthorized — Hindi valid o walang API key (HTTP 401)
  • invalid_request — Hindi valid ang mga parameter ng request (HTTP 400)
  • not_found — Hindi nahanap ang serbisyo, order o endpoint (HTTP 404)
  • insufficient_balance — Kulang ang balance (HTTP 402)
  • out_of_stock — Ubos ang stock (HTTP 409) — Gmail OTP: retryable, subukan ulit pagkalipas ng ilang segundo; email na binili nang buo: hintayin ang restock
  • service_unavailable — Hindi matapos ng server ang order sa ngayon — subukan ulit gamit ang parehong unique_key (HTTP 503, retryable)
  • in_progress — Tinatapos pa ang order o maaaring umiiral na ito sa provider — subukan ulit gamit ang parehong unique_key (HTTP 409, retryable)
  • forbidden — Walang pahintulot sa resource (HTTP 403)
  • idempotency_mismatch — Nagamit na ang unique_key sa ibang request — gumamit ng bagong unique_key (HTTP 422)
  • order_cancelled — Na-release ang order bago masingil, walang nasingil — subukan ulit (HTTP 409, retryable)
  • too_many_requests — Masyadong maraming request — maghintay at subukan ulit (HTTP 429, retryable)
  • auth_unavailable — Hindi ma-check ang API key sa ngayon, ayos lang ang key — subukan ulit (HTTP 503, retryable)
  • shutting_down — Nagre-restart ang server — subukan ulit pagkalipas ng ilang segundo (HTTP 503, retryable)
  • payload_too_large — Masyadong malaki ang request body (HTTP 413)
  • internal_server_error — May error sa server, pakisubukan ulit mamaya (HTTP 500)

Docs para sa AI at mga tool

Nasa https://mailsmmo.com/llms.txt ang buong dokumentasyon sa Markdown — i-paste ito sa Cursor, Claude o ChatGPT para gumawa ng integration code.

Ligtas na retry gamit ang unique_key

Magpadala ng unique_key (isang UUID na ikaw ang gumawa) sa bawat order. Kapag naputol ang network, mag-retry gamit ang parehong unique_key: ibabalik sa iyo ang parehong order, walang bagong order at walang dobleng singil.

Format ng error

Kapag may error, status, message (isang error code na snake_case) at retryable lang ang laman ng response — sinasabi ng retryable kung dapat mag-retry.

Magsimula sa MailSMMO

Mag-sign up nang libre, mag-top up ng wallet at mag-rent ng una mong mail sa loob lang ng ilang minuto.

Gumawa ng account →