Ваши SMS отправляются с вашего телефона.Узнайте, как это работает
PLATFORMAPI-first architectureSecure device pairingDelivery visibilityMulti-device controlVersioned documentation
Developer hub/ Email API

MAIL · 4 документированные операции

Email API documentation

Send email without sharing mailbox passwords, retrieve mailbox content and check unsubscribe status.

Connected email and messaging channels synchronized through the cloud
REST base URLhttps://api.smsmobileapi.com

JSON responses · HTTPS required · UTF-8

Connect your API key

Connect once, then test endpoints across SMS, calls, notifications, WhatsApp and email.

Start here

Your first request in four steps

1

Configure a mailbox in the dashboard.

2

Copy both apikey and the mailbox apikeybox.

3

Send a simple text email first.

4

Add attachments or embedded images only after the basic request works.

WEBHOOK V2 ДЛЯ ЭТОГО API

Подписывайтесь только на мобильные события, которые нужны вашему рабочему процессу.

2 типов событий

Одна конечная точка может принимать всё, либо вы можете разделить продакшн‑системы, аналитику и операционные оповещения. Каждое событие имеет точное имя, чтобы ваше приложение обрабатывало его предсказуемо.

email.sent

Электронное письмо отправлено

Запрос на отправку электронного письма был создан SMSMobileAPI.

email.received

Электронное письмо получено

Подключённый почтовый ящик получил электронное письмо.

Authentication

Keep credentials on your server

Email endpoints require the account apikey and the mailbox-specific apikeybox. Store both credentials server-side and mask them in application logs.

Управление историей

Безопасная история: предварительный просмотр, удаление, отслеживание прогресса

Эти конечные точки очищают выбранную историю сервера для ключа API, а не сообщений на телефонах или внешних службах. Они не обеспечивают удаление аккаунта. После удаления может появиться новая активность.

Прочитайте руководство request_id и повторного использования
Интегрированная защита

По умолчанию, связанные или обрабатывающие записи остаются видимыми. Используйте include_linked=1 только в том случае, если вы согласны с тем, что интеграция или непрерывная обработка могут прекратить работу.

Как работает request_id

  1. Просмотрите подсчеты с action=preview. request_id не требуется, и никакие записи не удаляются.
  2. Создайте уникальный request_id для нового удаления, например, UUID. Сохраните его перед отправкой action=delete.
  3. Для повторных заходов, тайм-аутов или HTTP 202 повторно используйте тот же ключ API, конечную точку истории, значение request_id и include_linked. Никогда не создавайте новый идентификатор автоматически после ошибки.
  4. Когда completed=true будет готов, операция будет завершена. Повторное использование идентификатора возвращает тот же результат вместо удаления вновь поступивших записей. Используйте новый идентификатор только для преднамеренной очистки.

request_id идентифицирует вашу операцию удаления, а не отдельный SMS. Разрешенный формат: 16-128 букв ASCII, цифр, дефисов или подчеркиваний. UUID, созданный с помощью crypto.randomUUID(), подходит.

Удаление выполняется пакетами. При HTTP 202 и continue_required=true повторите action=delete через 3 секунды. Фоновый cron не запускается. action=status только читает прогресс и не продолжает удаление, даже при HTTP 200.

Примеры исключения и статуса

Замените образец request_id на свой собственный уникальный код перед началом. Следующие запросы на удаление изменяют реальную историю учетной записи; они не являются предварительными просмотрами.

POST - ключ API
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
POST - OAuth2
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  -H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
GET - статус
curl -G "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=status" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"

GET также принимает action=preview или action=delete. Рекомендуется POST: параметры URL могут просачиваться в историю браузера и журналы сервера. Никогда не размещайте URL-адрес удаления в общедоступной ссылке, изображении или приставке.

Для POST отправляйте все параметры в виде тела или объекта JSON, никогда в строке запроса. Неизвестные параметры отклоняются, не поддерживаются фиксированные даты или мобильные фильтры.

Аутентификация конечных точек истории

Используйте apikey или Authorization: Bearer, выпущенный SMSMobileAPI OAuth2. Не отправляйте токен обновления или ключ API в качестве токена Bearer. Просроченные токены отклоняются.

При установлении областей history:read позволяет предварительный просмотр / статус, а history:delete также позволяет удаление. Применяются ограничения как на токен, так и на клиент OAuth. Токены Legacy без ограничений сохраняют свой существующий доступ к учетной записи.

OAuth2 выбирает уникальный основной ключ API. Если существует несколько первичных ключей, также предоставьте apikey для выбора одного из них, принадлежащего учетной записи. Вторичные ключи никогда не предоставляют доступ к истории первичных ключей.

Прочитайте ответ, прежде чем продолжить

count_delete — это кумулятивное число, удаленное этой операцией. selected_at_start - это первоначальный выбор; protected_at_start подсчитывает исключенные записи. Используйте preview.linked_or_processing для подсчета связанных записей, даже если include_linked=1.

