Aller au contenu
Docs

Envoyez des e-mails, consultez les messages et leur contenu, et programmez, annulez, relancez ou transférez-les.

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

Envoyer un e-mail

Envoie un e-mail depuis un domaine d’envoi vérifié. Chaque destinataire reçoit une copie distincte avec son propre ID d’e-mail, et chaque destinataire coûte un crédit.

POST/emails

Fonctionne avec les clés API sending et full. Les envois sont décomptés des limites d’envoi de l’espace de travail, et une réponse positive signifie que l’e-mail est accepté et mis en file d’attente, pas encore livré. Suivez la livraison avec les webhooks ou Récupérer un e-mail. Les espaces de travail non vérifiés ne peuvent envoyer qu’aux adresses e-mail de compte de leurs membres.

En-têtes

Idempotency-Keystring

Une clé unique de 256 caractères au maximum : lettres, chiffres, - et _. Une relance avec la même clé dans les 24 heures renvoie la première réponse au lieu d’envoyer de nouveau. Consultez Idempotence.

Paramètres du corps

fromstringobligatoire

L’expéditeur, sous la forme hello@acme.com ou Acme <hello@acme.com>. L’adresse doit appartenir à un domaine d’envoi vérifié de l’espace de travail, et au domaine de la clé si celle-ci est limitée à un domaine.

tostring | string[]obligatoire

Les destinataires, sous forme de tableau ou de chaîne séparée par des virgules. Chaque entrée peut être ada@example.com ou Ada Lovelace <ada@example.com>. 50 au maximum.

ccstring | string[]
Destinataires en copie. 50 au maximum.
bccstring | string[]
Destinataires en copie cachée. 50 au maximum. Ils n’apparaissent pas dans les en-têtes du message.
reply_tostring | string[]
Adresses de réponse. Si vous envoyez avec un modèle sans renseigner ce champ, l’adresse de réponse du modèle est utilisée.
subjectstring
La ligne d’objet. Obligatoire, sauf si template en fournit une.
htmlstring
Le corps HTML. Vous devez fournir html, text ou les deux, sauf si template fournit le contenu.
textstring
Le corps en texte brut. Si vous envoyez à la fois html et text, les destinataires reçoivent un message multipart.
templatestring

Un modèle à envoyer. Transmettez un ID de modèle (tem_…) pour utiliser cette version précise, ou un alias pour utiliser sa version publiée. Les champs subject, html et text de la requête remplacent ceux du modèle. Consultez Modèles.

variablesobject

Les valeurs des variables Temple, comme {{first_name}}, insérées lors du rendu de l’objet, du HTML et du texte. Fonctionne avec les modèles comme avec un contenu fourni directement dans la requête.

attachmentsobject[]
Les fichiers à joindre. Consultez Objet pièce jointe ci-dessous.
headersobject

En-têtes MIME supplémentaires sous forme de paires nom-valeur, par exemple {"List-Unsubscribe": "<https://acme.com/unsubscribe>"}. Emailit définit lui-même Message-ID.

metaobject

Vos propres données clé-valeur, par exemple {"order_id": "1042"}. Les valeurs doivent être des chaînes. Stockées avec l’e-mail et incluses dans les lectures et les payloads de webhook.

scheduled_atstring

Date d’envoi, sous forme de date-heure ISO 8601, comme 2026-10-02T09:00:00Z, ou en anglais, comme tomorrow at 9am. Indiquez un fuseau horaire dans les valeurs ISO 8601. Une date passée, ou une valeur impossible à analyser (y compris un horodatage Unix), envoie l’e-mail immédiatement. Les e-mails programmés ont le statut scheduled jusqu’à leur envoi.

trackingboolean | object

Active ou désactive le suivi des ouvertures et des clics pour cet e-mail : true, false ou {"loads": true, "clicks": false}. Par défaut : les paramètres du domaine d’envoi. Le suivi ne fonctionne que lorsque le CNAME de suivi du domaine est vérifié ; sinon, il est désactivé et la réponse indique false.

Objet pièce jointe

filenamestringobligatoire
Le nom du fichier, avec une extension autorisée (voir ci-dessous).
contentstring
Le fichier, encodé en Base64. Envoyez content ou url, pas les deux.
urlstring

Une URL publique http ou https depuis laquelle télécharger le fichier. Emailit le récupère au moment de l’envoi : le téléchargement doit se terminer en 30 secondes, ne pas dépasser 25 Mo et ne comporter aucune redirection.

