Documentation menu

Démarrage rapide

L'API d'envoi transactionnel permet à votre propre backend de déclencher un email — de la même façon que vous appelleriez l'endpoint d'envoi de Brevo, SendGrid ou Postmark. Elle convient naturellement aux OTP, reçus et alertes, et peut aussi déclencher un projet que vous avez conçu dans le studio, avec vos propres données se substituant à une ligne de contact.

Générer une clé

Sous Developers dans le tableau de bord, cliquez sur Create key et donnez-lui un nom (par ex. « Production backend », « Staging »). La clé complète — mia_live_... — n'est affichée qu'une seule fois. Conservez-la en lieu sûr ; MailInApp ne garde qu'un hash, il n'y a donc aucun moyen de la récupérer par la suite. Si vous la perdez, révoquez-la et générez-en une nouvelle.

Les clés sont propres à votre compte, pas à un seul projet — une clé peut déclencher n'importe quel projet que vous possédez. Créez-en autant que vous voulez (une par environnement ou intégration est un schéma courant) et révoquez-en n'importe laquelle indépendamment à tout moment.

Envoi n°1 : libre

Pour un simple email transactionnel — sans projet studio impliqué — fournissez vous-même le HTML et le texte :

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "[email protected]",
    "subject": "Your one-time code",
    "html": "<p>Your code is 123456</p>",
    "text": "Your code is 123456"
  }'

Un appel réussi renvoie :

{ "id": "abc123", "status": "sent" }

Envoi n°2 : modèle

C'est le véritable élément différenciateur : concevez visuellement un email dans le studio — moteur de repli, blocs interactifs, balises de fusion — puis déclenchez-le depuis votre propre code d'inscription, de paiement ou de support, avec mergeData se substituant à une ligne de source de données :

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_12345" \
  -d '{
    "to": "[email protected]",
    "projectId": "your-project-id",
    "mergeData": { "name": "Ada", "orderId": "12345" }
  }'

Trouvez projectId dans l'URL du studio pour ce projet (/studio/<projectId>). Les champs de mergeData se résolvent dans les balises de fusion {{field}} du projet exactement comme le ferait une ligne de contact. Le destinataire reçoit un lien de vue en direct personnel et signé comme pour tout autre envoi — les blocs interactifs (sondages, notations, formulaires) fonctionnent, et chaque réponse remonte dans la vue Réponses normale de ce projet ainsi que dans les livraisons de webhook, attribuée à cet appel API spécifique.

L'en-tête Idempotency-Key est facultatif mais recommandé pour tout ce qui est déclenché par une opération pouvant être retentée (un webhook de paiement, un consommateur de file) — voir idempotence dans la référence API.

Surcharger l'expéditeur

Les deux types d'envoi utilisent par défaut l'identité d'expéditeur configurée de votre compte — la carte « From address » de Settings → Domains si vous utilisez l'envoi natif (SES), ou l'adresse d'expéditeur de votre relais SMTP autrement. Ajoutez from pour la surcharger pour un appel, par ex. un compte multi-marques envoyant au nom d'une équipe spécifique :

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "[email protected]",
    "subject": "Your one-time code",
    "html": "<p>Your code is 123456</p>",
    "text": "Your code is 123456",
    "from": { "email": "[email protected]", "name": "Your Sales Team" }
  }'

from.email est requis dès que from est présent (pas de surcharge du seul nom) ; from.name est facultatif. Pour l'envoi natif (SES), from.email doit être une adresse sur l'un de vos domaines vérifiés — voir Adresse d'expéditeur dans la référence API pour comprendre pourquoi, et pour la règle plus souple du SMTP.

Si vous avez déjà enregistré une identité d'expéditeur dans le tableau de bord, passez son id comme senderId au lieu de répéter l'adresse/le nom en clair — voir la référence API pour les deux champs.

Prochaines étapes

  • Formes complètes de requête/réponse, sémantique de type, limites de débit et codes d'erreur : référence API.
  • Les appels récents effectués avec vos clés — y compris le statut et toute erreur — apparaissent sur la page Developers à des fins d'audit.
  • Pas de relais SMTP existant ? L'envoi natif permet à MailInApp de livrer en votre nom, une fois votre domaine mis sur liste blanche et vérifié.
  • Vous voulez qu'un agent IA construise ou modifie vos emails au lieu d'appeler l'API directement ? La même clé authentifie aussi le serveur MCP, afin que Claude Desktop, Claude Code, ou tout autre client MCP puisse le faire pour vous par chat.