JSON 202 HTTP
{
    "result": {
        "error": 0,
        "history": "email",
        "action": "delete",
        "request_id": "6d54ac58-41f1-4fbc-9a39-6e6c86089451",
        "status": "processing",
        "completed": false,
        "count_delete": 100,
        "total_before": 250,
        "selected_at_start": 200,
        "protected_at_start": 50,
        "include_linked": 0,
        "continue_required": true,
        "message": "Repeat GET or POST with the same request_id and include_linked to continue. Status requests do not run deletion."
    }
}
  • 200 с completed=true: готово. Только 200 предварительных просмотров или ответов о статусе не доказывают завершенность.
  • 400 INVALID_REQUEST_ID: проверьте формат. 404 REQUEST_NOT_FOUND: для этого идентификатора, ключа API и истории не существует никакой операции.
  • 401: недействительные или просроченные учетные данные. 403: недостаточный объем OAuth или несанкционированная учетная запись.
  • 409 HISTORY_BUSY: еще одна уборка запущена; продолжайте ее с оригинального клиента. 409 INCLUDE_LINKED_CONFLICT: Восстановите исходное значение include_linked.
  • 409 OAUTH_ACCOUNT_AMBIGUOUS: предоставить ключ API, принадлежащий этой учетной записи.
  • 503 или прерывание сети: некоторые партии могут быть уже завершены. Проверьте конфигурацию, а затем повторите с оригинальным request_id. Не создавайте автоматически замену.
POST

Send an email

#
ENDPOINThttps://api.smsmobileapi.com/sendemail/

Sends plain-text or HTML email through a configured mailbox.

When to use it

Use it for transactional or operational email from your application.

Parameters

ИмяTypeRequirementDescription
apikey string Required Your account API key.
apikeybox string Required API key of the configured mailbox.
sender_name string Required Display name of the sender.
sender_email email Required Sender email address.
recipient_email email Required Recipient address.
mail_subject string Required Email subject.
mail_body string Required Plain text or HTML body.
allow_self_signed yes | no Required Set to yes only when the configured mail server uses a trusted internal self-signed certificate.
unsubscribe 1 факультативный Adds unsubscribe terms and a link.
email_cc1 email факультативный First optional CC recipient.
email_cc2 email факультативный Second optional CC recipient.
email_cc3 email факультативный Third optional CC recipient.
attachmentBase64 base64 факультативный Base64-encoded attachment content.
attachmentBase64_name_1 filename факультативный Original attachment file name with extension, for example invoice.pdf. Required when attachmentBase64 has a value.
charset string факультативный Character set; default UTF-8.
embeddedImage HTTPS URL факультативный Image to embed in the email.
embeddedImage_cid string факультативный Content-ID referenced from the HTML body.
format string факультативный Requested response format.
reply_name string факультативный Reply-to display name.
reply_email email факультативный Reply-to address.

Request example

cURL
curl -X POST "https://api.smsmobileapi.com/sendemail/" \
  -d "apikey=YOUR_API_KEY" \
  -d "apikeybox=YOUR_MAILBOX_KEY" \
  --data-urlencode "sender_name=Example Team" \
  -d "sender_email=team@example.com" \
  -d "recipient_email=customer@example.net" \
  --data-urlencode "mail_subject=Order confirmation" \
  --data-urlencode "mail_body=Your order has been confirmed." \
  --data-urlencode "attachmentBase64=BASE64_FILE_CONTENT" \
  -d "attachmentBase64_name_1=invoice.pdf" \
  -d "allow_self_signed=no"

Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.

Connect key ↑
Good to know
  • Prefer POST because email bodies can be long.
  • If attachmentBase64 is provided, attachmentBase64_name_1 is required and must include the file extension.
  • Base64 attachments can make requests large; apply sensible size limits in your application.
GET

Retrieve emails

#
ENDPOINThttps://api.smsmobileapi.com/getemail/

Retrieves messages from a configured mailbox folder.

When to use it

Use it to synchronize inbound email into a help desk or application workflow.

Parameters

ИмяTypeRequirementDescription
apikey string Required Your account API key.
apikeybox string Required Mailbox API key.
mbox string Required Mailbox folder, for example INBOX.
start integer Required Starting index; use 0 for the first page.

Request example

cURL
curl "https://api.smsmobileapi.com/getemail/?apikey=YOUR_API_KEY&apikeybox=YOUR_MAILBOX_KEY&mbox=INBOX&start=0"

Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.

Connect key ↑
Good to know
  • Responses include available subject, sender, recipient, body, timestamp and attachment details.
GET

Check unsubscribed contacts

#
ENDPOINThttps://api.smsmobileapi.com/email/unsubscribed/

Checks unsubscribe records generated by emails sent through the platform.