content_typestring
Le type MIME, comme application/pdf. Obligatoire avec content. Avec url, vaut par défaut le type renvoyé par le serveur.
content_idstring

Rend la pièce jointe intégrée. Faites-y référence dans le HTML avec <img src="cid:logo"> lorsque content_id vaut logo.

encodingstringpar défaut : base64
L’encodage de content, comme base64 ou hex.

Le message complet, pièces jointes comprises, peut atteindre 40 Mo. Les types de fichiers suivants sont autorisés :

Catégorie Extensions
Texte .txt, .csv, .log, .css, .ics, .xml
Images .jpg, .jpe, .jpeg, .gif, .png, .bmp, .psd, .tif, .tiff, .svg, .indd, .ai, .eps
Documents .doc, .docx, .rtf, .odt, .ott, .pdf, .pub, .pages, .mobi, .epub
Audio .mp3, .m4a, .m4v, .wma, .ogg, .flac, .wav, .aif, .aifc, .aiff
Vidéo .mp4, .mov, .avi, .mkv, .mpeg, .mpg, .wmv
Feuilles de calcul .xls, .xlsx, .ods, .numbers
Présentations .odp, .ppt, .pptx, .pps, .key
Archives .zip, .vcf
E-mail .eml
Cryptographie .p7c, .p7m, .p7s, .pgp, .asc, .sig

Réponse

Renvoie 200 avec l’objet e-mail du premier destinataire. Lorsque le message a plusieurs destinataires dans to, cc et bcc, ids associe chaque destinataire à l’ID de sa copie. Chaque copie déclenche l’événement email.accepted ou email.scheduled.

objectstring
Toujours email.
idstring
L’ID de l’e-mail du premier destinataire.
idsobject
Correspondance entre adresse de destinataire et ID d’e-mail, pour chaque destinataire. Présent uniquement s’il y a plusieurs destinataires.
tokenstring
Le jeton interne du premier e-mail.
message_idstring
L’en-tête Message-ID du premier e-mail, comme <token@acme.com>.
fromstring
L’expéditeur, tel que vous l’avez envoyé.
tostring[]
Les adresses to, sans noms d’affichage ni doublons.
ccstring[]
Les destinataires cc. Présent uniquement si vous en avez indiqué.
bccstring[]
Les destinataires bcc. Présent uniquement si vous en avez indiqué.
subjectstring
L’objet, après le rendu du modèle et des variables.
statusstring
accepted, ou scheduled pour une valeur scheduled_at future.
scheduled_atstring | null
Date à laquelle l’e-mail sera envoyé, ou null.
created_atstring
Date à laquelle l’e-mail a été accepté.
trackingobject
Le suivi qui s’applique : booléens loads et clicks.
POST/emails
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": ["ada@example.com", "grace@example.com"],
    "subject": "Welcome to Acme",
    "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
    "tracking": {
      "loads": true,
      "clicks": true
    }
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": "ada@example.com",
    "template": "welcome",
    "variables": {
      "first_name": "Ada",
      "activation_url": "https://acme.com/activate?token=8f2c1e"
    }
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme Billing <billing@acme.com>",
    "to": "ada@example.com",
    "subject": "Your invoice INV-1042",
    "html": "<img src=\"cid:logo\"><p>Your invoice is attached.</p>",
    "attachments": [
      {
        "filename": "INV-1042.pdf",
        "content": "JVBERi0xLjQKJcOkw7zDqc...",
        "content_type": "application/pdf"
      },
      {
        "filename": "logo.png",
        "url": "https://acme.com/assets/logo.png",
        "content_id": "logo"
      }
    ]
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: reminder-appt-5531" \
  -d '{
    "from": "Acme <reminders@acme.com>",
    "to": "ada@example.com",
    "subject": "Your appointment tomorrow",
    "text": "See you tomorrow at 2 PM.",
    "scheduled_at": "2026-10-02T09:00:00Z",
    "meta": { "appointment_id": "5531" }
  }'
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "ids": {
    "ada@example.com": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
    "grace@example.com": "em_4KfIXZSV8v8L1k0Mg2YDR3rytvj"
  },
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": ["ada@example.com", "grace@example.com"],
  "subject": "Welcome to Acme",
  "status": "accepted",
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "tracking": {
    "loads": true,
    "clicks": true
  }
}

