EN
Copied
Modules

Tarifs

Tarifs

Extrait les grilles tarifaires publiées sur le site web de chaque point d'intérêt. Le module parcourt une cascade de sources structurées (JSON-LD, Microdata, Open Graph, routes tarifaires dédiées, repli sur la page d'accueil) et retourne un montant normalisé, une devise et une période de facturation pour chaque site résolu.

C'est une étape d'enrichissement, pas de découverte. Elle attend une liste préalable de POI avec un site_web résolu — typiquement la sortie d'un job scrap.

Entrées

Les items sans site_web sont silencieusement écartés à la validation.

Champ Type Requis Notes
items array oui 1 à 10 000 points d'intérêt
items[].site_web string oui URL absolue du site principal du fournisseur
source_job_id string non ID du job amont ayant produit la liste

Sorties

Les lignes sans signal sont conservées et marquées price_confidence = low afin de préserver la cardinalité d'entrée.

Colonne Type Description
price_amount number Tarif publié le plus bas visible chez le fournisseur, en valeur numérique
price_currency string Code ISO-4217 de la devise, typiquement EUR ou USD
price_period string Période de facturation associée au montant : month, year, one_time ou unknown
price_confidence string Confiance d'extraction : high, medium ou low

Cycle de vie

Cycle de vie standard des jobs outsend ; voir /docs/fr/concepts/jobs-lifecycle. Les jobs pricing sont sérialisés avec les autres jobs réseau intensifs du même compte.

Pipeline

needs:    [site_web]
produces: [price_amount, price_currency, price_period, price_confidence]

Chaîne typique : scrap -> pricing -> filter("price_amount >= 1000").

Endpoints

Méthode Chemin Rôle
POST /api/jobs/pricing Créer un job de tarifs
GET /api/jobs Lister les jobs de l'appelant
GET /api/jobs/{id} Lire un job et sa progression
GET /api/jobs/{id}/download Télécharger les résultats en JSON ou CSV
POST /api/jobs/{id}/cancel Arrêter un job en cours

Créer un job

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

{
  "items": [
    { "site_web": "https://example-saas.com" },
    { "site_web": "https://another-vendor.io" }
  ],
  "source_job_id": "job_01HX..."
}

Limites

Voir /docs/fr/concepts/limits. Un seul job pricing concurrent par compte.

Erreurs

Issue par item plutôt qu'échec du job entier.

Condition Comportement
Aucune page tarifs trouvée Ligne renvoyée avec price_amount vide et price_confidence = low. Le job termine en done.
Mur de connexion Ligne renvoyée avec price_amount vide et price_confidence = low.

Les erreurs au niveau du job — payload invalide, entrée vide après filtrage, quota dépassé — apparaissent en 400 depuis POST /api/jobs/pricing avec un message JobValidationError.

Pour aller plus loin