API de prévisualisation des e-mails.

Affichez du HTML brut, un e-mail envoyé chez nous ou un test terminé dans plus de 50 clients et appareils réels via REST, et récupérez en JSON une capture de chacun.

curl -X POST https://api.unspam.email/ext/v2/client-previews \
  -H "Authorization: Bearer $UNSPAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email_source": "raw-data",
    "subject": "Your order shipped",
    "body": "<!DOCTYPE html><html>...</html>",
    "devices": ["iphone18pro_27", "iphone18pro_27_dm"]
  }'

# interrogez l’id jusqu’à ce que status soit completed
{
  "id": "3f9a2c8e-1d4b-4c7a-9f2e-7b1e5da0c62f",
  "status": "pending"
}
curl -X POST https://api.unspam.email/ext/v2/client-previews \
  -H "Authorization: Bearer $UNSPAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "email_source": "spam-check", "source_id": "2Bl8rzTFN6VV" }'

# les deux autres sources
"email_source": "inbox-placement"  # source_id
"email_source": "email"            # inbox_address
curl https://api.unspam.email/ext/v2/client-previews/3f9a2c8e-1d4b-4c7a-9f2e-7b1e5da0c62f \
  -H "Authorization: Bearer $UNSPAM_TOKEN"

# réponse (200)
{
  "status": "completed",
  "previews": [
    {
      "device_key": "iphone18pro_27",
      "device_name": "iPhone 18 Pro (iOS 27)",
      "status": "completed",
      "original": "https://…/original.png",
      "thumbnail": "https://…/thumb.jpg",
      "download": "https://…/download"
    }
  ]
}
Endpoints
4
Sources d’e-mail
4
Authentification
Token bearer
Limite de requêtes
100 par minute

Pourquoi les équipes intègrent les prévisualisations à leur pipeline.

Des captures de clients réels, pas des simulations.

Chaque prévisualisation est votre e-mail ouvert dans une copie réelle du client et de l’appareil, puis capturé en image. Aucune transformation CSS, aucune émulation de navigateur : l’image que vous recevez est exactement ce que voit un abonné sur ce client.

Clair et sombre en rendus séparés.

Les clients que nous capturons en mode sombre ont un rendu sombre séparé, avec sa propre clé d’appareil : le logo inversé ou le texte illisible en mode sombre apparaissent dans votre pipeline, pas en production.

Ciblez les rendus avec le paramètre devices.

Passez devices avec des clés du catalogue pour n’afficher que les clients qui comptent pour vous (seulement iOS Mail, seulement tous les Outlook), ou omettez-le pour tous les appareils de votre forfait. Les appareils demandés reviennent en pending ; interrogez jusqu’à ce que chacun soit en completed ou failed.

Des outils MCP pour les agents IA.

Les endpoints de prévisualisation sont livrés comme outils MCP (create_client_preview, list_client_preview_devices) sur le serveur MCP d’Unspam : Claude, Cursor ou n’importe quel client MCP peut donc récupérer de vrais rendus de clients en pleine conversation.

Ce que renvoient les endpoints de prévisualisation.

Des captures de clients réels en JSON : une entrée par appareil, avec l’image en taille réelle, une miniature et un lien de téléchargement.

Quatre façons de fournir l’e-mail.

Mettez email_source à spam-check ou inbox-placement et passez l’id du test en source_id, à raw-data avec vos propres subject et body en HTML, ou à email pour obtenir un brouillon avec une inbox_address et y envoyer le message.

Le body de raw-data doit être le HTML complet d’un e-mail mis en forme, d’au moins 1 000 caractères et 10 éléments HTML, sinon il est refusé avec 422. Un message envoyé à un brouillon sans HTML, ou avec trop peu, n’est ni rendu ni facturé : le brouillon garde son adresse et renseigne rejection_reason.

  • spam-check source_id
  • inbox-placement source_id
  • raw-data subject, body
  • email inbox_address

Des rendus au pixel près, appareil par appareil.

GET /client-previews/{id} renvoie un status global et un tableau previews[] avec une entrée par appareil : device_key, device_name, sa catégorie, le status de l’appareil et les URL original, thumbnail et download.

