Vos SMS partent de votre propre mobile.Découvrez comment
PLATFORMEArchitecture API-premièreJumelage sécurisé de l'appareilVisibilité de la livraisonContrôle multi-appareilsDocumentation en version
Hub des développeurs/API de messagerie

MAIL · 4 opérations documentées

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.

Commencez ici

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 POUR CETTE API

Abonnez-vous uniquement aux événements mobiles dont votre workflow a besoin.

2 types d'événements

Une destination peut tout recevoir, ou vous pouvez séparer les systèmes de production, l'analytique et les alertes opérationnelles. Chaque événement porte un nom précis afin que votre application puisse le traiter de manière prévisible.

email.sent

E-mail envoyé

Une demande d'envoi d'e-mail a été créée par SMSMobileAPI.

email.received

E-mail reçu

Une boîte aux lettres connectée a reçu un e-mail.

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.

Gestion des historiques

Vider l’historique en toute sécurité : vérifier, supprimer et suivre l’avancement

Ces endpoints vident l’historique serveur sélectionné pour votre clé API, pas les messages sur les téléphones ou les services externes. Ils ne constituent pas une procédure d’effacement du compte. Une nouvelle activité peut apparaître après le nettoyage.

Comprendre request_id et la reprise d’une suppression
Protection des intégrations

Par défaut, les lignes liées à un service ou en cours de traitement restent visibles. Utilisez include_linked=1 uniquement si vous acceptez le risque d’interrompre les intégrations ou les traitements en cours.

Comment fonctionne request_id

  1. Vérifiez le nombre de lignes avec action=preview. Aucun request_id n’est nécessaire et aucune ligne n’est supprimée.
  2. Générez un request_id unique pour une nouvelle suppression, par exemple un UUID. Conservez-le avant d’envoyer action=delete.
  3. Pour reprendre après une erreur, un délai dépassé ou une réponse HTTP 202, réutilisez la même clé API, le même endpoint d’historique, le même request_id et la même valeur include_linked. Ne générez jamais automatiquement un nouvel identifiant après une erreur.
  4. Lorsque completed=true, l’opération est terminée. Réutiliser son identifiant renvoie le même résultat sans supprimer les nouvelles lignes arrivées entre-temps. Utilisez un nouvel identifiant uniquement pour démarrer volontairement un nouveau nettoyage.

request_id identifie votre opération de suppression, et non un SMS individuel. Format autorisé : 16-128 lettres, chiffres, tirets ou soulignements ASCII. Un UUID généré avec crypto.randomUUID() est approprié.

La suppression s’effectue par lots. Une réponse HTTP 202 avec continue_required=true demande de répéter action=delete après 3 secondes. Aucun cron ne prend le relais. action=status consulte uniquement l’avancement, même si la réponse HTTP vaut 200.

Exemples de suppression et de consultation de l’avancement

Remplacez le request_id d’exemple par votre propre identifiant unique avant de commencer. Les requêtes delete ci-dessous modifient réellement l’historique du compte : ce ne sont pas des aperçus.

POST · Clé 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 · status
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 accepte aussi action=preview ou action=delete. POST est recommandé : les paramètres d’URL peuvent apparaître dans l’historique du navigateur et les journaux serveur. N’insérez jamais une URL de suppression dans un lien public, une image ou un mécanisme de préchargement.

Pour POST, envoyez tous les paramètres du corps du formulaire ou d'un objet JSON, jamais dans la chaîne de requête. Les paramètres inconnus sont rejetés; les filtres mobiles ou la date ne sont pas pris en charge.

Authentification des endpoints d’historique

Utiliser apikey ou un jeton d'accès Authorization: Bearer émis par SMSMobileAPI OAuth2. N'envoyez pas de jeton de rafraîchissement ou de clé API sous forme de jeton Bearer. Les jetons périmés sont refusés.

Lorsque des scopes sont définis, history:read autorise preview et status ; history:delete autorise aussi la suppression. Les restrictions du jeton et du client OAuth s’appliquent toutes les deux. Les anciens jetons sans scope conservent leur accès existant au compte.

OAuth2 sélectionne la clé API primaire unique. Si plusieurs clés primaires existent, fournir également apikey pour sélectionner une appartenant au compte. Les clés secondaires n'accordent jamais l'accès à l'historique de la clé primaire.

Lire la réponse avant de continuer

