Начни здесь
Ваш первый запрос в четыре этапа
Подключите и включите WhatsApp для поддерживаемого мобильного устройства.
Подтвердите получателя с помощью конечной точки проверки номера.
Отправляйте с помощью waonly=yes.
Для извлечения полученных сообщений: активируйте сбор, вызовите /getwa/синхронизацию/, дождитесь восстановления, затем вызовите /getwa.
ОБЯЗАТЕЛЬНО ПЕРЕД ИЗВЛЕЧЕНИЕМ ПОЛУЧЕННЫХ СООБЩЕНИЙ
Сначала закажите синхронизацию WhatsApp.
Прежде чем звонить/getwaЧтобы просмотреть полученные сообщения WhatsApp, необходимо запросить окно синхронизации черезhttps://api.smsmobileapi.com/getwa/synchronisation/. Этот явный шаг необходим для безопасного авторизации обмена между WhatsApp и SMSMobileAPI. Подождите восстановления, затем позвоните/getwa.
Официальное мобильное приложение
Защищенный мост между телефоном, приборной панелью и API.
Операции SMS и вызова проходят через официальное приложение SMSMobileAPI, установленное на подключенном телефоне. Приложение надежно соединяет устройство с вашей учетной записью, синхронизирует авторизованные события и связывает мобильную сеть с приборной панелью и REST API.
- Подписанные релизы, распространяемые через официальные списки Google Play и Apple App Store
- Google и Apple анализируют, подписывают и контролируют дистрибуцию
- Защищенное сопряжение устройств, транспортировка HTTPS и аутентифицированный доступ к API
- Только разрешения, необходимые для мобильных функций, которые вы включаете
WEBHOOK V2 ДЛЯ ЭТОГО API
Подписывайтесь только на мобильные события, которые нужны вашему рабочему процессу.
Одна конечная точка может принимать всё, либо вы можете разделить продакшн‑системы, аналитику и операционные оповещения. Каждое событие имеет точное имя, чтобы ваше приложение обрабатывало его предсказуемо.
whatsapp.submittedWhatsApp отправлено
Была создана задача на отправку WhatsApp.
whatsapp.sentWhatsApp отправлено
Подключённая среда WhatsApp подтвердила отправку сообщения.
whatsapp.failedWhatsApp не удалось
Отправка WhatsApp не удалась.
whatsapp.receivedWhatsApp получено
Сообщение WhatsApp было извлечено после того, как аккаунт запросил синхронизацию.
whatsapp.voice.transcribedГолосовое сообщение транскрибировано
Подходящее полученное голосовое сообщение WhatsApp было преобразовано в пригодный для использования текст.
Аутентификация
Держите учетные данные на своем сервере
Используйте apikey для прямой интеграции. Клиентские учетные данные OAuth2 доступны для серверных приложений; запросить токен и отправить его в качестве авторизации: Bearer ACCESS TOKEN.
Управление историей
Безопасная история: предварительный просмотр, удаление, отслеживание прогресса
Эти конечные точки очищают выбранную историю сервера для ключа API, а не сообщений на телефонах или внешних службах. Они не обеспечивают удаление аккаунта. После удаления может появиться новая активность.
Прочитайте руководство request_id и повторного использования
По умолчанию, связанные или обрабатывающие записи остаются видимыми. Используйте include_linked=1 только в том случае, если вы согласны с тем, что интеграция или непрерывная обработка могут прекратить работу.
Как работает request_id
- Просмотрите подсчеты с action=preview. request_id не требуется, и никакие записи не удаляются.
- Создайте уникальный request_id для нового удаления, например, UUID. Сохраните его перед отправкой action=delete.
- Для повторных заходов, тайм-аутов или HTTP 202 повторно используйте тот же ключ API, конечную точку истории, значение request_id и include_linked. Никогда не создавайте новый идентификатор автоматически после ошибки.
- Когда 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 на свой собственный уникальный код перед началом. Следующие запросы на удаление изменяют реальную историю учетной записи; они не являются предварительными просмотрами.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--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.
{
"result": {
"error": 0,
"history": "whatsapp-sent",
"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 · ПОЛУЧИТЬ
Отправить сообщение WhatsApp
https://api.smsmobileapi.com/sendsmsОтправляет текст WhatsApp или поддерживаемые носители через подключенную среду.
Используйте его для отдельных получателей или контактной группы панели инструментов.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API; опустить при использовании токена Bearer. |
recipients |
телефон | Необходимый | Код страны плюс номер, без + или 00. |
message |
нить | Необходимый | Тело текста; поддерживается несколько строк. |
waonly |
да | Необходимый | Должно быть да, чтобы запросить доставку только WhatsApp. |
url_media |
HTTPS URL | факультативный | Публичный PDF, документ, архив или JPG/PNG URL. |
url_media_shorted |
да | факультативный | Используйте сокращенный URL загрузки с режимом предварительного просмотра PDF. |
pdf_with_image |
да | факультативный | Добавьте предварительный просмотр изображения для PDF. |
encrypt_message |
да | факультативный | Требуется дешифрование на стороне получателя. |
contactGroup |
ПУИД | факультативный | Отправляйте каждому контакту в группе приборной панели. |
Запросить пример
curl -X POST "https://api.smsmobileapi.com/sendsms?waonly=yes" \
-d "apikey=YOUR_API_KEY" \
-d "recipients=191728660" \
--data-urlencode "message=Your order is ready."
Пример ответа
{
"result": {
"error": 0,
"sent": "1",
"id": "MESSAGE_GUID",
"send_with_whatsapp": "1"
}
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Поддерживаемые медиа-URL должны быть общедоступными ресурсами HTTPS.
- Форматирование WhatsApp: *bold*, italic , ~strikethrough~ и тройной бэктик монопространства.
POST · ПОЛУЧИТЬ
Отправить неотправленное сообщение WhatsApp
https://api.smsmobileapi.com/resendwa/Восстанавливает сообщение WhatsApp, которое в настоящее время имеет статус ошибки.
Используйте его после диагностики неудачной записи журнала WhatsApp.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API. |
guid |
нить | Необходимый | Письмо о несостоявшемся сообщении. |
Запросить пример
curl "https://api.smsmobileapi.com/resendwa/?apikey=YOUR_API_KEY&guid=MESSAGE_GUID"
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Только несостоявшиеся сообщения могут быть отправлены повторно.
ПОЛУЧАТЬ
Активировать входящий поиск
https://api.smsmobileapi.com/getwa/active/Активирует, деактивирует или переключает поиск сообщений WhatsApp.
Сначала активируйте сбор. Затем, перед извлечением полученных сообщений, вы должны запросить синхронизацию через /getwa/synchronization/.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API. |
statut |
0 | 1 х | факультативный | 1 активирует, 0 деактивирует, x или бездействие переключает текущее состояние. |
Запросить пример
curl "https://api.smsmobileapi.com/getwa/active/?apikey=YOUR_API_KEY&statut=1"
Пример ответа
{
"success": true,
"read_message_active": 1,
"status_note": "Activated"
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Входящий поиск отключен по умолчанию для конфиденциальности.
- Активация сама по себе не восстанавливает сообщения: запрос на синхронизацию остается обязательным перед использованием /getwa для вновь полученной активности.
ПОЛУЧАТЬ
Требуется: запрос синхронизации WhatsApp
https://api.smsmobileapi.com/getwa/synchronisation/Mandatory security step before retrieving received WhatsApp messages. It opens a time-limited synchronization window.
Вы должны позвонить в эту конечную точку до /getwa, когда вам нужен SMSMobileAPI, чтобы проверить WhatsApp на наличие новых сообщений. Дождитесь выздоровления, затем позвоните /getwa.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API. |
Запросить пример
curl "https://api.smsmobileapi.com/getwa/synchronisation/?apikey=YOUR_API_KEY"
Пример ответа
{
"error": "0",
"messages": "synchronized",
"expire_at": "2026-03-11 12:27:00",
"expire_at_unix": "1773232020"
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Синхронизация предназначена только для получения сообщений. Не звоните перед отправкой.
- Ответ возвращается в виде: «Entertain at» и «Entertain at unix». Запросите другое окно синхронизации, когда вам нужно собрать новые полученные сообщения.
- Запрос на синхронизацию является обязательным для защиты обмена между WhatsApp и SMSMobileAPI.
ПОЛУЧАТЬ
Обновление сообщений WhatsApp
https://api.smsmobileapi.com/getwaReturns received WhatsApp messages that were recovered during a requested synchronization window.
Обязательное условие: активировать входящий поиск, вызвать https://api.smsmobileapi.com/getwa/synchronization/первое, дождаться восстановления, затем позвонить в эту конечную точку. Сама по себе гетва не начинает синхронизацию.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API. |
before |
Unix Timesamp | факультативный | Верните записи до этого таймстапа. |
date |
ГГГГ-ММ-ДД | факультативный | Возврат записей на одну дату. |
message_type |
Текстовый звук | факультативный | Фильтруйте текстовые сообщения или аудио сообщения, преобразованные в текст; опустить для обоих. |
Запросить пример
curl "https://api.smsmobileapi.com/getwa/?apikey=YOUR_API_KEY&message_type=text"
Пример ответа
{
"date": "2026-03-11",
"hour": "12:27:00",
"timestamp": "1773232020",
"number": "19176728660",
"contact": "SMSMobileAPI",
"message": "When will I receive my order?",
"guid": "652fcfc0-12a8-46f5-b5ba-9391135b8b4c"
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑
ПОЛУЧАТЬ
Проверить номер WhatsApp
https://api.smsmobileapi.com/whatsapp/checknumber/Проверяет, доступен ли номер телефона на WhatsApp.
Используйте его перед отправкой, чтобы уменьшить количество предотвратимых сбоев.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | Необходимый | Ваш ключ API. |
recipients |
телефон | Необходимый | Код страны плюс номер, без + или 00. |
Запросить пример
curl "https://api.smsmobileapi.com/whatsapp/checknumber/?apikey=YOUR_API_KEY&recipients=19176728660"
Пример ответа
{
"contact_found_on_whatsapp": "yes",
"recipients": "19176728660"
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑
ПОЧТА
Создайте токен доступа OAuth2
https://api.smsmobileapi.com/oauth2/tokenОбменяет учетные данные клиента на токен Bearer.
Используйте его для интеграции сервер-сервер, где предпочтительны недолговечные учетные данные.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
grant_type |
нить | Необходимый | Должен быть клиент кридентиал. |
client_id |
нить | Необходимый | Идентификатор клиента с приборной панели. |
client_secret |
нить | Необходимый | Секрет клиента с приборной панели. |
Запросить пример
curl -X POST "https://api.smsmobileapi.com/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Держите клиента в секрете на своем сервере. Никогда не включайте его в код мобильного или браузера.
POST · ПОЛУЧИТЬ
Очистить историю отправленных сообщений WhatsApp
https://api.smsmobileapi.com/delete-history-whatsapp-sent/Очистка записей сервера отправленных сообщений WhatsApp. Он не удаляет сообщения из разговоров WhatsApp.
Сначала используйте предварительный просмотр, проверьте счета, а затем явно запросите удаление. Это очищает всю выбранную историю для ключа API без фильтров даты, телефона или сообщений.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | факультативный | Необходим без OAuth2. В OAuth2 необязательно выберите ключ API, принадлежащий той же учетной записи. |
action |
Превью | Удалить | Статус | факультативный | preview подсчитывает записи без удаления; delete запускает или продолжает удаление; status только показывает прогресс. Значение по умолчанию в API — delete, в этом тестере — preview. |
include_linked |
0 | 1 | факультативный | По умолчанию 0: сохраняйте связанные или обрабатывающие записи. Набор 1 включает их, с риском нарушения интеграции. Сохраняйте это значение неизменным при продолжении удаления. |
request_id |
нить | факультативный | Обязательно для delete и status, необязательно для preview. Используйте 16–128 букв ASCII, цифр, дефисов (-) или подчёркиваний (_). Создайте уникальный ID для каждого нового удаления и сохраняйте его при всех повторных попытках. Это не ID сообщения и не ключ API. |
Запросить пример
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Примеры исключения и статуса
Замените образец request_id на свой собственный уникальный код перед началом. Следующие запросы на удаление изменяют реальную историю учетной записи; они не являются предварительными просмотрами.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"Пример ответа
{
"result": {
"error": 0,
"history": "whatsapp-sent",
"action": "preview",
"total": 120,
"simple": 100,
"linked_or_processing": 20,
"selected": 100,
"include_linked": 0,
"operation_in_progress": false,
"active_include_linked": null
}
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Приведенный выше пример является предварительным просмотром, а не удалением. Графики являются иллюстративными; окончательный выбор фиксируется при начале удаления.
- include_linked=1 может нарушить работу GHL, Zapier, автоматизацию, отмену подписки или отслеживание доставки. Он никогда не обходится без проверки целостности учетной записи или хранения.
POST · ПОЛУЧИТЬ
Очистить историю полученных сообщений WhatsApp
https://api.smsmobileapi.com/delete-history-whatsapp-received/Очистка записей сервера от полученных сообщений WhatsApp. Он не отключает WhatsApp и не удаляет разговоры.
Сначала используйте предварительный просмотр, проверьте счета, а затем явно запросите удаление. Это очищает всю выбранную историю для ключа API без фильтров даты, телефона или сообщений.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
apikey |
нить | факультативный | Необходим без OAuth2. В OAuth2 необязательно выберите ключ API, принадлежащий той же учетной записи. |
action |
Превью | Удалить | Статус | факультативный | preview подсчитывает записи без удаления; delete запускает или продолжает удаление; status только показывает прогресс. Значение по умолчанию в API — delete, в этом тестере — preview. |
include_linked |
0 | 1 | факультативный | По умолчанию 0: сохраняйте связанные или обрабатывающие записи. Набор 1 включает их, с риском нарушения интеграции. Сохраняйте это значение неизменным при продолжении удаления. |
request_id |
нить | факультативный | Обязательно для delete и status, необязательно для preview. Используйте 16–128 букв ASCII, цифр, дефисов (-) или подчёркиваний (_). Создайте уникальный ID для каждого нового удаления и сохраняйте его при всех повторных попытках. Это не ID сообщения и не ключ API. |
Запросить пример
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Примеры исключения и статуса
Замените образец request_id на свой собственный уникальный код перед началом. Следующие запросы на удаление изменяют реальную историю учетной записи; они не являются предварительными просмотрами.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"Пример ответа
{
"result": {
"error": 0,
"history": "whatsapp-received",
"action": "preview",
"total": 120,
"simple": 100,
"linked_or_processing": 20,
"selected": 100,
"include_linked": 0,
"operation_in_progress": false,
"active_include_linked": null
}
}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Приведенный выше пример является предварительным просмотром, а не удалением. Графики являются иллюстративными; окончательный выбор фиксируется при начале удаления.
- include_linked=1 может нарушить работу GHL, Zapier, автоматизацию, отмену подписки или отслеживание доставки. Он никогда не обходится без проверки целостности учетной записи или хранения.
Поиск неисправностей
Ошибки и безопасные повторы
Прочитайте статус HTTP и поле ошибок JSON перед повторным использованием. Не повторяйте валидацию или сбои аутентификации без предварительного исправления запроса.
| HTTP | Код | Что делать |
|---|---|---|
| 400 | missing_parameter | Необходимый параметр пуст или отсутствует. Проверьте таблицу параметров для конечной точки. |
| 403 | invalid_apikey | Ключ API неизвестен, истек или не разрешен для запрашиваемой функции. |
| 429 | too_many_requests | Запросы поступают слишком быстро. Подожди, а потом повтори экспоненциальный откат. |
| 500 | server_error | Служба не смогла выполнить запрос. Сохраняйте ответ и контактную поддержку, если он сохраняется. |
Нужна помощь?
Приведите контекст запроса, а не ваши секреты.
Поделитесь конечной точкой, временной меткой, статусом HTTP и дезинфицированным ответом. Никогда не включайте ключи API, токены или содержимое личных сообщений.


