Abonnés
Ajoutez, mettez à jour et retirez les abonnés d’une liste.
Ajouter un abonné
Ajoute un contact à une liste de contacts à partir de son adresse e-mail.
/audiences/{audience_id}/subscribersNécessite une clé API full. Si aucun contact n’a encore cette adresse e-mail, Emailit en crée un. Si le contact existe, les noms et les champs personnalisés que vous envoyez remplacent ses valeurs actuelles. Un contact qui s’était désinscrit de la liste est réinscrit et la réponse est 200 ; un contact déjà abonné renvoie 409.
Chaque liste peut contenir autant d’abonnés que votre forfait le permet ; au-delà, la requête renvoie 422 avec votre usage. Déclenche subscriber.created, ou subscriber.updated et subscriber.resubscribed en cas de réinscription.
Avec double_opt_in, la personne reçoit l’e-mail de double opt-in de la liste et la rejoint quand elle clique sur le lien : la réponse est donc 202 et aucun abonné n’existe encore.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.Paramètres du corps
emailstringobligatoirefirst_namestringlast_namestringcustom_fieldsobjectValeurs des champs personnalisés par clé, par exemple {"company": "Analytical Engines"}. Remplacent les champs personnalisés existants du contact.
double_opt_inbooleanpar défaut : false422. Une personne déjà abonnée obtient 409, comme d’habitude.send_confirmation_emailbooleanpar défaut : falseRéponse
Renvoie 201 avec l’objet abonné, ou 200 lorsqu’un contact désinscrit a été réinscrit. Avec double_opt_in, renvoie 202 avec object: "subscriber_confirmation", status: "pending", audience_id, contact_id et email. Si l’e-mail de double opt-in ne peut pas être envoyé, la requête renvoie 422 avec un code tel que unverified_domain ou insufficient_credits.
{
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines"
},
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": null,
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
}{
"object": "subscriber_confirmation",
"status": "pending",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"message": "A double opt-in email was sent. They join the audience when they click its link."
}{
"error": "Audience not found"
}{
"error": "Contact is already subscribed to this audience",
"existing": {
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": { "company": "Analytical Engines" },
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000Z",
"unsubscribed_at": null,
"created_at": "2026-10-01T10:20:31.000Z",
"updated_at": "2026-10-01T10:20:31.000Z"
}
}{
"error": "Pro includes 50,000 subscribers per audience.",
"usage": {
"used": 50000,
"limit": 50000,
"plan": "pro"
}
}Récupérer un abonné
Récupère l’inscription d’un contact à une liste de contacts.
/audiences/{audience_id}/subscribers/{id}Nécessite une clé API full. Un abonné relie un contact à une liste. L’adresse e-mail, les noms et les champs personnalisés appartiennent au contact, tandis que subscribed ne concerne que cette liste.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.idstringobligatoiresub_…) ou l’adresse e-mail du contact, encodée pour l’URL.Réponse
Renvoie l’objet abonné.
objectstringsubscriber.idstringaudience_idstringcontact_idstringemailstringfirst_namestring | nulllast_namestring | nullcustom_fieldsobject | nullsubscribedbooleantrue si le contact est abonné à cette liste, false s’il s’est désinscrit.subscribed_atstring | nullunsubscribed_atstring | nullnull.created_atstringupdated_atstring{
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines"
},
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": null,
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
}{
"error": "Subscriber not found"
}Mettre à jour un abonné
Modifie le statut d’un abonné dans la liste de contacts, ou les informations de son contact.
/audiences/{audience_id}/subscribers/{id}Nécessite une clé API full. N’envoyez que les champs à modifier. subscribed ne s’applique qu’à cette liste. email, first_name, last_name et custom_fields modifient le contact lui-même : la modification apparaît donc dans toutes les listes auxquelles le contact appartient. Déclenche l’événement subscriber.updated.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.idstringobligatoiresub_…) ou l’adresse e-mail du contact, encodée pour l’URL.Paramètres du corps
subscribedbooleanfalse pour désinscrire le contact de cette liste, true pour le réinscrire. Dans les deux cas, l’abonné reste dans la liste.emailstringfirst_namestringlast_namestringcustom_fieldsobjectRéponse
Renvoie l’objet abonné mis à jour. Une requête sans aucun de ces champs renvoie 400.
curl -X POST https://api.emailit.com/v2/audiences/aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2/subscribers/ada%40example.com \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"subscribed": false}'{
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines"
},
"subscribed": false,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": "2026-10-02T08:14:55.000000Z",
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-02T08:14:55.000000Z"
}{
"error": "No valid fields provided for update. Provide at least one of: email, first_name, last_name, custom_fields, subscribed"
}{
"error": "Subscriber not found"
}Lister les abonnés
Renvoie une page des abonnés d’une liste de contacts, du plus récent au plus ancien.
/audiences/{audience_id}/subscribersNécessite une clé API full. La liste renvoyée inclut les contacts qui se sont désinscrits de la liste, sauf si vous les excluez avec subscribed=true.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.Paramètres de requête
pageintegerpar défaut : 1limitintegerpar défaut : 25per_page fonctionne aussi.subscribedstringtrue pour les contacts abonnés uniquement, false pour les contacts désinscrits uniquement.engagementstringunengaged pour les abonnés considérés comme inactifs sur la période de la liste, engaged pour les autres. Combinez-le avec subscribed=true pour exclure les personnes déjà désinscrites.searchstringmatchstringpar défaut : allall ou or. Mode de combinaison des filtres ci-dessous.orderstringdirectionstringasc ou desc.Filtres
Ajoutez des filtres sous la forme key.condition=value, par exemple email.ends_with=@acme.com. Consultez Filtrage et tri.
| Clé | Type | Remarques |
|---|---|---|
email |
chaîne | |
first_name |
chaîne | |
last_name |
chaîne | |
subscribed |
booléen | |
subscribed_at |
date | Date de la dernière inscription ou réinscription. |
last_engaged_at |
date | La dernière ouverture ou le dernier clic du contact. Les valeurs vides sont triées en dernier. |
created_at |
date | Date à laquelle le contact a rejoint la liste. |
Chaque clé est aussi une clé de tri.
Réponse
dataobject[]last_opened_at, last_clicked_at et last_engaged_at (la dernière ouverture du contact, son dernier clic et la plus récente des deux, ou null) ainsi que unengaged.total_recordsintegernext_page_urlstring | nullnull. Il conserve subscribed et engagement, mais pas vos autres filtres. Consultez Pagination.previous_page_urlstring | nullnull.usageobjectused (abonnés de la liste), limit (le maximum autorisé par liste sur votre forfait, ou null) et plan.curl -G https://api.emailit.com/v2/audiences/aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2/subscribers \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-d subscribed=true \
-d limit=100{
"data": [
{
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines"
},
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": null,
"last_opened_at": "2026-10-06T08:14:02.000000Z",
"last_clicked_at": null,
"last_engaged_at": "2026-10-06T08:14:02.000000Z",
"unengaged": false,
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
},
{
"object": "subscriber",
"id": "sub_4KnmYprkoMRytdkm3tAHIfPW0Vh",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7",
"email": "grace@example.com",
"first_name": "Grace",
"last_name": "Hopper",
"custom_fields": null,
"subscribed": false,
"subscribed_at": "2026-09-28T07:55:02.000000Z",
"unsubscribed_at": "2026-09-30T18:11:40.000000Z",
"last_opened_at": null,
"last_clicked_at": null,
"last_engaged_at": null,
"unengaged": false,
"created_at": "2026-09-28T07:55:02.000000Z",
"updated_at": "2026-09-30T18:11:40.000000Z"
}
],
"total_records": 2,
"next_page_url": null,
"previous_page_url": null,
"usage": {
"used": 2,
"limit": 50000,
"plan": "pro"
}
}{
"error": "Audience not found"
}Mettre à jour des abonnés en masse
Inscrit, désinscrit ou retire de nombreux abonnés d’une liste de contacts.
/audiences/{audience_id}/subscribers/bulkNécessite une clé API full. Sélectionnez les abonnés avec ids, ou définissez all_matching pour agir sur toutes les personnes correspondant aux filtres, dans la limite de 10 000 personnes. Chaque modification déclenche le même événement que la modification d’un seul abonné : subscriber.updated pour l’inscription et la désinscription, subscriber.deleted pour la suppression. La désinscription conserve les personnes dans la liste avec subscribed: false ; la suppression retire leur inscription à la liste et conserve les contacts. Consultez Actions en masse.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.Paramètres du corps
actionstringobligatoiresubscribe, unsubscribe ou delete.idsstring[]sub_…), 1 000 au maximum. Tous doivent appartenir à la liste ; sinon, rien n’est modifié et la requête renvoie 404 avec les ID manquants dans missing.all_matchingbooleanpar défaut : falseids. Au-delà de 10 000 correspondances, la requête renvoie 422.engagementstringsubscribedbooleanall_matching : uniquement les personnes abonnées (true) ou désinscrites (false).searchstringall_matching : recherche insensible à la casse sur l’adresse e-mail, le prénom ou le nom de famille.Réponse
objectstringsubscriber_bulk.actionstringaudience_idstringprocessedintegerchangedinteger{
"object": "subscriber_bulk",
"action": "unsubscribe",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"processed": 212,
"changed": 212
}{
"error": "One or more subscribers were not found",
"missing": ["sub_4KnmYprkoMRytdkm3tAHIfPW0Vh"]
}{
"error": "More than 10000 subscribers match. Narrow the filter and try again."
}Supprimer un abonné
Retire un contact d’une liste de contacts.
/audiences/{audience_id}/subscribers/{id}Nécessite une clé API full. Le contact lui-même n’est pas supprimé et reste dans ses autres listes. Pour garder une trace de la désinscription d’une personne, désinscrivez-la plutôt avec subscribed: false. Déclenche l’événement subscriber.deleted.
Paramètres de chemin
audience_idstringobligatoireaud_…) ou son nom.idstringobligatoiresub_…) ou l’adresse e-mail du contact, encodée pour l’URL.Réponse
objectstringsubscriber.idstringaudience_idstringcontact_idstringemailstringdeletedbooleantrue.{
"object": "subscriber",
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"audience_id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"contact_id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"deleted": true
}{
"error": "Subscriber not found"
}