EN
Copied
Modules

Emails

Trouve une adresse email exploitable pour chaque point d'intérêt d'une liste existante.

Purpose

Module d'enrichissement : déduit des adresses email depuis le site web de chaque POI. Les boîtes nominatives sont remontées avant les génériques (info@, contact@, hello@). Aucune adresse n'est inventée — vide quand aucun candidat ne qualifie.

Inputs

Une liste de POI portant chacun au moins un site web. Les deux modes d'exécution diffèrent en couverture vs coût.

Field Type Required Description
items array of POI objects yes 1 à 10 000 entrées. Les entrées sans site_web sont filtrées avant l'exécution.
mode "normal" | "deep" no, défaut "normal" normal exécute l'extraction standard. deep exécute un second passage exhaustif et requiert un run normal déjà terminé sur la même source.
source_job_id string conditionnel Requis quand mode = "deep". Doit référencer un job emails done en mode normal sur la même source amont.

Outputs

Chaque POI d'entrée est augmenté de jusqu'à deux champs email. Les colonnes POI d'origine sont conservées ; le job ajoute :

Column Type Description
email string | null Meilleure adresse classée pour ce POI. Vide quand aucun candidat ne qualifie.
email_personal string | null Renseigné quand le meilleur candidat ressemble à une boîte personnelle plutôt qu'à une adresse de rôle générique.

Le classement est déterministe. Unité de progression : sites. Unité de résultat : emails.

Lifecycle

Cycle de vie standard : voir Jobs & lifecycle.

Pipeline

Slot Value
needs poi_list (POI avec un champ site_web)
produces enriched_list (POI augmentés de email, email_personal)
Amont typique scrap
Aval typique verify_emails, delivery_check, filter

Config pipeline par défaut : { "mode": "normal" }. deep est conçu comme une relance manuelle sur les POI revenus vides du run normal.

Endpoints

Création d'un job :

POST /api/jobs/emails
Content-Type: application/json

{
  "items": [
    { "site_web": "https://example.com", "nom": "Example Co" }
  ],
  "mode": "normal"
}

Réponse : un objet JobPublic avec id, status et les métadonnées standard. Pour la surface API job complète, voir Jobs API.

Limits

Quotas globaux : voir /docs/fr/concepts/limits. Plafonds spécifiques au module :

Limit Value
Nombre minimum d'items par job 1
Nombre maximum d'items par job 10 000
Items retenus uniquement ceux avec un site_web non vide
Prérequis mode deep Un job emails normal done sur le même source_job_id

Les items sans site web sont écartés à la normalisation. Si la liste filtrée est vide, le job est rejeté avec "Aucun établissement avec site web".

Errors

HTTP detail Cause
400 Mode email invalide : ... (attendu: normal | deep) mode n'est ni normal ni deep.
400 Aucun établissement avec site web Aucun item d'entrée ne porte un champ site_web.
400 Le mode Deep Extract n'est dispo qu'après une extraction normale ... mode = "deep" soumis sans run normal valide préalable sur la même source.
400 Quota dépassé : ... Coût estimé supérieur au quota équivalent-France per-job.
401 / 403 Session absente ou inactive.

Les erreurs levées après création remontent via l'événement SSE error ; le job termine en status = "error" et les résultats partiels restent téléchargeables.

What's next