When to use it

Use it before sending campaigns and when synchronizing suppression lists.

Parameters

ИмяTypeRequirementDescription
apikey string Required Your account API key.
apikeybox string Required Mailbox API key.
email email факультативный Filter one contact. An empty result means no unsubscribe record was found.

Request example

cURL
curl "https://api.smsmobileapi.com/email/unsubscribed/?apikey=YOUR_API_KEY&apikeybox=YOUR_MAILBOX_KEY&email=customer@example.net"

Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.

Connect key ↑
Good to know
  • Keep your own recipient database synchronized with unsubscribe results.
  • You remain responsible for applicable anti-spam and privacy rules.
POST · GET

Очистить историю отправленных писем

#
ENDPOINThttps://api.smsmobileapi.com/delete-history-email/

Клирс отправил журналы электронной почты для этого ключа API через почтовые ящики. Он не удаляет сообщения в почтовом ящике. apikeybox не требуется.

When to use it

Сначала используйте предварительный просмотр, проверьте счета, а затем явно запросите удаление. Это очищает всю выбранную историю для ключа API без фильтров даты, телефона или сообщений.

Parameters

ИмяTypeRequirementDescription
apikey string факультативный Необходим без OAuth2. В OAuth2 необязательно выберите ключ API, принадлежащий той же учетной записи.
action preview | delete | status факультативный preview подсчитывает записи без удаления; delete запускает или продолжает удаление; status только показывает прогресс. Значение по умолчанию в API — delete, в этом тестере — preview.
include_linked 0 | 1 факультативный По умолчанию 0: сохраняйте связанные или обрабатывающие записи. Набор 1 включает их, с риском нарушения интеграции. Сохраняйте это значение неизменным при продолжении удаления.
request_id string факультативный Обязательно для delete и status, необязательно для preview. Используйте 16–128 букв ASCII, цифр, дефисов (-) или подчёркиваний (_). Создайте уникальный ID для каждого нового удаления и сохраняйте его при всех повторных попытках. Это не ID сообщения и не ключ API.

Request example

cURL
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=preview" -d "include_linked=0"
Примеры исключения и статуса

Замените образец request_id на свой собственный уникальный код перед началом. Следующие запросы на удаление изменяют реальную историю учетной записи; они не являются предварительными просмотрами.

POST - ключ API
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
POST - OAuth2
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  -H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
GET - статус
curl -G "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=status" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"

Example response

JSON
{
    "result": {
        "error": 0,
        "history": "email",
        "action": "preview",
        "total": 120,
        "simple": 100,
        "linked_or_processing": 20,
        "selected": 100,
        "include_linked": 0,
        "operation_in_progress": false,
        "active_include_linked": null
    }
}

Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.

Connect key ↑
Good to know
  • Приведенный выше пример является предварительным просмотром, а не удалением. Графики являются иллюстративными; окончательный выбор фиксируется при начале удаления.
  • include_linked=1 может нарушить работу GHL, Zapier, автоматизацию, отмену подписки или отслеживание доставки. Он никогда не обходится без проверки целостности учетной записи или хранения.

Troubleshooting

Errors and safe retries

Read the HTTP status and the JSON error field before retrying. Do not retry validation or authentication failures without correcting the request first.

HTTPCodeWhat to do
400missing_parameterA required parameter is empty or absent. Check the parameter table for the endpoint.
403invalid_apikeyThe API key is unknown, expired or not authorized for the requested feature.
429too_many_requestsRequests are arriving too quickly. Wait, then retry with exponential backoff.
500server_errorThe service could not complete the request. Keep the response and contact support if it persists.
Retry ruleRetry only transient 429 and 5xx responses. Start after 1 second, then back off to 2, 4 and 8 seconds.

Need help?

Bring the request context—not your secrets.

Share the endpoint, timestamp, HTTP status and sanitized response. Never include API keys, tokens or private message content.

Contact API support →
The secure SMSMobileAPI mobile app connecting a phone to the web dashboard and REST API for SMS and call operations
Encrypted mobile-to-platform connection

Official mobile application

The secure bridge between your phone, dashboard and API.

SMS and call operations pass through the official SMSMobileAPI app installed on your connected phone. The app securely pairs the device with your account, synchronizes authorized events and links the mobile network to the dashboard and REST API.

1Mobile appPairs the phone and its SIM 2Encrypted linkAuthenticates and protects data in transit 3Dashboard & APIControls workflows and activity
  • Signed releases distributed through the official Google Play and Apple App Store listings
  • Google and Apple platform review, signing and distribution controls
  • Secure device pairing, HTTPS transport and authenticated API access
  • Only the permissions required for the mobile features you enable
Get the official SMSMobileAPI app on Google Play Download the official SMSMobileAPI app on the Apple App Store
Capabilities depend on the permissions and background access allowed by Android or iOS.