// REST API

Документація REST API

Ендпоінти для інструментів використовують GET і повертають JSON у вигляді { "status": "success", "data": … }. Авторизуйтеся параметром ?api_key= зі сторінки «Документація API» після входу.

Ендпоінти

Базовий URL: https://mailsmmo.com

GET/api/v1/services

Сервіси — ціни та наявність

Без ?service= повертає весь список. З ?service= повертає ціну та наявність одного сервісу. API-ключ не потрібен.

Без авторизації

  • service (необов'язково) — Залиште порожнім для всього списку; код поверне один сервіс (приймаються й короткі коди, як-от facebook)

Успіх

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

GET/api/v1/me

Інформація про акаунт

ID, email і баланс акаунта, до якого належить API-ключ виклику.

Потрібен API-ключ

Успіх

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

GET/api/v1/orders

Створити замовлення

Один ендпоінт для обох випадків: код Gmail OTP (otp_gmail_*) видає одну OTP-скриньку; код складського товару (hotmail_*…) купується за кількістю. З балансу списується вказана ціна.

Потрібен API-ключ

  • service — Код OTP-сервісу (otp_gmail_*) або код складського товару (напр. hotmail_imap_12m_36m)
  • quantity (необов'язково) — Лише для одноразових email — кількість (за замовчуванням 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-ключ не потрібен — код замовлення (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-ключ

  • 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-ключ

  • 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-ключ недійсний або відсутній (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-ключ, з ключем усе гаразд — повторіть (HTTP 503, retryable)
  • shutting_down — Сервер перезапускається — повторіть через кілька секунд (HTTP 503, retryable)
  • payload_too_large — Тіло запиту завелике (HTTP 413)
  • internal_server_error — Помилка сервера, спробуйте пізніше (HTTP 500)

Документація для ШІ та інструментів

Повна документація в Markdown доступна за адресою https://mailsmmo.com/llms.txt — вставте її в Cursor, Claude або ChatGPT, щоб згенерувати код інтеграції.

Безпечні повтори з unique_key

Передавайте unique_key (самостійно згенерований UUID) з кожним замовленням. Якщо зв'язок обірветься, повторіть запит з тим самим unique_key: ви отримаєте те саме замовлення, без нового замовлення й без повторного списання.

Формат помилок

У разі помилки відповідь містить лише status, message (код помилки у форматі snake_case) і retryable, який підказує, чи варто повторити запит.

Почніть роботу з MailSMMO

Зареєструйтеся безкоштовно, поповніть гаманець і орендуйте першу пошту за кілька хвилин.

Створити акаунт →