Buraya başlayın
Your first request in four steps
Connect and enable WhatsApp for a supported mobile.
Confirm the recipient with the number-check endpoint.
Send with waonly=yes.
To retrieve received messages: activate collection, call /getwa/synchronisation/, wait for recovery, then call /getwa.
MANDATORY BEFORE RETRIEVING RECEIVED MESSAGES
Request WhatsApp synchronization first.
Before calling /getwa to view received WhatsApp messages, you must request a synchronization window through https://api.smsmobileapi.com/getwa/synchronisation/. This explicit step is required to securely authorize the exchange between WhatsApp and SMSMobileAPI. Wait for recovery, then call /getwa.
BU API İÇİN WEBHOOK V2
İş akışınızın ihtiyaç duyduğu mobil olaylara abone olun.
Bir hedef her şeyi alabilir ya da üretim sistemlerini, analizleri ve operasyonel uyarıları ayırabilirsiniz. Her olayın kesin bir adı vardır, böylece uygulamanız onu öngörülebilir şekilde işleyebilir.
whatsapp.submittedWhatsApp gönderim talebi oluşturuldu
Bir WhatsApp gönderim işi oluşturuldu.
whatsapp.sentWhatsApp gönderildi
Bağlı WhatsApp ortamı mesajın gönderildiğini doğruladı.
whatsapp.failedWhatsApp başarısız oldu
WhatsApp gönderme işlemi başarısız oldu.
whatsapp.receivedWhatsApp alındı
Hesap senkronizasyon talep ettikten sonra bir WhatsApp mesajı alındı.
whatsapp.voice.transcribedSesli mesaj yazıya döküldü
Uygun bir alınmış WhatsApp sesli mesaj kullanılabilir metne dönüştürüldü.
Authentication
Keep credentials on your server
Use apikey for direct integrations. OAuth2 client credentials are available for server-side applications; request a token and send it as Authorization: Bearer ACCESS_TOKEN.
Tarih Yönetimi
Clear history güvenle: önizleme, silme, ilerleme
Bu uç noktaları, API anahtarınız için seçilen sunucu tarihini, telefonlarda veya dış hizmetlerde mesaj vermemektedir. Hesap süresi sağlamazlar. Yeni aktivite, yıkımdan sonra görünebilir.
request_id ve yeniden deneme rehberi
Varsayılan olarak, bağlantılı veya işleme kayıtları görünür. Sadece sadece sadece kullanım kullanımı kullanın include_linked=1 Bu entegrasyonları kabul ederseniz veya devam eden işleme çalışmayı durdurabilir.
How request_id works
- action=preview ile olan sayıların bir göstergesi. request_id gerekli değildir ve kayıtları silinmez.
- Genrate a unique request_id Yeni bir deletion için, örneğin bir UUID. Onu göndermeden önce kurtar action=delete.
- Yeniden geziler, zamanlar veya HTTP 202, aynı şeyi tekrarlayın API Anahtar, tarih uç noktası, request_id ve include_linked değer. Bir hatadan sonra otomatik olarak yeni bir kimlik üretmeyin.
- When completed=true, the operation is finished. Reusing its ID returns the same result instead of deleting newly arrived records. Use a new ID only for a deliberately new cleanup.
request_id Deletion işleminizi tanımlayın, bireysel bir birey değil SMSİzinli format: 16-128 ASCII mektuplar, basamaklar, hipnozlar veya alt işaretler. A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A UUID Kripto.randomUUID() ile üretilen uygun.
Silme işlemi gruplar halinde yürütülür. HTTP 202 ile continue_required=true dönerse 3 saniye sonra action=delete isteğini tekrarlayın. Arka planda cron çalışmaz. action=status yalnızca ilerlemeyi okur ve HTTP 200 dönse bile silmeyi sürdürmez.
Deletion ve durum örnekleri
Başlangıçta kendi eşsiz değerinizle request_id örneklerini değiştirin. Aşağıdaki silekler gerçek hesap tarihini değiştirir; onlar önizleme değildir.
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 Ayrıca kabul de kabul kabul de kabul action=preview veya veya action=delete. POST önerilir: URL parametreleri tarayıcı tarihine ve sunucu loglarına sızdırılabilir. Asla bir halk bağlantı, görüntü veya prefetch'de bir deletion URL'yi yerlemeyin.
For POST, send all parameters in the form body or a JSON object, never in the query string. Unknown parameters are rejected; date or mobile filters are not supported.
Tarih için kimlik doğrulama son noktaları
Use apikey or an Authorization: Bearer access token issued by SMSMobileAPI OAuth2. Do not send a refresh token or an API key as a Bearer token. Expired tokens are refused.
Alanlar ayarlandığında, history:read önizleme /status ve izin verir history:delete Ayrıca deletion izin verir. Hem token hem de tokenler OAuth müşteri uygulanır. kapsamı olmayan Legacy Jetonlar mevcut hesap erişimlerini korur.
OAuth2 Benzersiz birincil birincil seçin API anahtar. Birkaç birincil anahtar var ise, aynı zamanda da sağlar apikey Hesabına ait birini seçmek. Orta anahtarlar asla birincil anahtar tarihine erişmez.
Devam etmeden önce cevabı okuyun
count_delete is the cumulative number removed by this operation. selected_at_start is the initial selection; protected_at_start counts excluded records. Use preview.linked_or_processing to count linked records even when 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."
}
}- completed=true ile 200: bit. Sadece 200 önizleme veya durum yanıtı tamamlanmamıştır.
- 400 INVALID_REQUEST_ID: check the format. 404 REQUEST_NOT_FOUND: no operation exists for this ID, API key and history.
- 401: geçersiz veya süresiz kimlikler. 403: yetersiz OAuth kapsamı veya yetkisiz hesabı.
- 409 HISTORY_BUSY: Başka bir temizlik çalışır; orijinal müşteriden devam edin. 409 INCLUDE_LINKED_CONFLICT: Orijinal include_linked değerini geri yükleyin.
- 409 OAUTH_ACCOUNT_AMBIGUOUS: Bir an için API Bu hesaba ait anahtar.
- 503 veya ağ kesintisi: Bazı partiler zaten tamamlanmış olabilir. Kontrol konfigürasyonu, sonra orijinal ile yeniden başa çıkmak request_id. Geçici bir işlem otomatik olarak yaratmaz.
POST · GET
Send a WhatsApp message
https://api.smsmobileapi.com/sendsmsSends a WhatsApp text or supported media through the connected environment.
Use it for individual recipients or a dashboard contact group.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key; omit when using a Bearer token. |
recipients |
phone | Required | Country code plus number, without + or 00. |
message |
string | Required | Text body; multiple lines are supported. |
waonly |
yes | Required | Must be yes to request WhatsApp-only delivery. |
url_media |
HTTPS URL | Optional | Public PDF, document, archive or JPG/PNG URL. |
url_media_shorted |
yes | Optional | Use a shortened download URL with PDF preview mode. |
pdf_with_image |
yes | Optional | Add an image preview for a PDF. |
encrypt_message |
yes | Optional | Require recipient-side decryption. |
contactGroup |
GUID | Optional | Send to every contact in a dashboard group. |
Request example
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."
Example response
{
"result": {
"error": 0,
"sent": "1",
"id": "MESSAGE_GUID",
"send_with_whatsapp": "1"
}
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Supported media URLs must be public HTTPS resources.
- WhatsApp formatting: *bold*, _italic_, ~strikethrough~ and triple-backtick monospace.
POST · GET
Resend an unsent WhatsApp message
https://api.smsmobileapi.com/resendwa/Retries a WhatsApp message that currently has an error status.
Use it after diagnosing a failed WhatsApp log entry.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key. |
guid |
string | Required | GUID of the failed message. |
Request example
curl "https://api.smsmobileapi.com/resendwa/?apikey=YOUR_API_KEY&guid=MESSAGE_GUID"
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Only failed messages are eligible for resend.
GET
Activate inbound retrieval
https://api.smsmobileapi.com/getwa/active/Activates, deactivates or toggles WhatsApp message retrieval.
Activate collection first. Then, before retrieving received messages, you must request synchronization through /getwa/synchronisation/.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key. |
statut |
0 | 1 | x | Optional | 1 activates, 0 deactivates, x or omission toggles the current state. |
Request example
curl "https://api.smsmobileapi.com/getwa/active/?apikey=YOUR_API_KEY&statut=1"
Example response
{
"success": true,
"read_message_active": 1,
"status_note": "Activated"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Inbound retrieval is disabled by default for privacy.
- Activation alone does not retrieve messages: a synchronization request remains mandatory before using /getwa for newly received activity.
GET
Required: request WhatsApp synchronization
https://api.smsmobileapi.com/getwa/synchronisation/Mandatory security step before retrieving received WhatsApp messages. It opens a time-limited synchronization window.
You must call this endpoint before /getwa whenever you need SMSMobileAPI to check WhatsApp for newly received messages. Wait for recovery, then call /getwa.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key. |
Request example
curl "https://api.smsmobileapi.com/getwa/synchronisation/?apikey=YOUR_API_KEY"
Example response
{
"error": "0",
"messages": "synchronized",
"expire_at": "2026-03-11 12:27:00",
"expire_at_unix": "1773232020"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Synchronization is for receiving messages only. Do not call it before sending.
- The response returns expire_at and expire_at_unix. Request another synchronization window when you need to collect newer received messages.
- A synchronization request is mandatory to protect the exchange between WhatsApp and SMSMobileAPI.
GET
Retrieve WhatsApp messages
https://api.smsmobileapi.com/getwaReturns received WhatsApp messages that were recovered during a requested synchronization window.
Mandatory prerequisite: activate inbound retrieval, call https://api.smsmobileapi.com/getwa/synchronisation/ first, wait for recovery, then call this endpoint. /getwa does not itself start synchronization.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key. |
before |
Unix timestamp | Optional | Return records before this timestamp. |
date |
YYYY-MM-DD | Optional | Return records for one date. |
message_type |
text | audio | Optional | Filter text messages or audio messages converted to text; omit for both. |
Request example
curl "https://api.smsmobileapi.com/getwa/?apikey=YOUR_API_KEY&message_type=text"
Example response
{
"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"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑
GET
Check a WhatsApp number
https://api.smsmobileapi.com/whatsapp/checknumber/Checks whether a phone number is available on WhatsApp.
Use it before sending to reduce avoidable failures.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your API key. |
recipients |
phone | Required | Country code plus number, without + or 00. |
Request example
curl "https://api.smsmobileapi.com/whatsapp/checknumber/?apikey=YOUR_API_KEY&recipients=19176728660"
Example response
{
"contact_found_on_whatsapp": "yes",
"recipients": "19176728660"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑
POST
Create an OAuth2 access token
https://api.smsmobileapi.com/oauth2/tokenExchanges client credentials for a Bearer token.
Use it for server-to-server integrations where short-lived credentials are preferred.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
grant_type |
string | Required | Must be client_credentials. |
client_id |
string | Required | Client ID from the dashboard. |
client_secret |
string | Required | Client secret from the dashboard. |
Request example
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"
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Keep the client secret on your server. Never include it in mobile or browser code.
POST · GET
Gönderilen WhatsApp mesajlarının geçmişini temizle
https://api.smsmobileapi.com/delete-history-whatsapp-sent/WhatsApp mesajlarının açık sunucu kayıtları. WhatsApp konuşmalarından mesajları silmiyor.
İlk önce önizleme kullanın, sayıları kontrol edin, sonra açıkça istek delesyon. Bu, seçilen tüm tarihi açıklar API Anahtar, tarih olmadan, telefon veya mesaj filtreleri.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Optional | Gerekli olmadan Gerekli OAuth2. with . with OAuth2, Seçmeli olarak bir an seçin API Aynı hesaba ait anahtar. |
action |
preview | delete | status | Optional | preview silmeden sayar; delete silmeyi başlatır veya sürdürür; status yalnızca ilerlemeyi gösterir. API varsayılanı delete, bu test aracının varsayılanı preview değeridir. |
include_linked |
0 | 1 | Optional | Varsayılan 0: Bağlantılı veya işleme kayıtlarını tut. Onları içerecek 1 set, kırılma entegrasyonları riski ile. Bu değeri bir delesyon devam ederken değişmeden tutun. |
request_id |
string | Optional | delete ve status için zorunlu, preview için isteğe bağlıdır. 16–128 ASCII harfi, rakam, kısa çizgi (-) veya alt çizgi (_) kullanın. Her yeni silme işlemi için benzersiz bir ID oluşturun ve tüm yeniden denemelerde aynı ID’yi koruyun. Bu bir mesaj ID’si veya API anahtarı değildir. |
Request example
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Deletion ve durum örnekleri
Başlangıçta kendi eşsiz değerinizle request_id örneklerini değiştirin. Aşağıdaki silekler gerçek hesap tarihini değiştirir; onlar önizleme değildir.
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"Example response
{
"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
}
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Yukarıdaki örnek bir önbellek değil, bir deletion. Kontlar açıklayıcıdır; kesin seçim, yıkım başladığında sabitlenir.
- include_linked=1 Bu kesintiyi bozabilir GHL, Zapier, otomasyonlar, Ücretli bağlantılar veya teslimat izleme. Asla hesap mülkiyeti veya depolama bütünlüğü kontrollerini atlamıyor.
POST · GET
Alınan WhatsApp mesajlarının geçmişini temizle
https://api.smsmobileapi.com/delete-history-whatsapp-received/WhatsApp mesajlarının açık sunucu kayıtları. WhatsApp'i veya konuşmaları bozmaz.
İlk önce önizleme kullanın, sayıları kontrol edin, sonra açıkça istek delesyon. Bu, seçilen tüm tarihi açıklar API Anahtar, tarih olmadan, telefon veya mesaj filtreleri.
Parameters
| Ad | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Optional | Gerekli olmadan Gerekli OAuth2. with . with OAuth2, Seçmeli olarak bir an seçin API Aynı hesaba ait anahtar. |
action |
preview | delete | status | Optional | preview silmeden sayar; delete silmeyi başlatır veya sürdürür; status yalnızca ilerlemeyi gösterir. API varsayılanı delete, bu test aracının varsayılanı preview değeridir. |
include_linked |
0 | 1 | Optional | Varsayılan 0: Bağlantılı veya işleme kayıtlarını tut. Onları içerecek 1 set, kırılma entegrasyonları riski ile. Bu değeri bir delesyon devam ederken değişmeden tutun. |
request_id |
string | Optional | delete ve status için zorunlu, preview için isteğe bağlıdır. 16–128 ASCII harfi, rakam, kısa çizgi (-) veya alt çizgi (_) kullanın. Her yeni silme işlemi için benzersiz bir ID oluşturun ve tüm yeniden denemelerde aynı ID’yi koruyun. Bu bir mesaj ID’si veya API anahtarı değildir. |
Request example
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Deletion ve durum örnekleri
Başlangıçta kendi eşsiz değerinizle request_id örneklerini değiştirin. Aşağıdaki silekler gerçek hesap tarihini değiştirir; onlar önizleme değildir.
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"Example response
{
"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
}
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- Yukarıdaki örnek bir önbellek değil, bir deletion. Kontlar açıklayıcıdır; kesin seçim, yıkım başladığında sabitlenir.
- include_linked=1 Bu kesintiyi bozabilir GHL, Zapier, otomasyonlar, Ücretli bağlantılar veya teslimat izleme. Asla hesap mülkiyeti veya depolama bütünlüğü kontrollerini atlamıyor.
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.
| HTTP | Code | What to do |
|---|---|---|
| 400 | missing_parameter | A required parameter is empty or absent. Check the parameter table for the endpoint. |
| 403 | invalid_apikey | The API key is unknown, expired or not authorized for the requested feature. |
| 429 | too_many_requests | Requests are arriving too quickly. Wait, then retry with exponential backoff. |
| 500 | server_error | The service could not complete the request. Keep the response and contact support if it persists. |
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.
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.
- 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


