Aller au contenu
Docs

Créez des versions de modèle, publiez-en une par alias et utilisez-les lors de l’envoi.

URL de basehttps://api.emailit.com/v2AuthentificationErreursLimites de débit

Créer un modèle

Crée une version de modèle. Les versions qui partagent un alias appartiennent au même modèle, et une seule version par alias est publiée à la fois. Lorsque vous envoyez un e-mail avec template défini sur un alias, Emailit utilise la version publiée. Nécessite une clé API de portée full.

POST/templates

Corps de la requête

namestringObligatoire

Nom du modèle affiché dans le tableau de bord. 191 caractères au maximum.

aliasstringObligatoire

Identifiant qui regroupe les versions d’un modèle. 191 caractères au maximum ; lettres minuscules, chiffres, traits de soulignement et traits d’union uniquement (^[a-z0-9_-]+$).

Si aucun modèle n’utilise encore cet alias, la nouvelle version est publiée immédiatement. Si l’alias existe déjà, la nouvelle version est créée non publiée (published_at vaut null) et vous la publiez avec Publier un modèle.

fromstring

Expéditeur par défaut, par exemple Acme <hello@acme.com>. 191 caractères au maximum.

subjectstring

Ligne d’objet par défaut. 191 caractères au maximum. Peut contenir des variables Temple comme {{ first_name }}.

reply_tostring | string[]

Adresse de réponse, ou tableau d’adresses. Chaque valeur doit être une adresse e-mail valide.

htmlstring

Corps HTML.

textstring

Corps en texte brut.

sourcestring

Document source de l’éditeur, par exemple le JSON Dragit d’un modèle créé dans l’éditeur glisser-déposer. Enregistré tel quel. Pour editor: "mjml", le MJML : Emailit le valide, l’enregistre sous forme de document MJML et en compile html.

editorstring

Éditeur auquel appartient le modèle : html (par défaut), text, dragit ou tiptap. mjml est en alpha et réservé à l’équipe Emailit ; les autres requêtes reçoivent 403 avec error: "mjml_alpha". Consultez Éditeurs et API MJML.

Réponse

Renvoie 201 Created avec le modèle dans data et un message de confirmation. Le modèle inclut html, text et source. Emailit envoie aussi l’événement webhook template.created.

Les modèles MJML renvoient aussi un objet mjml avec les versions du document. Un MJML invalide renvoie 422 avec errors.source et diagnostics ; consultez Validation.

Si un champ ne passe pas la validation, la réponse est 400 avec message: "Validation failed" et un objet errors indexé par champ, par exemple pour un alias contenant des majuscules ou une adresse reply_to non valide. Un name ou un alias manquant, ou une valeur editor non autorisée, renvoie à la place l’erreur de validation 400 standard avec un tableau details. Consultez Erreurs.

POST/templates
Terminal
curl https://api.emailit.com/v2/templates \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome email",
    "alias": "welcome-email",
    "subject": "Welcome to Acme, {{ first_name }}",
    "html": "<h1>Welcome, {{ first_name }}</h1>"
  }'
JSON
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": null,
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": null,
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": null,
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-30T10:30:00.482119Z",
    "updated_at": "2026-09-30T10:30:00.482119Z"
  },
  "message": "Template was successfully created."
}

Récupérer un modèle

Renvoie une version de modèle, avec son contenu, et liste les autres versions du même alias dans versions. Les modèles se recherchent uniquement par ID, pas par alias. Nécessite une clé API de portée full.

GET/templates/:id

Paramètres de chemin

idstringObligatoire

ID du modèle, par exemple tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a.

Réponse

Renvoie 200 OK avec le modèle dans data. En plus des champs du modèle, la réponse contient un tableau versions avec l’id, le name, le published_at, le created_at et l’updated_at de chacune des autres versions qui partagent l’alias, de la plus récente à la plus ancienne. La version publiée est celle dont published_at n’est pas nul.

Renvoie 404 avec message: "Template not found" si l’ID n’existe pas dans votre espace de travail.