Les URL d’images restent à null jusqu’à ce que l’appareil passe à completed : une simple boucle d’interrogation vide donc tout l’ensemble. Un appareil peut aussi finir en failed, arrêtez-vous donc aussi sur cet état. GET /client-previews liste vos aperçus raw-data et email ; ceux des tests s’obtiennent via le client_preview_id du test.

gmail · clair
outlook · sombre
iphone

Un catalogue d’appareils sur lequel filtrer.

GET /client-preview-devices liste chaque client dont le rendu est possible avec son device_key, son nom affiché et sa catégorie, c’est-à-dire la famille de clients, par exemple Gmail, iPhone / iPad ou Outlook desktop (Windows). Mettez-le en cache, affichez-le dans votre propre interface ou servez-vous-en pour construire le filtre devices de l’appel de rendu.

Le filtrage sert la lisibilité et votre quota : chaque appareil d’une demande consomme une prévisualisation d’appareil. Un job CI déclenché à chaque modification de modèle peut donc ne générer que les trois versions d’Outlook qui comptent, consommer trois prévisualisations et n’examiner que celles-là.

  • Gmail.com (Chrome, Windows 10) Gmail
  • iPhone 18 Pro (iOS 27) iPhone / iPad
  • Apple Mail 16 (macOS 13) Apple Mail (macOS)
  • Yahoo (Chrome) Yahoo
  • AOL (Chrome) AOL

Les mêmes prévisualisations, appelables par des agents IA via MCP.

Connectez le serveur MCP d’Unspam par OAuth et votre assistant obtient les outils de prévisualisation aux côtés des tests de spam et du placement en boîte de réception. Demandez-lui de générer le rendu de la campagne et de signaler tout ce qui casse en mode sombre sur Outlook : il enchaîne les appels tout seul.

La prise en charge de MCP permet à vos workflows d’agents de vérifier des rendus de clients réels sans que personne n’ouvre un tableau de bord.

  • Générez le rendu de cette campagne create_client_preview
  • Quels clients pouvez-vous prévisualiser ? list_client_preview_devices
  • Lancez le test complet start_spam_check

Le fonctionnement de l’API de prévisualisation en quatre étapes.

Les aperçus sont asynchrones : choisissez la provenance de l’e-mail, créez l’aperçu, puis lisez les rendus par appareil.

  1. 01

    Choisissez la provenance de l’e-mail

    Un test de spam ou de placement terminé, votre propre objet et HTML, ou un message envoyé à une adresse de brouillon.

  2. 02

    Créez l’aperçu

    POST /ext/v2/client-previews avec email_source et ce que cette source demande. La réponse 201 contient l’id de l’aperçu et, pour la source email, l’inbox_address à laquelle envoyer.

  3. 03

    Lisez les rendus

    Interrogez GET /ext/v2/client-previews/{id} avec un back-off. Chaque appareil passe de pending à completed ou failed, et ses URL d’images apparaissent à mesure qu’il se termine.

  4. 04

    Filtrer les appareils au besoin (facultatif)

    Récupérez le catalogue avec GET /ext/v2/client-preview-devices et passez devices dans le corps du POST pour n’afficher qu’une sélection. Les clés inconnues sont ignorées, et l’appel ne répond 422 que si aucune n’est disponible.

Les endpoints derrière.

4 endpoints, avec le même token que le reste de l’API. Le document OpenAPI détaille chaque paramètre et code de réponse.

Document OpenAPI
Client Previews 4 appels
  • GET /client-preview-devices
  • GET /client-previews
  • POST /client-previews
  • GET /client-previews/{id}

Questions fréquentes sur l’API.

Intégration, filtrage par appareil, accès MCP pour les agents IA et comportement des endpoints de prévisualisation.

