// REST API

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

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

Эндпоинты

Базовый 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, email и баланс владельца 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

Создать заказ

Один эндпоинт для обоих случаев: код 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 — Сервис, заказ или эндпоинт не найден (HTTP 404)
  • insufficient_balance — Недостаточно средств (HTTP 402)
  • out_of_stock — Нет в наличии (HTTP 409) — Gmail OTP: можно повторить, повторите через несколько секунд; разово продаваемая почта: дождитесь пополнения запаса
  • service_unavailable — Сервер не смог завершить заказ сейчас — повторите с тем же unique_key (HTTP 503, можно повторить)
  • in_progress — Заказ финализируется или уже может существовать у поставщика — повторите с тем же unique_key (HTTP 409, можно повторить)
  • forbidden — Нет прав на ресурс (HTTP 403)
  • idempotency_mismatch — unique_key уже использован для другого запроса — используйте новый unique_key (HTTP 422)
  • order_cancelled — Заказ отменён до списания, ничего не списано — повторите (HTTP 409, можно повторить)
  • too_many_requests — Слишком много запросов — подождите и повторите (HTTP 429, можно повторить)
  • auth_unavailable — Сейчас не удалось проверить API key, с ключом всё в порядке — повторите (HTTP 503, можно повторить)
  • shutting_down — Сервер перезапускается — повторите через несколько секунд (HTTP 503, можно повторить)
  • 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

Зарегистрируйтесь бесплатно, пополните кошелёк и арендуйте первую почту за считаные минуты.

Создать аккаунт →