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'organisation | Cet endpoint |
|---|---|
OWNER | Autorisé |
ADMIN | Autorisé |
MEMBER | Refusé — 403 |
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | string | oui | De 1 à 100 caractères |
defaultSubject | string | oui | De 1 à 200 caractères, utilisé par les campagnes qui ne le remplacent pas |
content | string | oui | Le 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é estmemberde l'organisation, pasadmin.429 Too Many Requests— plus de 120 requêtes en une minute pour cette clé.
Champs de la réponse
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si l'opération a réussi |
data.id | string | Identifiant unique du modèle |
data.name | string | Nom du modèle |
data.defaultSubject | string | Objet dont hérite une campagne, et qu'elle peut remplacer |
data.content | string | Le document HTML complet |
data.createdAt | string | Date de création ISO |
data.updatedAt | string | Date ISO de la dernière modification |
data.unsupportedTags | array | Balises 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": []
}
}