API de scoring · v0
POST /api/v1/analyses
Vous envoyez le texte d'une annonce, nous rendons le verdict complet. C'est exactement le même pipeline que celui du site public : même barème, mêmes règles de sourçage, même cache. Aucun traitement de faveur n'est possible — le calcul ne sait pas qui appelle.
Authentification
Une clé par client, dans l'en-tête Authorization: Bearer ix_live_… (ou X-API-Key). Elle n'est affichée qu'à sa création : nous n'en conservons qu'une empreinte salée et ne pouvons pas vous la rappeler.
Requête
curl -X POST https://www.inspexo.io/api/v1/analyses \
-H "Authorization: Bearer ix_live_…" \
-H "Content-Type: application/json" \
-d '{
"texte": "Peugeot 308 1.2 PureTech 130 de 2019, 100 000 km, ...",
"prix": 13900,
"km": 100000
}'texte obligatoire (40 caractères minimum) · prix et km facultatifs, en euros et en kilomètres.
Réponse
{
"id": "9f9e54c4-5630-4173-92b1-9bcec68fad1a",
"url": "https://www.inspexo.io/a/9f9e54c4-…",
"verdict": "orange",
"score": 55,
"bareme_version": "11.0",
"cache": false,
"vehicule": {
"marque": "Peugeot", "modele": "308",
"motorisation": "1.2 PureTech 130", "famille_moteur": "EB2DT",
"annee": 2019, "kilometrage": 100000, "prix_affiche": 13900
},
"axes": {
"prix": { "note": 12, "commentaire": "…" },
"kilometrage_age": { "note": 13, "commentaire": "…" },
"historique_entretien": { "note": 11, "commentaire": "…" },
"risques_mecaniques": { "note": 9, "commentaire": "…" },
"vendeur_cadre": { "note": 12, "commentaire": "…" }
},
"motifs": [
"La courroie de distribution en bain d'huile doit être remplacée à l'échéance.",
"…"
],
"points": [
{
"titre": "Courroie de distribution en bain d'huile",
"organe": "distribution",
"gravite": "majeure",
"km_typique": "dès 100 000 km",
"cout_min_eur": 400, "cout_max_eur": 750,
"source": "base Inspexo",
"urls": ["https://…"]
}
],
"incoherences": [],
"quota": { "restant_mois": 97, "quota_mensuel": 100 }
}Chaque entrée de points porte ses urls : un défaut sans source consultable n'est pas publié, chez nous comme chez vous. bareme_version identifie la règle de calcul utilisée — elle change quand un score changerait à faits identiques.
Limites
Quota mensuel
Fixé par contrat, décompté par appel. Le compteur repart le 1er du mois. L'en-tête X-Quota-Restant donne le solde à chaque réponse.
Plafond journalier global
Un plafond journalier s'applique à l'ensemble du trafic API, toutes clés confondues : il protège le service et il est annoncé plutôt que subi.
Dépassement
HTTP 429 avec un message qui dit lequel des deux plafonds est atteint et quand il repart. Jamais de coupure silencieuse.
Cache de 7 jours
Une annonce déjà analysée dans les 7 jours renvoie le même résultat, marqué "cache": true. Il est décompté comme un appel.
Durée
Une analyse complète prend 40 à 90 secondes. Prévoyez un délai d'attente de 180 secondes.
Taille
Le texte de l'annonce est tronqué à 6 000 caractères.
Erreurs
- 401 · cle_manquante / cle_inconnue
- Clé absente, mal formée ou inconnue.
- 403 · cle_revoquee
- La clé a été révoquée.
- 429 · quota_mensuel / plafond_journalier
- Un des deux plafonds est atteint.
- 400 · texte_trop_court
- Le champ « texte » fait moins de 40 caractères.
- 503 · service_unavailable
- Fournisseur d'IA indisponible. L'appel n'est pas décompté.
Conditions
L'usage de l'API suppose de ne pas modifier le verdict rendu et de ne pas revendre les données brutes. Les conditions complètes sont remises avec le devis.