Lister les e-mails

Renvoie une page d’e-mails, du plus récent au plus ancien. Par défaut, la liste affiche les e-mails sortants des 14 derniers jours.

GET/emails

Nécessite une clé API full. Chaque destinataire d’un envoi correspond à un e-mail distinct dans cette liste.

Paramètres de requête

pageintegerpar défaut : 1
La page à renvoyer.
limitintegerpar défaut : 25
Nombre d’e-mails par page, de 1 à 100.
typestringpar défaut : outbound
outbound pour les e-mails que vous avez envoyés, ou inbound pour les e-mails que vous avez reçus.
date_fromstring

Uniquement les e-mails créés à cette date ou après, comme 2026-08-01 (à partir de 0 h 00 UTC). Sans ce paramètre, la liste commence il y a 14 jours. Les filtres created_at ne modifient pas cette fenêtre.

date_tostring
Uniquement les e-mails créés à cette date ou avant, jusqu’à 23 h 59 min 59 s UTC.
matchstringpar défaut : all
all ou or. Mode de combinaison des filtres ci-dessous.
orderstring
Une clé de tri du tableau ci-dessous.
directionstring
asc ou desc.

Filtres

Ajoutez des filtres sous la forme key.condition=value, par exemple status.exact=bounced ou created_at.after=2026-09-01. Pour les conditions de chaque type, consultez Filtrage et tri.

Clé Type Valeurs et remarques
to string Adresse du destinataire.
from string Expéditeur tel qu’envoyé, avec son éventuel nom d’affichage.
subject string
status enum accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled, held
tag string Le tag de l’e-mail. Les envois via l’API ou SMTP ne définissent pas de tag pour le moment.
spam_score number
created_at date
updated_at date
api_key_id string ID de la clé API qui a envoyé l’e-mail (key_…).
sending_domain_id string ID du domaine d’envoi (dom_…).

Chaque clé est aussi une clé de tri. Les anciens paramètres de requête status, rcpt_to, mail_from, subject, api_key_id et sending_domain_id fonctionnent toujours : status recherche une correspondance exacte, et les paramètres d’adresse et d’objet une correspondance partielle.

Réponse

Renvoie un tableau data d’objets e-mail avec next_page_url et previous_page_url. Consultez Pagination. Les URL de page ne reprennent pas vos filtres : demandez la page suivante avec vos propres paramètres en augmentant page de un.

objectstring
Toujours email.
idstring
L’ID de l’e-mail.
typestring
outbound ou inbound.
fromstring
L’expéditeur tel qu’envoyé.
tostring
Le destinataire de cette copie.
subjectstring
L’objet.
statusstring
Le statut actuel.
sizeinteger
Taille du message, en octets.
scheduled_atstring | null
Date d’envoi prévue d’un e-mail programmé, ou null.
created_atstring
Date à laquelle l’e-mail a été accepté ou reçu.
updated_atstring
Date du dernier changement de statut.
metaobject | null
Le meta que vous avez envoyé.
GET/emails
Terminal
curl -G https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d page=1 \
  -d limit=25
Terminal
curl -G https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d status.exact=bounced \
  -d status.exact=failed \
  -d match=or \
  -d date_from=2026-09-01 \
  -d order=created_at \
  -d direction=desc
JSON
{
  "data": [
    {
      "object": "email",
      "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
      "type": "outbound",
      "from": "Acme <hello@acme.com>",
      "to": "ada@example.com",
      "subject": "Welcome to Acme",
      "status": "delivered",
      "size": 4523,
      "scheduled_at": null,
      "created_at": "2026-10-01T09:30:12.482913Z",
      "updated_at": "2026-10-01T09:30:14.118204Z",
      "meta": null
    },
    {
      "object": "email",
      "id": "em_4KfIXZSV8v8L1k0Mg2YDR3rytvj",
      "type": "outbound",
      "from": "Acme <hello@acme.com>",
      "to": "grace@example.com",
      "subject": "Welcome to Acme",
      "status": "loaded",
      "size": 4527,
      "scheduled_at": null,
      "created_at": "2026-10-01T09:30:12.482913Z",
      "updated_at": "2026-10-01T09:41:03.770521Z",
      "meta": null
    }
  ],
  "next_page_url": "/app/v2/emails?page=2&limit=25",
  "previous_page_url": null
}

