Vérification fermeture
Vérifier si chaque point d'intérêt est toujours en activité, a fermé, ou est incertain — à partir des signaux réels d'abandon sur son site.
Objet
Le module dead_check inspecte le site web associé à chaque point d'intérêt (POI) et détermine si l'activité sous-jacente semble vivante, fermée ou incertaine. Il corrèle plusieurs signaux d'abandon sur le même domaine : nom de domaine en expiration, redirection vers une propriété sans rapport (revente ou rebranding), pages de parking déguisées en vrais sites, certificats TLS expirés ou invalides. Les annuaires (Doctolib, Pages Jaunes, Yelp, etc.) sont reconnus comme tels plutôt que catalogués à tort en site personnel.
Inputs
Une liste de POI, chacun portant au moins un site web. Les entrées sans site_web sont filtrées à la soumission.
| Champ | Type | Requis | Description |
|---|---|---|---|
items |
array d'objets POI | oui | 1 à 10 000 entrées. Les entrées sans site_web sont écartées avant exécution. |
source_job_id |
string | non | Identifiant du job amont produisant la liste (typiquement un scrap). Sert au lignage dans l'UI et le pipeline. |
Aucun autre paramètre : le module tourne dans un mode unique.
Outputs
Chaque POI d'entrée est enrichi du verdict de fermeture pour son site. Les colonnes POI d'origine sont conservées et la suivante est ajoutée :
| Colonne | Type | Description |
|---|---|---|
site_alive |
"open" | "closed" | "uncertain" |
Verdict final. open = site se comporte comme une présence d'activité, closed = signaux convergents d'abandon, uncertain = signaux trop minces pour trancher. |
L'unité de progression pendant l'exécution est sites ; l'unité de résultat aussi.
Cycle de vie
États de job standard — voir Cycle de vie des jobs. Des compteurs partiels sont diffusés en SSE, ce qui permet de consommer les premiers verdicts sans attendre l'export final.
Pipeline
Pipelinable ; typiquement inséré juste après l'étape produisant la liste, avant tout enrichissement coûteux.
| Slot | Valeur |
|---|---|
needs |
site_web |
produces |
site_alive |
| Catégorie | verify |
| Amont typique | scrap |
| Aval typique | emails, techstack, ads_intelligence, filter |
Pattern courant : scrap puis dead_check puis filter (garder site_alive = "open") puis n'importe quel module d'enrichissement — pour ne pas payer de la donnée d'outreach sur des activités fermées.
Endpoints
Créer un job :
POST /api/jobs/dead-check
Content-Type: application/json
{
"items": [
{ "site_web": "https://example.com", "nom": "Example Co" }
],
"source_job_id": "…"
}
Réponse : un objet JobPublic avec id, status et les métadonnées de job standard. Poller GET /api/jobs/{id} ou s'abonner au flux SSE pour la progression ; télécharger le CSV final depuis la page de détail du job une fois status = "done".
Pour la surface complète de l'API des jobs (liste, détail, cancel, export, events), voir API Jobs. Pour les quotas par compte, voir Limites.
Erreurs
| HTTP | detail |
Cause |
|---|---|---|
| 400 | Aucun établissement avec site web |
Aucun item d'entrée ne porte de champ site_web. |
| 400 | Quota dépassé : … |
Le coût estimé dépasse le quota équivalent-France par job. |
| 401 / 403 | — | Session manquante ou inactive. |
Les erreurs levées après la création du job remontent sur la page de détail et via l'événement SSE error ; le job termine en status = "error" et les résultats partiels, s'il y en a, restent téléchargeables.