Hier beginnen
Your first request in four steps
Configure a mailbox in the dashboard.
Copy both apikey and the mailbox apikeybox.
Send a simple text email first.
Add attachments or embedded images only after the basic request works.
WEBHOOK V2 FÜR DIESE API
Abonnieren Sie nur die mobilen Ereignisse, die Ihr Workflow benötigt.
Ein Ziel kann alles empfangen, oder Sie trennen Produktionssysteme, Analytics und operative Alerts. Jedes Ereignis hat einen präzisen Namen, sodass Ihre Anwendung es vorhersehbar verarbeiten kann.
email.sentE-Mail gesendet
Eine E-Mail-Sendeanforderung wurde von SMSMobileAPI erstellt.
email.receivedE-Mail empfangen
Ein verbundenes Postfach hat eine E-Mail empfangen.
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.
Historische Verwaltung
Historie sicher löschen: Vorschau, Löschen, Fortschritt verfolgen
Diese Endpunkte löschen den ausgewählten Serververlauf für Ihren API-Schlüssel, nicht Nachrichten auf Telefonen oder externen Diensten. Sie bieten keine Kontolöschung. Neue Aktivität kann nach dem Löschen erscheinen.
Lesen Sie den request_id und Retry Guide
Standardmäßig bleiben verknüpfte oder Verarbeitungsdatensätze sichtbar. Verwenden Sie include_linked=1 nur, wenn Sie akzeptieren, dass Integrationen oder laufende Verarbeitungen möglicherweise nicht mehr funktionieren.
Wie request_id funktioniert
- Zeigen Sie die Zählungen mit action=preview an. Es wird kein request_id benötigt und es werden keine Datensätze gelöscht.
- Generieren Sie eine eindeutige request_id für eine neue Löschung, zum Beispiel eine UUID. Speichern Sie es vor dem Senden von action=delete.
- Für Wiederholungen, Timeouts oder HTTP 202 verwenden Sie den gleichen API-Schlüssel, den Historienendpunkt, den request_id- und den include_linked-Wert erneut. Generieren Sie niemals automatisch eine neue ID nach einem Fehler.
- Wenn completed=true, ist die Operation beendet. Die Wiederverwendung seiner ID gibt das gleiche Ergebnis zurück, anstatt neu angekommene Datensätze zu löschen. Verwenden Sie eine neue ID nur für eine bewusst neue Bereinigung.
request_id identifiziert Ihren Löschvorgang, nicht einen individuellen SMS. Erlaubtes Format: 16–128 ASCII Buchstaben, Ziffern, Bindestriche oder Unterstriche. Geeignet ist ein mit crypto.randomUUID() erzeugtes UUID.
Die Löschung erfolgt stapelweise. Bei HTTP 202 mit continue_required=true wiederholen Sie action=delete nach 3 Sekunden. Es gibt keinen Hintergrund-Cron. action=status liest nur den Fortschritt und setzt die Löschung nicht fort, auch bei HTTP 200.
Lösch- und Statusbeispiele
Ersetzen Sie das Beispiel request_id durch Ihren eigenen eindeutigen Wert, bevor Sie beginnen. Die folgenden Löschanforderungen ändern den realen Kontoverlauf; sie sind keine Vorschau.
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"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"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 akzeptiert auch action=preview oder action=delete. POST wird empfohlen: URL-Parameter können in den Browserverlauf und die Serverprotokolle gelangen. Legen Sie niemals eine Lösch-URL in einen öffentlichen Link, ein Bild oder einen Prefetch ein.
Senden Sie für POST alle Parameter im Formularkörper oder einem JSON-Objekt, niemals in der Abfragezeichenfolge. Unbekannte Parameter werden abgelehnt; Datums- oder mobile Filter werden nicht unterstützt.
Authentifizierung für History-Endpunkte
Verwenden Sie apikey oder ein Authorization: Bearer-Zugriffstoken, das von SMSMobileAPI OAuth2 ausgegeben wurde. Senden Sie kein Refresh-Token oder einen API-Schlüssel als Bearer-Token. Expired Tokens werden abgelehnt.
Wenn die Bereiche festgelegt sind, erlaubt history:read Vorschau/Status und history:delete erlaubt auch das Löschen. Es gelten Einschränkungen sowohl für den Token als auch für den OAuth-Client. Legacy-Token ohne Scopes behalten ihren bestehenden Kontozugriff.
OAuth2 wählt den eindeutigen primären API-Schlüssel aus. Wenn mehrere Primärschlüssel vorhanden sind, geben Sie auch apikey an, um einen zum Konto gehörenden auszuwählen. Sekundärschlüssel gewähren niemals Zugriff auf die Primärschlüsselhistorie.
Lesen Sie die Antwort, bevor Sie fortfahren
count_delete ist die kumulative Zahl, die durch diese Operation entfernt wird. selected_at_start ist die erste Auswahl; protected_at_start zählt ausgeschlossene Datensätze. Verwenden Sie preview.linked_or_processing, um verknüpfte Datensätze zu zählen, auch wenn include_linked=1.
{
"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 mit completed=true: fertig. Eine 200-Vorschau oder Statusantwort allein beweist keine Vollendung.
- 400 INVALID_REQUEST_ID: Überprüfen Sie das Format. 404 REQUEST_NOT_FOUND: Es gibt keine Operation für diese ID, API-Schlüssel und Historie.
- 401: ungültige oder abgelaufene Anmeldeinformationen. 403: unzureichender OAuth-Bereich oder nicht autorisiertes Konto.
- 409 HISTORY_BUSY: eine weitere Bereinigung läuft; setzen Sie sie vom ursprünglichen Client fort. 409 INCLUDE_LINKED_CONFLICT: Wiederherstellung des ursprünglichen include_linked-Werts.
- 409 OAUTH_ACCOUNT_AMBIGUOUS: Geben Sie einen API-Schlüssel an, der zu diesem Konto gehört.
- 503 oder Netzwerkunterbrechung: Einige Batches können bereits abgeschlossen sein. Überprüfen Sie die Konfiguration und versuchen Sie es dann erneut mit dem ursprünglichen request_id. Erstellen Sie keinen Ersatzvorgang automatisch.
POST
Send an email
https://api.smsmobileapi.com/sendemail/Sends plain-text or HTML email through a configured mailbox.
Use it for transactional or operational email from your application.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
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 |
Required | Sender email address. | |
recipient_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 | Fakultativ | Adds unsubscribe terms and a link. |
email_cc1 |
Fakultativ | First optional CC recipient. | |
email_cc2 |
Fakultativ | Second optional CC recipient. | |
email_cc3 |
Fakultativ | Third optional CC recipient. | |
attachmentBase64 |
base64 | Fakultativ | Base64-encoded attachment content. |
attachmentBase64_name_1 |
filename | Fakultativ | Original attachment file name with extension, for example invoice.pdf. Required when attachmentBase64 has a value. |
charset |
string | Fakultativ | Character set; default UTF-8. |
embeddedImage |
HTTPS URL | Fakultativ | Image to embed in the email. |
embeddedImage_cid |
string | Fakultativ | Content-ID referenced from the HTML body. |
format |
string | Fakultativ | Requested response format. |
reply_name |
string | Fakultativ | Reply-to display name. |
reply_email |
Fakultativ | Reply-to address. |
Request example
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 ↑- 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
https://api.smsmobileapi.com/getemail/Retrieves messages from a configured mailbox folder.
Use it to synchronize inbound email into a help desk or application workflow.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
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 "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 ↑- Responses include available subject, sender, recipient, body, timestamp and attachment details.
GET
Check unsubscribed contacts
https://api.smsmobileapi.com/email/unsubscribed/Checks unsubscribe records generated by emails sent through the platform.
Use it before sending campaigns and when synchronizing suppression lists.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your account API key. |
apikeybox |
string | Required | Mailbox API key. |
email |
Fakultativ | Filter one contact. An empty result means no unsubscribe record was found. |
Request example
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 ↑- Keep your own recipient database synchronized with unsubscribe results.
- You remain responsible for applicable anti-spam and privacy rules.
POST · GET
Verlauf gesendeter E-Mails löschen
https://api.smsmobileapi.com/delete-history-email/Clears schickte E-Mail-Logs für diesen API-Schlüssel über Postfächer hinweg. Es löscht keine Nachrichten in einer Mailbox. Es ist kein apikeybox erforderlich.
Verwenden Sie zuerst die Vorschau, überprüfen Sie die Zählungen und fordern Sie dann explizit die Löschung an. Dadurch wird der gesamte ausgewählte Verlauf für den API-Schlüssel ohne Datums-, Telefon- oder Nachrichtenfilter gelöscht.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Fakultativ | Erforderlich ohne OAuth2. Wählen Sie bei OAuth2 optional einen API-Schlüssel aus, der zum selben Konto gehört. |
action |
preview | delete | status | Fakultativ | preview zählt ohne zu löschen; delete startet oder setzt die Löschung fort; status zeigt nur den Fortschritt. Standard der API: delete. Standard dieses Testers: preview. |
include_linked |
0 | 1 | Fakultativ | Standard 0: Verlinkte Datensätze beibehalten oder Datensätze verarbeiten. Set 1 um sie einzuschließen, mit dem Risiko, Integrationen zu unterbrechen. Behalten Sie diesen Wert unverändert, wenn Sie eine Löschung fortsetzen. |
request_id |
string | Fakultativ | Für delete und status erforderlich, für preview optional. Verwenden Sie 16–128 ASCII-Buchstaben, Ziffern, Bindestriche (-) oder Unterstriche (_). Erzeugen Sie pro neuer Löschung eine eindeutige ID und behalten Sie sie bei jedem Wiederholungsversuch. Dies ist weder eine Nachrichten-ID noch ein API-Schlüssel. |
Request example
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Lösch- und Statusbeispiele
Ersetzen Sie das Beispiel request_id durch Ihren eigenen eindeutigen Wert, bevor Sie beginnen. Die folgenden Löschanforderungen ändern den realen Kontoverlauf; sie sind keine Vorschau.
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"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"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
{
"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 ↑- Das obige Beispiel ist eine Vorschau, keine Löschung. Zählungen sind illustrativ; die endgültige Auswahl wird festgelegt, wenn die Löschung beginnt.
- include_linked=1 kann GHL, Zapier, Automatisierungen, Abmeldelinks oder Lieferverfolgung stören. Es umgeht niemals Kontobesitz- oder Speicherintegritätsprüfungen.
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