Récupérer un e-mail

Récupère un e-mail avec son statut, ses en-têtes analysés, son corps HTML et texte, et ses pièces jointes.

GET/emails/{id}

Nécessite une clé API full. Le contenu des messages est conservé pendant la durée de conservation du contenu prévue par votre forfait. Ensuite, headers, body et attachments sont vides, mais le statut et les métadonnées restent disponibles. Pour ne récupérer qu’une partie d’un e-mail, utilisez Récupérer le corps, Récupérer les métadonnées, Lister les pièces jointes ou Récupérer le MIME brut.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail, comme em_4KYof1ZzXndZE2VPi0DgULiekG8.

Réponse

Renvoie l’objet e-mail.

objectstring
Toujours email.
idstring
L’ID de l’e-mail.
typestring
outbound pour les e-mails que vous avez envoyés, inbound pour les e-mails que vous avez reçus.
tokenstring
Le jeton interne de l’e-mail.
message_idstring
L’en-tête Message-ID.
fromstring
L’expéditeur tel qu’envoyé, comme Acme <hello@acme.com>.
tostring
Le destinataire de cette copie.
subjectstring
L’objet.
statusstring

Le statut actuel : accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled ou held. Consultez Statuts des e-mails.

sizeinteger
Taille du message, en octets.
scheduled_atstring | null
Date d’envoi prévue d’un e-mail programmé, ou null.
created_atstring
Date à laquelle l’e-mail a été accepté ou reçu.
updated_atstring
Date de la dernière modification de l’e-mail.
trackingobject
E-mails sortants uniquement. Indique si le suivi des ouvertures (loads) et des clics (clicks) est activé.
metaobject | null
Le meta que vous avez envoyé, ou null.
headersobject | null
Les en-têtes du message sous forme de paires nom-valeur, ou null une fois le contenu purgé.
bodyobject
text et html, chacun étant une chaîne ou null.
attachmentsobject[]

Les pièces jointes, chacune avec filename, content_type, size en octets, content_id (pour les fichiers intégrés), content_disposition (attachment ou inline) et content (Base64).

GET/emails/{id}
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": "ada@example.com",
  "subject": "Your invoice INV-1042",
  "status": "delivered",
  "size": 48213,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "meta": {
    "invoice_id": "INV-1042"
  },
  "headers": {
    "From": "Acme Billing <billing@acme.com>",
    "To": "ada@example.com",
    "Subject": "Your invoice INV-1042",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "multipart/mixed; boundary=\"--_NmP-4f1c2a9e7b3d0e5f-Part_1\""
  },
  "body": {
    "text": "Your invoice is attached.",
    "html": "<p>Your invoice is attached.</p>"
  },
  "attachments": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment",
      "content": "JVBERi0xLjQKJcOkw7zDqc..."
    }
  ]
}

Récupérer le MIME brut

Récupère la source MIME complète d’un e-mail telle qu’Emailit l’a stockée, ainsi que ses métadonnées.

GET/emails/{id}/raw

Nécessite une clé API full. Utilisez-le pour archiver un message, déboguer sa structure ou l’analyser avec votre propre bibliothèque MIME. Une fois la durée de conservation du contenu écoulée, raw et headers valent null.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

Renvoie les métadonnées de l’e-mail, comme Récupérer les métadonnées mais sans attachments, ainsi que le message brut.

rawstring | null
Le message MIME complet : les en-têtes, une ligne vide et le corps. null une fois le contenu purgé.
headersobject | null
Les en-têtes de premier niveau sous forme de paires nom-valeur.

Les autres champs (object, id, type, token, message_id, from, to, subject, status, size, scheduled_at, created_at, updated_at, tracking et meta) sont les mêmes que dans Récupérer un e-mail.

GET/emails/{id}/raw
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/raw \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": "ada@example.com",
  "subject": "Welcome to Acme",
  "status": "delivered",
  "size": 1342,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": false,
    "clicks": false
  },
  "meta": null,
  "headers": {
    "From": "Acme <hello@acme.com>",
    "To": "ada@example.com",
    "Subject": "Welcome to Acme",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "text/html; charset=utf-8"
  },
  "raw": "From: Acme <hello@acme.com>\r\nTo: ada@example.com\r\nSubject: Welcome to Acme\r\nMessage-ID: <4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<h1>Welcome!</h1><p>Thanks for signing up.</p>"
}