GET/templates/{id}
Terminal
curl https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": "Welcome, {{ first_name }}",
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-28T08:12:45.103882Z",
    "updated_at": "2026-09-30T10:30:00.482119Z",
    "versions": [
      {
        "id": "tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f",
        "name": "Welcome email (October)",
        "published_at": null,
        "created_at": "2026-09-30T14:02:11.550731Z",
        "updated_at": "2026-09-30T14:02:11.550731Z"
      }
    ]
  }
}

Mettre à jour un modèle

Met à jour une version de modèle. N’envoyez que les champs à modifier. La version conserve son état de publication : une version publiée reste publiée et un brouillon reste un brouillon. Nécessite une clé API de portée full.

POST/templates/:id

Paramètres de chemin

idstringObligatoire

ID du modèle, par exemple tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a.

Corps de la requête

namestring

Nom du modèle. 191 caractères au maximum.

aliasstring

Nouvel alias. 191 caractères au maximum ; lettres minuscules, chiffres, traits de soulignement et traits d’union uniquement. Il ne peut pas s’agir d’un alias déjà utilisé par un autre modèle.

fromstring

Expéditeur par défaut, par exemple Acme <hello@acme.com>. 191 caractères au maximum. Envoyez une chaîne vide pour l’effacer.

subjectstring

Ligne d’objet par défaut. 191 caractères au maximum. Envoyez une chaîne vide pour l’effacer.

reply_tostring | string[]

Adresse de réponse ou tableau d’adresses. Envoyez une chaîne vide pour l’effacer.

htmlstring

Corps HTML.

textstring

Corps en texte brut.

sourcestring

Document source de l’éditeur, par exemple du JSON Dragit. Pour un modèle MJML, le MJML complet : Emailit le valide et recompile html, et tout html que vous envoyez est ignoré.

editorstring

html, text, dragit ou tiptap. mjml est en alpha et réservé à l’équipe Emailit ; modifier le contenu d’un modèle MJML sans accès à MJML renvoie 403 avec error: "mjml_alpha". Le renommer ou le publier fonctionne pour tout le monde. Consultez Éditeurs et API MJML.

Réponse

Renvoie 200 OK avec le modèle mis à jour dans data et un message de confirmation. Emailit envoie aussi l’événement webhook template.updated.

Renvoie 400 avec message: "Validation failed" et un objet errors lorsqu’une valeur n’est pas valide, par exemple "Alias already exists". Les valeurs de plus de 191 caractères ou un editor inconnu renvoient l’erreur de validation 400 standard. Renvoie 404 si le modèle n’existe pas.

Pour que cette version soit celle utilisée pour les envois, appelez Publier un modèle.

POST/templates/{id}
Terminal
curl -X POST https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"subject": "Welcome aboard, {{ first_name }}"}'
JSON
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome aboard, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": "Welcome, {{ first_name }}",
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-28T08:12:45.103882Z",
    "updated_at": "2026-10-01T09:15:27.640000Z"
  },
  "message": "Template was successfully updated."
}

Lister les modèles

Renvoie la version publiée de chaque modèle, du plus récent au plus ancien. Les versions non publiées ne sont pas listées ; récupérez un modèle pour voir toutes les versions de son alias. Nécessite une clé API de portée full.

GET/templates

Paramètres de requête

pageinteger

Numéro de page, à partir de 1. Par défaut : 1.

per_pageinteger

Nombre de modèles par page, de 1 à 100. Par défaut : 25.

include_contentboolean

Définissez-le sur true pour inclure html, text et source dans chaque modèle. Omis par défaut pour alléger les réponses.

filter[name]string

Correspondance partielle, insensible à la casse, sur le nom ou l’alias du modèle.

filter[alias]string

Alias exact.

filter[editor]string

Éditeur : html, text, dragit, tiptap ou mjml (alpha).

matchstring

all (par défaut) exige que tous les filtres key.condition correspondent. or accepte n’importe lequel d’entre eux. Consultez Filtrage et tri.