Comment obtenir l’accès à l’API ?
L’accès à l’API est inclus dans le plan sur mesure, que vous achetez en ligne : choisissez le volume mensuel de chaque test sur la page des tarifs, à partir d’un minimum de $5, et les tarifs baissent à mesure que vous grandissez. Vous pouvez l’intégrer à votre propre produit et le revendre sous votre propre marque. Pour toute autre question, ouvrez un ticket d’assistance.
Comment se déroule le flux de prévisualisation ?
Choisissez une source et appelez POST /ext/v2/client-previews : raw-data avec subject et body pour du HTML pas encore envoyé, email pour une adresse de brouillon à laquelle envoyer un message, ou spam-check ou inbox-placement avec l’id du test en source_id. Ensuite, GET /ext/v2/client-previews/{id} renvoie une entrée par appareil avec son status et les URL d’images. Les appareils se terminent indépendamment : interrogez jusqu’à ce que l’ensemble voulu soit fini.
Puis-je ne générer que certains clients ?
Oui. Passez devices dans le corps de POST /ext/v2/client-previews avec des clés issues de GET /ext/v2/client-preview-devices pour ne générer qu’un sous-ensemble, par exemple uniquement iOS Mail ou uniquement la famille Outlook. Chaque demande de prévisualisation consomme une prévisualisation d’appareil sur votre limite, quel que soit le nombre d’appareils : restreindre le rendu change ce que vous recevez, pas ce que cela coûte. Avec le plan sur mesure, le catalogue comprend aussi des rendus sur les appareils les plus récents : iPhone 18 Pro, l’application Gmail sur Pixel 10 et iPhone 16, l’application Outlook Microsoft 365 sur Windows 11 et macOS, New Outlook for Windows et Gmail web dans Chrome.
Les prévisualisations viennent-elles de clients réels ou de simulations ?
De clients réels. Chaque rendu est votre e-mail ouvert dans une copie réelle du client et de l’appareil, puis capturé en image, avec un rendu sombre séparé pour les clients que nous capturons en mode sombre. C’est toute la différence entre une API de rendu d’e-mails bâtie sur des clients réels et les simulations par transformation CSS que renvoient la plupart des outils de prévisualisation gratuits.
Puis-je m’en servir pour la QA du rendu en CI ?
C’est le cas d’usage principal. Faites passer un changement de modèle par l’API dans une étape de CI, récupérez les rendus de vos clients essentiels et joignez-les comme artefacts de build ou comparez-les à l’exécution précédente. Prenez un test de spam comme source et la même exécution renvoie le score de spam : un seul job couvre le rendu et la délivrabilité.
Les agents IA peuvent-ils lancer des prévisualisations d’e-mails ?
Oui. Les endpoints de prévisualisation sont exposés comme outils sur le serveur MCP d’Unspam : create_client_preview, list_client_previews et list_client_preview_devices, aux côtés des outils de test de spam et de placement en boîte de réception. Connectez Claude, Cursor ou ChatGPT par OAuth et demandez des rendus en langage naturel ; aucune clé à coller.
Quelle différence avec l’endpoint des captures d’écran ?
/spam-check/{id}/screenshots renvoie trois rendus par viewport (ordinateur, tablette, mobile) du message. POST /client-previews affiche l’e-mail dans plus de 50 applications clientes réelles, avec des rendus sombres pour les clients que nous capturons en mode sombre : il détecte ainsi les défauts propres à chaque client, comme le moteur Word d’Outlook ou un logo inversé en mode sombre.
Quelles sont les limites de requêtes ?
La limite publique est de 100 requêtes par minute par IP ou par compte authentifié. L’interrogation des prévisualisations y tient largement avec un back-off normal. S’il vous faut une limite plus élevée, ouvrez un ticket d’assistance en indiquant le débit attendu.
Puis-je l’intégrer à mon propre produit et le revendre ?
Oui, avec le plan sur mesure. Chaque prévisualisation revient en JSON avec une URL d’image par client de messagerie et par appareil : vous pouvez donc afficher les rendus dans votre propre interface et les revendre à vos clients sous votre propre marque.

Prêt à générer vos rendus d’e-mails depuis votre propre stack ?

L’accès à l’API est inclus dans le plan sur mesure, qui s’achète en ligne à partir d’un minimum de $5 par mois. Intégrez-le à votre propre produit et revendez-le sous votre propre marque.