Lister les pièces jointes

Renvoie les pièces jointes d’un e-mail, contenu compris.

GET/emails/{id}/attachments

Nécessite une clé API full. Fonctionne pour les e-mails sortants et entrants. Les images intégrées (parties dotées d’un Content-ID) sont incluses. Pour obtenir la liste sans le contenu des fichiers, utilisez Récupérer les métadonnées. Une fois la durée de conservation du contenu écoulée, la liste est vide.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

Renvoie un objet liste avec toutes les pièces jointes. La liste n’est pas paginée.

objectstring
Toujours list.
dataobject[]
Les pièces jointes.
data[].filenamestring
Le nom du fichier.
data[].content_typestring
Le type MIME, comme application/pdf.
data[].sizeinteger
Taille du fichier décodé, en octets.
data[].content_idstring | null
Le Content-ID d’une pièce jointe intégrée, ou null.
data[].content_dispositionstring | null
attachment ou inline.
data[].contentstring
Le fichier, encodé en Base64.
GET/emails/{id}/attachments
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/attachments \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "list",
  "data": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment",
      "content": "JVBERi0xLjQKJcOkw7zDqc..."
    },
    {
      "filename": "logo.png",
      "content_type": "image/png",
      "size": 5120,
      "content_id": "logo",
      "content_disposition": "inline",
      "content": "iVBORw0KGgoAAAANSUhEUgAA..."
    }
  ]
}

Récupérer le corps

Renvoie le corps HTML et texte brut d’un e-mail, décodé à partir de ses parties MIME.

GET/emails/{id}/body

Nécessite une clé API full. Fonctionne pour les e-mails sortants et entrants. Pour les e-mails sortants, le corps correspond à ce qui a été envoyé, après le rendu du modèle et des variables. Une fois la durée de conservation du contenu écoulée, les deux champs valent null.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

textstring | null
La partie texte brut, ou null si l’e-mail n’en a pas.
htmlstring | null
La partie HTML, ou null si l’e-mail n’en a pas.
GET/emails/{id}/body
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/body \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "text": "Welcome!\n\nThanks for signing up.",
  "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
}

Récupérer les métadonnées

Récupère un e-mail sans son corps : statut, en-têtes, vos données meta et la liste des pièces jointes sans leur contenu.

GET/emails/{id}/meta

Nécessite une clé API full. C’est la façon la plus légère de lire les détails d’un e-mail lorsque vous n’avez pas besoin du contenu.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

Renvoie les mêmes champs que Récupérer un e-mail, sans body, et avec des attachments décrites mais pas incluses :

attachmentsobject[]
Pour chaque pièce jointe : filename, content_type, size, content_id et content_disposition. Pas de content.
headersobject | null
Les en-têtes du message sous forme de paires nom-valeur, ou null une fois le contenu purgé.
metaobject | null
Le meta que vous avez envoyé avec l’e-mail.
GET/emails/{id}/meta
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/meta \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": "ada@example.com",
  "subject": "Your invoice INV-1042",
  "status": "delivered",
  "size": 48213,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "meta": {
    "invoice_id": "INV-1042"
  },
  "headers": {
    "From": "Acme Billing <billing@acme.com>",
    "To": "ada@example.com",
    "Subject": "Your invoice INV-1042",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "multipart/mixed; boundary=\"--_NmP-4f1c2a9e7b3d0e5f-Part_1\""
  },
  "attachments": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment"
    }
  ]
}

Mettre à jour un e-mail programmé

Déplace un e-mail programmé vers une nouvelle heure d’envoi.

POST/emails/{id}

Fonctionne avec les clés API sending et full. Vous ne pouvez reprogrammer qu’un e-mail dont le statut est scheduled et dont l’heure d’envoi actuelle est dans plus de 3 minutes. Seule l’heure d’envoi peut changer ; pour modifier le contenu, annulez l’e-mail et envoyez-en un nouveau.

Un envoi programmé à plusieurs destinataires crée un e-mail par destinataire. Reprogrammez chaque ID listé dans l’objet ids de la réponse d’envoi.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail programmé.

Paramètres du corps

scheduled_atstringobligatoire

La nouvelle heure d’envoi, sous forme de date-heure ISO 8601, comme 2026-10-03T09:00:00Z, ou en anglais, comme tomorrow at 3pm. Elle doit se situer dans plus de 3 minutes.