sortstring

Clé de tri : name, alias, created_at (par défaut), updated_at ou published_at.

orderstring

Sens du tri : asc ou desc (par défaut).

Filtres

Les filtres de liste sont des paramètres de requête key.condition=value sur un seul niveau. Consultez Filtrage et tri pour match, order, direction et la liste des conditions par type.

Clés de filtre

CléTypeConditionsRemarques
namestringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
aliasstringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
editorstringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
subjectstringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
created_atdateexact, before, after, empty, not_empty

Clés de tri

Cet endpoint trie avec sort défini sur l’une de ces clés et order sur asc ou desc (order=<key> renvoie 400 ici) : name, alias, editor, subject, created_at

Sur cet endpoint, order n’accepte que asc ou desc. Transmettez la clé de tri dans sort, par exemple sort=name&order=asc.

Réponse

Renvoie 200 OK avec les modèles dans data et les champs de pagination total_records, per_page, current_page et total_pages. Chaque modèle inclut total_versions, le nombre de versions qui partagent son alias.

GET/templates
Terminal
curl https://api.emailit.com/v2/templates \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": [
    {
      "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
      "name": "Welcome email",
      "alias": "welcome-email",
      "from": "Acme <hello@acme.com>",
      "subject": "Welcome to Acme, {{ first_name }}",
      "reply_to": ["support@acme.com"],
      "editor": "html",
      "published_at": "2026-09-30T10:30:00.482119Z",
      "preview_url": null,
      "total_versions": 3,
      "created_at": "2026-09-28T08:12:45.103882Z",
      "updated_at": "2026-09-30T10:30:00.482119Z"
    }
  ],
  "total_records": 1,
  "per_page": 25,
  "current_page": 1,
  "total_pages": 1
}

Publier un modèle

Publie une version de modèle et dépublie toutes les autres versions du même alias, en une seule transaction. Utilisez-le pour déployer un nouveau brouillon ou pour revenir à une version antérieure. Nécessite une clé API de portée full.

POST/templates/:id/publish

Paramètres de chemin

idstringObligatoire

ID de la version à publier, par exemple tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f.

Corps de la requête

Aucun corps. Publier une version déjà publiée définit un nouveau published_at.

Réponse

Renvoie 200 OK avec le modèle publié dans data et un message de confirmation. Renvoie 404 si le modèle n’existe pas.

Emailit envoie un événement webhook template.updated pour la version publiée, et un autre pour chaque version dépubliée.

POST/templates/{id}/publish
Terminal
curl -X POST https://api.emailit.com/v2/templates/tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f/publish \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": {
    "id": "tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f",
    "name": "Welcome email (October)",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1><p>Here is your October guide.</p>",
    "text": "Welcome, {{ first_name }}. Here is your October guide.",
    "source": null,
    "editor": "html",
    "published_at": "2026-10-01T09:20:04.118502Z",
    "preview_url": null,
    "created_at": "2026-09-30T14:02:11.550731Z",
    "updated_at": "2026-10-01T09:20:04.118000Z"
  },
  "message": "Template was successfully published."
}

Supprimer un modèle

Supprime définitivement une version de modèle. Les autres versions du même alias sont conservées. Nécessite une clé API de portée full.

DELETE/templates/:id

Paramètres de chemin

idstringObligatoire

ID du modèle, par exemple tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a.

Réponse

Renvoie 200 OK avec data: null et un message de confirmation. Emailit envoie l’événement webhook template.deleted avec la version supprimée. Renvoie 404 si le modèle n’existe pas.

Si vous supprimez la version publiée, aucune version de cet alias n’est publiée tant que vous n’en publiez pas une autre, et les envois avec cet alias échouent. Supprimer un brouillon n’affecte pas la version publiée. La suppression est irréversible.

DELETE/templates/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": null,
  "message": "Template was successfully deleted."
}

Cette page vous a-t-elle été utile ?

Merci pour votre retour.

Merci, nous lisons chaque message.