Aller au contenu
Docs

Guide pratique

Chaque liste de contacts dispose d’une URL d’inscription hébergée qui ajoute des personnes sans clé API. Découvrez le format de la requête, comment l’appeler en toute sécurité, ses limites et comment la réinitialiser.

Mis à jour le 1 oct. 2026

Chaque liste de contacts dispose d’une URL d’inscription : un endpoint public qui ajoute une personne à la liste sans clé API. Utilisez-la pour relier à une liste un formulaire d’inscription de votre site, ou un outil no-code capable d’envoyer une requête JSON.

Text
POST https://api.emailit.com/subscribe/{token}

Le token est propre à la liste et secret. Toute personne qui possède l’URL peut ajouter des adresses à la liste : traitez-la comme un mot de passe.

Trouver l’URL

  1. Ouvrez la liste. Accédez à Email MarketingAudiences et sélectionnez la liste.

  2. Copiez l’URL. Sélectionnez Subscribe URL et copiez l’URL depuis la boîte de dialogue.

Via l’API, Récupérer une liste renvoie la même valeur dans token.

Format de la requête

Envoyez une requête POST avec un corps JSON et Content-Type: application/json. Aucun en-tête Authorization n’est nécessaire.

emailstringobligatoire
L’adresse à inscrire. Stockée en minuscules.
first_namestring
Le prénom de la personne. Remplace le prénom enregistré d’un contact existant.
last_namestring
Le nom de famille de la personne. Remplace le nom enregistré d’un contact existant.
custom_fieldsobject
Valeurs indexées par la clé du champ personnalisé. Remplace toutes les valeurs de champs personnalisés d’un contact existant : ne l’envoyez donc que si vous disposez de l’ensemble complet.

L’endpoint ne lit que du JSON. Les corps encodés comme un formulaire, qu’envoie un simple <form> HTML, sont rejetés avec 400 et « Invalid JSON in request body ».

Réponses

Statut Corps Cas
200 { "message": "Subscribed successfully" } La personne a été ajoutée, réinscrite ou était déjà abonnée.
400 { "error": "Missing required field: email" } ou { "error": "Invalid email format" } L’adresse e-mail est absente ou mal formée, ou le corps n’est pas du JSON.
404 { "error": "Audience not found" } Le jeton est erroné ou a été réinitialisé.
422 { "error": "...", "usage": { ... } } La liste a atteint sa limite d’abonnés.
429 Plus de 30 requêtes en une minute depuis la même adresse IP.

Effet d’une inscription

  • Nouvelle adresse : Emailit crée le contact et l’inscrit à la liste.
  • Contact existant, absent de la liste : Emailit met à jour les noms et les champs personnalisés envoyés et inscrit le contact.
  • Abonné existant qui s’était désinscrit : Emailit le réinscrit.
  • Abonné existant toujours inscrit : rien ne change, à part la date d’inscription, et la réponse est quand même 200.

Les inscriptions via l’URL d’inscription n’envoient pas d’événements webhook subscriber.* ou contact.* et ne démarrent pas les automatisations Added to audience. Elles ne modifient pas non plus le statut marketing d’un contact : si le contact était désinscrit de toutes les listes, les campagnes continuent de l’ignorer jusqu’à ce que vous le réinscriviez depuis la liste Contacts.

Connecter un formulaire d’inscription

L’URL d’inscription n’a aucune protection contre les robots et n’accepte que du JSON. La configuration la plus sûre consiste à envoyer votre formulaire à votre propre serveur, à le contrôler sur place, puis à appeler l’URL d’inscription depuis le serveur. Le jeton reste ainsi absent du code source de votre page et vous pouvez bloquer le spam avant qu’il n’atteigne votre liste.

  1. Ajoutez le formulaire à votre page. Envoyez-le vers un endpoint de votre propre site. Le champ masqué website est un pot de miel (honeypot) : les personnes ne le voient pas, mais les robots le remplissent souvent.

    signup.html
    <form id="signup" method="post" action="/newsletter">
      <label for="email">Email</label>
      <input id="email" name="email" type="email" required>
    
      <label for="first_name">First name</label>
      <input id="first_name" name="first_name" type="text">
    
      <!-- Honeypot: hidden from people, often filled in by bots -->
      <div style="position:absolute;left:-10000px" aria-hidden="true">
        <input name="website" type="text" tabindex="-1" autocomplete="off">
      </div>
    
      <button type="submit">Subscribe</button>
      <p class="status" role="status"></p>
    </form>
  2. Traitez le formulaire sur votre serveur. Écartez les envois qui ont rempli le pot de miel, vérifiez un CAPTCHA si vous en utilisez un, puis transmettez les champs à l’URL d’inscription au format JSON. Conservez le jeton dans une variable d’environnement comme EMAILIT_SUBSCRIBE_TOKEN. Consultez les exemples côté serveur ci-dessous.

  3. Testez-le. Envoyez le formulaire avec votre propre adresse et vérifiez que vous apparaissez dans le tableau des abonnés de la liste.