Réponse

objectstring
Toujours email.
idstring
L’ID de l’e-mail.
statusstring
Toujours scheduled.
scheduled_atstring
La nouvelle heure d’envoi.
updated_atstring
Date de mise à jour de l’e-mail.
messagestring
Un message de confirmation.

Renvoie 422 si l’e-mail n’est pas programmé, s’il doit partir dans moins de 3 minutes, ou si la nouvelle heure est impossible à analyser ou trop proche.

POST/emails/{id}
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scheduled_at": "2026-10-03T09:00:00Z"}'
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scheduled_at": "tomorrow at 3pm"}'
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "status": "scheduled",
  "scheduled_at": "2026-10-03T09:00:00.000Z",
  "updated_at": "2026-10-01T10:15:40.207316Z",
  "message": "Email schedule has been updated successfully"
}

Annuler un e-mail

Retire un e-mail de la file d’envoi et fait passer son statut à canceled.

POST/emails/{id}/cancel

Fonctionne avec les clés API sending et full. L’annulation se fait dans la mesure du possible : elle retire l’e-mail de la file d’attente, mais si une tentative de livraison a déjà commencé, cette tentative peut tout de même aboutir et seules les nouvelles tentatives restantes sont arrêtées. Le champ in_flight de la réponse indique le cas qui s’applique. L’annulation déclenche l’événement email.canceled, et le crédit n’est pas remboursé. L’action Cancel delivery du tableau de bord fait la même chose.

Statut Annulation possible Remarques
scheduled Oui Jusqu’à 3 minutes avant l’heure programmée.
accepted Oui En file d’attente et pas encore livré.
attempted Oui Arrête les nouvelles tentatives restantes après un échec temporaire.
Tout autre statut Non L’e-mail a déjà été livré, est en échec ou a déjà été annulé.

Pour annuler un envoi à plusieurs destinataires, annulez chaque ID listé dans l’objet ids de la réponse d’envoi.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

objectstring
Toujours email.
idstring
L’ID de l’e-mail.
statusstring
Toujours canceled.
in_flightboolean
true si une tentative de livraison est peut-être déjà en cours et pourrait encore aboutir. false si l’e-mail a été retiré de la file d’attente avant toute tentative.
messagestring
Une description du résultat.
POST/emails/{id}/cancel
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj/cancel \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "status": "canceled",
  "in_flight": false,
  "message": "Email has been canceled and removed from the send queue."
}

Relancer un e-mail

Met en file d’attente une copie d’un e-mail qui n’est pas parvenu à destination. La copie est un nouvel e-mail avec son propre ID, et l’original conserve son statut.

POST/emails/{id}/retry

Fonctionne avec les clés API sending et full. La copie a les mêmes expéditeur, destinataire, objet, contenu, en-têtes, meta et paramètres de suivi, avec un nouveau Message-ID. Elle coûte des crédits comme un nouvel envoi : un crédit, ou deux pour un e-mail de campagne.

Vous pouvez relancer un e-mail lorsque :

  • Son statut est bounced, failed, suppressed ou held.
  • Il a été créé au cours des 30 derniers jours.
  • Son contenu n’a pas été purgé selon votre durée de conservation, et son domaine d’envoi existe toujours.

Corrigez d’abord la cause. Une adresse bloquée qui figure toujours dans votre liste d’adresses bloquées est de nouveau bloquée, et un e-mail retenu est de nouveau retenu tant que la raison de sa rétention n’est pas résolue.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail à relancer.

Réponse

objectstring
Toujours email.
idstring
L’ID du nouvel e-mail.
original_idstring
L’ID de l’e-mail relancé.
tokenstring
Le jeton interne du nouvel e-mail.
message_idstring
Le Message-ID du nouvel e-mail.
fromstring
L’expéditeur.
tostring
Le destinataire.
subjectstring
L’objet.
statusstring
Toujours accepted.
created_atstring
Date de création du nouvel e-mail.
messagestring
Un message de confirmation.
POST/emails/{id}/retry
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KKrQ7TzsVtzsS8zG069B2aMtoK/retry \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KbeG9poqTmjvQZeN8pMoJkCVNd",
  "original_id": "em_4KKrQ7TzsVtzsS8zG069B2aMtoK",
  "token": "4KTnDU5PzzqDqp8UWb9qVhPVFOT",
  "message_id": "<4KTnDU5PzzqDqp8UWb9qVhPVFOT@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": "ada@example.com",
  "subject": "Welcome to Acme",
  "status": "accepted",
  "created_at": "2026-10-01T12:04:51.330482Z",
  "message": "Email has been queued for retry"
}

