Créer un modèle

POST /api/v1/templates Crée un modèle. Répond 201. La réponse ajoute un champ au modèle : unsupportedTags.
json
{
  "success": true,
  "data": {
    "id": "…",
    "name": "August newsletter",
    "defaultSubject": "What shipped in August",
    "content": "…",
    "unsupportedTags": ["*|DATE:d F Y|*"],
    "createdAt": "…",
    "updatedAt": "…"
  }
}
Les balises de fusion Mailchimp sont converties à l'entrée. *|UNSUB|* devient {{unsubscribeUrl}}, *|FNAME|* devient {{firstName}}, *|CURRENT_YEAR|* devient {{currentYear}}, et ainsi de suite. Une balise sans équivalent est laissée exactement là où elle se trouve et listée dans unsupportedTags — vous le découvrez pendant que vous écrivez, pas quand l'e-mail arrive dans une boîte de réception avec un *|DATE:d F Y|* brut dedans.

Autorisation

Rôle dans l'organisationCet endpoint
OWNERAutorisé
ADMINAutorisé
MEMBERRefusé — 403
Une clé porte le rôle que son créateur détient dans cette organisation — jamais un rôle sur AgentsMail lui-même. Voir Clés d'API.

Corps de la requête

ChampTypeObligatoireDescription
namestringouiDe 1 à 100 caractères
defaultSubjectstringouiDe 1 à 200 caractères, utilisé par les campagnes qui ne le remplacent pas
contentstringouiLe HTML de l'e-mail

Exemple

bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
  -d '{
    "name": "August newsletter",
    "defaultSubject": "What shipped in August",
    "content": "<html><body><p>Hi {{firstName}}</p><a href=\"{{unsubscribeUrl}}\">Unsubscribe</a></body></html>"
  }' \
  "https://www.agentsmail.io/api/v1/templates"

Réponse

  • 201 Created — la ressource créée.
  • 401 Unauthorized — clé absente ou invalide, ou son propriétaire a quitté l'organisation.
  • 403 Forbidden — le propriétaire de la clé est member de l'organisation, pas admin.
  • 429 Too Many Requests — plus de 120 requêtes en une minute pour cette clé.

Champs de la réponse

ChampTypeDescription
successbooleanIndique si l'opération a réussi
data.idstringIdentifiant unique du modèle
data.namestringNom du modèle
data.defaultSubjectstringObjet dont hérite une campagne, et qu'elle peut remplacer
data.contentstringLe document HTML complet
data.createdAtstringDate de création ISO
data.updatedAtstringDate ISO de la dernière modification
data.unsupportedTagsarrayBalises Mailchimp laissées telles quelles dans votre HTML — lisez-le

Exemple de réponse

json
{
  "success": true,
  "data": {
    "id": "4d19c0a2",
    "name": "Newsletter",
    "defaultSubject": "August news",
    "content": "<html>…</html>",
    "createdAt": "2026-08-23T10:22:05.000Z",
    "updatedAt": "2026-08-23T10:22:05.000Z",
    "unsupportedTags": []
  }
}

Voir aussi