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

Documentation de l'API de messagerie

Envoyer un e-mail sans partager les mots de passe de la boîte aux lettres, récupérer le contenu de la boîte aux lettres et vérifier l'état de désabonnement.

Canaux de messagerie et de messagerie connectés synchronisés via le cloud
URL de base RESThttps://api.smsmobileapi.com

Réponses JSON · HTTPS requis · UTF-8

Connectez votre clé API

Connectez-vous une fois, puis testez les points de terminaison via SMS, appels, notifications, WhatsApp et e-mail.

Commencez ici

Votre première demande en quatre étapes

1

Configurer une boîte aux lettres dans le tableau de bord.

2

Copiez à la fois apikey et la boîte aux lettres apikeybox.

3

Envoyez un simple e-mail texte d'abord.

4

Ajoutez des pièces jointes ou des images intégrées uniquement après que la requête de base ait fonctionné.

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.

Authentification

Conservez les informations d'identification sur votre serveur

Les points de terminaison de messagerie nécessitent l'apikey du compte et l'apikeybox spécifique à la boîte aux lettres. Stockez les deux informations d'identification côté serveur et masquez-les dans les journaux d'application.

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"
Statut de l' EEG
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.
POSTE

Envoyer un e-mail

#
POINT D'ARRIVÉEhttps://api.smsmobileapi.com/sendemail/

Envoie un e-mail en texte brut ou HTML via une boîte aux lettres configurée.

Quand l'utiliser

Utilisez-le pour les e-mails transactionnels ou opérationnels à partir de votre application.

Paramètres

NomTaperExigenceDésignation des marchandises
apikey chaîne Requis Clé API de votre compte.
apikeybox chaîne Requis Clé API de l'application configurée. boîte aux lettres.
sender_name chaîne Requis Nom d'affichage de l'expéditeur.
sender_email e-mail Requis Adresse e-mail de l'expéditeur.
recipient_email e-mail Requis Adresse du destinataire.
mail_subject chaîne Requis Objet de l'e-mail.
mail_body chaîne Requis Texte brut ou corps HTML.
allow_self_signed oui | non Requis Défini sur oui uniquement lorsque le serveur de messagerie configuré utilise un certificat auto-signé interne de confiance.
unsubscribe 1 Facultatif Ajoute des conditions de désabonnement et un lien.
email_cc1 e-mail Facultatif Premier destinataire CC facultatif.
email_cc2 e-mail Facultatif Deuxième destinataire CC facultatif.
email_cc3 e-mail Facultatif Troisième destinataire CC facultatif.
attachmentBase64 base64 Facultatif Contenu de pièce jointe codé en Base64.
attachmentBase64_name_1 nom du fichier Facultatif Nom original du fichier joint avec extension, par exemple facture.pdf. Requis lorsque la valeur de la pièce jointeBase64 est utilisée.
charset chaîne Facultatif Jeu de caractères ; UTF-8 par défaut.
embeddedImage URL HTTPS Facultatif Image à intégrer dans l'e-mail.
embeddedImage_cid chaîne Facultatif Content-ID référencé à partir du corps HTML.
format chaîne Facultatif Format de réponse demandé.
reply_name chaîne Facultatif Nom d'affichage de la réponse.
reply_email e-mail Facultatif Adresse de réponse.

Exemple de demande

boucle
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"

Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.

Clé de connexion ↑
Bien pour savoir
  • Préférez le POST car le corps des e-mails peut être long.
  • Si la pièce jointeBase64 est fournie, la pièce jointeBase64 name 1 est requise et doit inclure l'extension du fichier.
  • Les pièces jointes Base64 peuvent rendre les requêtes volumineuses ; appliquez des limites de taille raisonnables dans votre application.
OBTENIR

Récupérer des e-mails

#
POINT D'ARRIVÉEhttps://api.smsmobileapi.com/getemail/

Récupère les messages d'un dossier de boîte aux lettres configuré.

Quand l'utiliser

Utilisez-le pour synchroniser les e-mails entrants dans un service d'assistance ou un flux de travail d'application.

Paramètres

NomTaperExigenceDésignation des marchandises
apikey chaîne Requis Clé API de votre compte.
apikeybox chaîne Requis Clé API de boîte aux lettres.
mbox chaîne Requis Dossier de boîte aux lettres, par exemple BOÎTE DE RÉCEPTION.
start entier Requis Index de départ ; utilisez 0 pour la première page.

Exemple de demande

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

Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.

Clé de connexion ↑
Bien pour savoir
  • Les réponses incluent le sujet, l'expéditeur, le destinataire, le corps, l'horodatage et les détails des pièces jointes.
OBTENIR

Vérifier les contacts non abonnés

#
POINT D'ARRIVÉEhttps://api.smsmobileapi.com/email/unsubscribed/

Vérifie les enregistrements de désabonnement générés par les e-mails envoyés via la plateforme.

Quand l'utiliser

Utilisez-le avant d'envoyer des campagnes et lors de la synchronisation des listes de suppression.

Paramètres

NomTaperExigenceDésignation des marchandises
apikey chaîne Requis Clé API de votre compte.
apikeybox chaîne Requis Clé API de boîte aux lettres.
email e-mail Facultatif Filtrer un contact. Un résultat vide signifie qu'aucun enregistrement de désabonnement n'a été trouvé.

Exemple de demande

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

Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.

Clé de connexion ↑
Bien pour savoir
  • Gardez votre propre base de données de destinataires synchronisée avec les résultats de désabonnement.
  • Vous restez responsable des règles anti-spam et de confidentialité applicables.
POSTE · GET

Effacer l'historique des courriels envoyés

#
POINT D'ARRIVÉEhttps://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.

Quand l'utiliser

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.

Paramètres

NomTaperExigenceDésignation des marchandises
apikey chaîne Facultatif Requis sans OAuth2. Avec OAuth2, sélectionnez en option une clé API appartenant au même compte.
action prévisualiser , supprimer , statut 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 chaîne 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.

Exemple de demande

boucle
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"
Statut de l' EEG
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"

Exemple de réponse

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
    }
}

Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.

Clé de connexion ↑
Bien pour savoir
  • 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.

Dépannage

Erreurs et tentatives sécurisées

Lisez l'état HTTP et le champ d'erreur JSON avant de réessayer. Ne réessayez pas les échecs de validation ou d'authentification sans d'abord corriger la demande.

HTTPCodeQue faire
400missing_parameterUn paramètre obligatoire est vide ou absent. Vérifiez la table des paramètres du point de terminaison.
403invalid_apikeyLa clé API est inconnue, expirée ou non autorisée pour la fonctionnalité demandée.
429too_many_requestsLes demandes arrivent trop rapidement. Attendez, puis réessayez avec un intervalle exponentiel.
500server_errorLe service n'a pas pu terminer la demande. Conservez la réponse et contactez l'assistance si elle persiste.
Règle de nouvelle tentativeRéessayez uniquement les réponses 429 et 5xx transitoires. Commencez après 1 seconde, puis revenez à 2, 4 et 8 secondes.

Besoin d'aide ?

Apportez le contexte de la requête, pas vos secrets.

Partagez le point de terminaison, l'horodatage, l'état HTTP et la réponse nettoyée. N'incluez jamais de clés API, de jetons ou de contenu de message privé.

Contactez l'assistance API →