Transférer un e-mail

Envoie le contenu d’un e-mail sortant à de nouveaux destinataires, sous la forme d’un nouvel e-mail. L’e-mail d’origine n’est pas modifié.

POST/emails/{id}/forward

Fonctionne avec les clés API sending et full. Par défaut, le transfert renvoie simplement le HTML, le texte et les pièces jointes d’origine. Définissez include_headers pour ajouter un bloc « Forwarded message » et une note facultative au-dessus du contenu d’origine.

Un transfert est un nouvel envoi : les règles d’Envoyer un e-mail s’appliquent donc. L’adresse from doit appartenir à un domaine d’envoi vérifié, chaque destinataire coûte un crédit et est décompté des limites d’envoi, le suivi respecte les paramètres du domaine, et l’en-tête Idempotency-Key est pris en charge. En outre, un espace de travail peut transférer au maximum 3 e-mails par heure.

Seuls les e-mails sortants peuvent être transférés, et uniquement tant que leur contenu est conservé selon votre durée de conservation. Pour transférer des e-mails reçus, utilisez une automatisation.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail sortant à transférer.

En-têtes

Idempotency-Keystring
Permet de relancer le transfert sans risque. Consultez Idempotence.

Paramètres du corps

tostring | string[]obligatoire
Les nouveaux destinataires, sous forme de tableau ou de chaîne séparée par des virgules. 50 au maximum.
include_headersbooleanpar défaut : false

Si true, ajoute un bloc « Forwarded message » avec l’expéditeur, la date, l’objet et le destinataire d’origine, surmonté de votre note. Si false, renvoie le contenu d’origine sans modification.

commentstring
Une note en texte brut à placer au-dessus du message transféré. Utilisée uniquement avec include_headers. body est accepté comme alias.
htmlstring
Une note HTML à utiliser à la place du comment échappé dans la partie HTML. Utilisée uniquement avec include_headers.
textstring
Une note en texte brut à utiliser à la place de comment dans la partie texte. Utilisée uniquement avec include_headers.
fromstring
L’expéditeur. Par défaut : le from de l’e-mail d’origine.
subjectstring
L’objet. Par défaut : l’objet d’origine, ou Fwd: suivi de l’objet d’origine avec include_headers.

Les pièces jointes d’origine sont incluses lorsque leur type de fichier est autorisé.

Réponse

Renvoie le même objet qu’Envoyer un e-mail, avec deux champs supplémentaires :

original_idstring
L’ID de l’e-mail transféré.
messagestring
Un message de confirmation.

Au-delà de la limite de transferts, l’API renvoie 429 avec un en-tête retry-after.

POST/emails/{id}/forward
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "grace@example.com"
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: fwd-inv-1042-grace" \
  -d '{
    "to": ["grace@example.com"],
    "include_headers": true,
    "comment": "Grace, here is the invoice Ada asked about."
  }'
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "original_id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "token": "4KWzEED2cnej6UMjF4v508VqQIp",
  "message_id": "<4KWzEED2cnej6UMjF4v508VqQIp@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": ["grace@example.com"],
  "subject": "Fwd: Your invoice INV-1042",
  "status": "accepted",
  "scheduled_at": null,
  "created_at": "2026-10-01T13:20:07.915203Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "message": "Email has been queued for forwarding"
}

Récupérer uniquement le statut

Renvoie uniquement le statut actuel d’un e-mail.

GET/email/{id}

Nécessite une clé API full. Notez le singulier /email dans le chemin. La réponse est courte, ce qui rend cet endpoint pratique pour vérifier rapidement un statut. Pour suivre les changements de statut au fil de l’eau, utilisez des webhooks plutôt que d’interroger régulièrement l’API.

Paramètres de chemin

idstringobligatoire
L’ID de l’e-mail.

Réponse

statusstring

Le statut actuel : accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled ou held. Consultez Statuts des e-mails.

GET/email/{id}
Terminal
curl https://api.emailit.com/v2/email/em_4KYof1ZzXndZE2VPi0DgULiekG8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "status": "delivered"
}

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

Merci pour votre retour.

Merci, nous lisons chaque message.