Exemples côté serveur

server.js
import express from 'express';

const app = express();

app.post('/newsletter', express.urlencoded({ extended: false }), async (req, res) => {
  // Bots fill in the honeypot. Pretend it worked and stop.
  if (req.body.website) return res.redirect(303, '/thanks');

  const response = await fetch(
    `https://api.emailit.com/subscribe/${process.env.EMAILIT_SUBSCRIBE_TOKEN}`,
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        email: req.body.email,
        first_name: req.body.first_name || undefined,
      }),
    },
  );

  if (!response.ok) {
    const { error } = await response.json().catch(() => ({}));
    return res.status(response.status).send(error || 'Could not subscribe.');
  }

  res.redirect(303, '/thanks');
});

app.listen(3000);

Si votre page envoie le formulaire en JavaScript au lieu de recharger toute la page, appelez votre propre endpoint avec fetch et laissez l’appel à Emailit sur le serveur :

signup.js
document.querySelector('#signup').addEventListener('submit', async (event) => {
  event.preventDefault();
  const form = new FormData(event.target);
  const response = await fetch('/newsletter', { method: 'POST', body: new URLSearchParams(form) });
  event.target.querySelector('.status').textContent = response.ok
    ? 'Thanks, you are subscribed.'
    : 'Something went wrong. Please try again.';
});

Limite de débit et volumes plus importants

L’URL d’inscription accepte 30 requêtes par minute depuis chaque adresse IP et renvoie 429 au-delà. Quand votre serveur transmet chaque inscription, elles proviennent toutes de l’IP de votre serveur : les 30 requêtes par minute s’appliquent donc à l’ensemble de votre site. Si vous en attendez davantage, appelez plutôt Ajouter un abonné depuis votre serveur avec une clé API. Cet endpoint renvoie aussi 409 pour les personnes déjà abonnées et démarre les automatisations Added to audience, par exemple pour envoyer un e-mail de bienvenue.

Confirmer les inscriptions

L’URL d’inscription ajoute les personnes immédiatement. Emailit n’envoie pas d’e-mail de confirmation et ne demande pas à la personne de confirmer son adresse (double opt-in).

Si vous voulez des inscriptions confirmées, intégrez la confirmation à votre propre parcours : quand quelqu’un envoie le formulaire, enregistrez la demande sur votre serveur et envoyez-lui un e-mail contenant un lien de confirmation qui renvoie vers votre site. N’appelez l’URL d’inscription qu’une fois ce lien ouvert.

Réinitialiser l’URL

Réinitialisez le jeton si l’URL a fuité ou si vous recevez des inscriptions indésirables. L’ancienne URL cesse immédiatement de fonctionner et renvoie 404.

  1. Ouvrez la boîte de dialogue. Sur la page de la liste, sélectionnez Subscribe URL.

  2. Réinitialisez. Sélectionnez Reset token et confirmez. Emailit génère une nouvelle URL.

  3. Mettez à jour vos intégrations. Remplacez le jeton partout où vous l’utilisez, par exemple dans la variable EMAILIT_SUBSCRIBE_TOKEN de votre serveur.

La réinitialisation du jeton n’est possible que dans le tableau de bord.

Ajoutez des personnes via l’API et gérez les réinscriptions.
Permettez aux personnes de quitter vos listes.

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

Merci pour votre retour.

Merci, nous lisons chaque message.