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.

Demander un accès et un devis →

Ce site utilise des cookies essentiels pour l'authentification et le paiement sécurisé. En savoir plus