count_delete est le nombre cumulatif retiré par cette opération. selected_at_start est la sélection initiale; protected_at_start compte les enregistrements exclus. Utilisez preview.linked_or_processing pour compter les enregistrements liés même lorsque include_linked=1.

JSON · HTTP 202
{
    "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 avec completed=true : terminé. Une réponse HTTP 200 à preview ou status ne suffit pas, à elle seule, à confirmer la fin de la suppression.
  • 400 INVALID_REQUEST_ID : vérifiez le format de l’identifiant. 404 REQUEST_NOT_FOUND : aucune opération ne correspond à cet identifiant, cette clé API et cet historique.
  • 401 : identifiants invalides ou expirés. 403 : autorisations OAuth insuffisantes ou compte non autorisé.
  • 409 HISTORY_BUSY : un autre nettoyage est en cours ; continuez-le depuis le client original. 409 INCLUDE_LINKED_CONFLICT : restaurer la valeur originale de include_linked.
  • 409 OAUTH_ACCOUNT_AMBIGUOUS: fournir une clé API appartenant à ce compte.
  • 503 ou interruption du réseau : certains lots peuvent déjà être complétés. Vérifiez la configuration, puis reessayez avec le request_id original. Ne créez pas automatiquement une opération de remplacement.
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

NomTypeRequirementDescription
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 Facultatif Adds unsubscribe terms and a link.
email_cc1 email Facultatif First optional CC recipient.
email_cc2 email Facultatif Second optional CC recipient.
email_cc3 email Facultatif Third optional CC recipient.
attachmentBase64 base64 Facultatif Base64-encoded attachment content.
attachmentBase64_name_1 filename Facultatif Original attachment file name with extension, for example invoice.pdf. Required when attachmentBase64 has a value.
charset string Facultatif Character set; default UTF-8.
embeddedImage HTTPS URL Facultatif Image to embed in the email.
embeddedImage_cid string Facultatif Content-ID referenced from the HTML body.
format string Facultatif Requested response format.
reply_name string Facultatif Reply-to display name.
reply_email email Facultatif 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

NomTypeRequirementDescription
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

NomTypeRequirementDescription
apikey string Required Your account API key.
apikeybox string Required Mailbox API key.
email email Facultatif 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

Effacer l'historique des courriels envoyés

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

Vide les journaux d’e-mails envoyés associés à cette clé API, toutes boîtes configurées confondues. Les messages dans les boîtes mail ne sont pas supprimés. Aucune apikeybox n’est nécessaire.

When to use it

Commencez par preview, vérifiez les compteurs, puis demandez explicitement la suppression. Elle concerne tout l’historique sélectionné pour la clé API, sans filtre de date, de mobile ou de message.

Parameters

NomTypeRequirementDescription
apikey string Facultatif Requis sans OAuth2. Avec OAuth2, sélectionnez en option une clé API appartenant au même compte.
action preview | delete | status Facultatif preview compte les lignes sans les supprimer ; delete démarre ou poursuit la suppression ; status consulte l’avancement sans poursuivre. L’API utilise delete par défaut ; ce testeur choisit preview par sécurité.
include_linked 0 | 1 Facultatif Valeur par défaut : 0, pour conserver les lignes liées ou en cours de traitement. Choisissez 1 pour les inclure, au risque de perturber les intégrations. Conservez la même valeur lors de la reprise d’une suppression.
request_id string Facultatif Obligatoire pour delete et status, facultatif pour preview. Utilisez 16 à 128 lettres, chiffres, tirets (-) ou tirets bas (_). Générez un identifiant unique par nouvelle suppression et conservez-le pour chaque reprise. Il ne s’agit ni de l’identifiant d’un message ni d’une clé 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"
Exemples de suppression et de consultation de l’avancement

Remplacez le request_id d’exemple par votre propre identifiant unique avant de commencer. Les requêtes delete ci-dessous modifient réellement l’historique du compte : ce ne sont pas des aperçus.

POST · Clé 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 · status
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
  • L'exemple ci-dessus est un aperçu, pas une suppression. Les nombres sont des exemples; la sélection définitive est fixée lorsque la suppression commence.
  • include_linked=1 peut perturber GHL, Zapier, les automatismes, les liens de désabonnement ou le suivi de la livraison. Il ne contourne jamais les contrôles d'intégrité de la propriété ou du stockage des comptes.

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.