---
title: "Lecture photo par photo et rapport complet"
method: GET
path: "/annonces/{id}/analyse-detaillee"
---

# Lecture photo par photo et rapport complet

`GET /annonces/{id}/analyse-detaillee`

## Request

- Base URL: `https://pillr.fr/api/v1`
- URL: `https://pillr.fr/api/v1/annonces/{id}/analyse-detaillee`
- Auth: HTTP bearer

Ce que le moteur d'analyse de Pillr a produit sur une annonce analysée, en deux volets. Volet photos : chaque photo lue (pièce, état sur 100, défauts, observations, travaux déduits, exploitable ou motif du rejet), travaux groupés par poste et chiffrés par le barème déterministe avec leurs photos sources, postes écartés et leur motif, défauts par gravité, pièces vues et manquantes, plancher énergétique, score de qualité de l'annonce. Volet rapport, celui de la page d'analyse : plan financier avec crédit, notation sur six axes, anomalies du moteur de règles, analyse rédigée (forces, points d'attention, verdict, confiance) et photo du marché communal. Avec des photos de catalogue, l'état visuel n'est pas servi et la lecture le dit. Rien n'est débité si l'annonce est absente ou pas encore analysée. Coût : 5 crédits par appel réussi.

## Path parameters

- `id` string, required: Identifiant de l'annonce : lbc:<numéro>, bienici:<identifiant>, seloger:<numéro> ou identifiant Pillr.

## Query parameters

- `volets` string: Volets à servir, séparés par une virgule : photos, rapport ou photos,rapport (défaut : les deux).

## Response `200`

Réponse servie et débitée (sauf réponse identique déjà servie dans les 24 h).

- object
  - `id` string, required: Identifiant Pillr de l'annonce.
  - `id_portail` string, nullable, required: Identifiant chez le portail : lbc:<n>, bienici:<id> ou seloger:<id>.
  - `type_vendeur` 'pro' | 'particulier' | 'inconnu', required: Statut du vendeur : pro (professionnel nommé), particulier, ou inconnu quand le portail ne le dit pas. Une annonce qui n'est pas celle d'un professionnel perd les téléphones et les emails de ses textes.
  - `volets` string[], required: Les volets servis.
  - `moteur` object, required: Le moteur d'analyse de Pillr qui a produit ces valeurs.
    - `modele` string, nullable, required: Modèle qui a produit l'analyse, tel que le moteur l'a noté.
    - `version` number, nullable, required: Version du moteur d'analyse.
    - `analyse_le` string, nullable, required: Date de l'analyse (ISO 8601).
  - `photos` object, nullable, required: La lecture des photos par le moteur de vision de Pillr et les travaux qu'il en déduit.
    - `photos_total` integer, required
    - `photos_exploitables` integer, required
    - `qualite_annonce` number, nullable, required: Part des photos exploitables, en % : le score de qualité de l'annonce.
    - `etat_moyen` number, nullable, required: État visuel moyen des pièces vues, sur 100 ; null sans photo exploitable.
    - `pieces_vues` string[], required
    - `pieces_manquantes` string[], required: Pièces clés absentes des photos (cuisine, salle de bain, salon, façade).
    - `defauts` object, required
      - `mineur` integer, required
      - `moyen` integer, required
      - `majeur` integer, required
    - `travaux_groupes` object[], required: Travaux groupés par poste, chiffrés par le barème déterministe à partir de l'intensité décrite et de la surface.
      - `poste` string, required
      - `intensite` string, nullable, required
      - `libelle` string, required
      - `cout_min` number, required
      - `cout_max` number, required
      - `priorite` string, nullable, required
      - `justifications` string[], required
      - `photos` integer[], required: Rangs des photos qui fondent ce poste.
    - `travaux_ecartes` object[], required: Travaux proposés par la vision et écartés faute de preuve sur la photo, avec leur motif.
      - `poste` string, required
      - `motif` string, required
      - `photo` integer, nullable, required
    - `travaux` object, required: Total des travaux du barème, avant imprévus : plancher énergétique et rénovation complète compris.
      - `min` number, nullable, required
      - `max` number, nullable, required
      - `qualite` object, required: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
        - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
        - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
        - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
          - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
          - `bas` number, nullable, required
          - `haut` number, nullable, required
        - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
        - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
        - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
        - `source` string, required: Source publique ou moteur Pillr, en clair.
    - `plancher_energie` object, nullable, required: Ligne énergie déduite d'un DPE E, F ou G quand elle relève le total ; null sinon.
      - `classe` string, required
      - `cout_min` number, required
      - `cout_max` number, required
    - `par_photo` object[], required
      - `index` integer, required: Rang de la photo dans la liste lue (0 pour la première).
      - `piece` string, required: Pièce reconnue (cuisine, salon, salle_de_bain, facade_exterieur, plan_2d, indetermine...).
      - `etat` number, nullable, required: État visuel de la pièce sur 100 (60 correct, 80 bon, 95 neuf) ; null si la photo est inexploitable.
      - `exploitable` boolean, required
      - `motif` string, nullable, required: Pourquoi la photo est inexploitable ; null sinon.
      - `observations` string[], required
      - `defauts` object[], required
        - `libelle` string, required
        - `gravite` 'mineur' | 'moyen' | 'majeur', required
        - `poste` string, required: Poste de travaux auquel le défaut se rattache.
      - `travaux` object[], required
        - `poste` string, required
        - `intensite` string, nullable, required: leger, moyen ou lourd : l'intervention décrite, qui pilote le barème.
        - `libelle` string, required
        - `justification` string, nullable, required: Ce que le modèle de vision voit sur la photo.
        - `priorite` string, nullable, required: urgent, recommande ou optionnel.
        - `cout_min_indicatif` number, nullable, required: Montant proposé par le modèle de vision pour cette photo, non retenu : le chiffrage servi est celui des travaux groupés, calculé par le barème.
        - `cout_max_indicatif` number, nullable, required
    - `qualite` object, required: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
      - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
      - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
      - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
        - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
        - `bas` number, nullable, required
        - `haut` number, nullable, required
      - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
      - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
      - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
      - `source` string, required: Source publique ou moteur Pillr, en clair.
  - `rapport` object, nullable, required: Le rapport de la page d'analyse de Pillr.
    - `bien` object, required: Le bien tel que l'analyse l'a lu.
      - `titre` string, nullable, required
      - `type` string, nullable, required
      - `prix` number, nullable, required
      - `surface` number, nullable, required
      - `pieces` number, nullable, required
      - `localisation` string, nullable, required: Commune et code postal, tels que l'analyse les a lus.
      - `dpe` string, nullable, required
      - `annee_construction` number, nullable, required
      - `terrain_m2` number, nullable, required
      - `premiere_parution` string, nullable, required
      - `description` string, nullable, required
      - `lien` string, nullable, required: Lien d'origine de l'annonce, servi quand la clé porte la portée lien_origine.
    - `financier` object, required: Le plan financier de la page d'analyse, avec le crédit qu'il suppose.
      - `prix_achat` number, nullable, required
      - `investissement_total` number, nullable, required
      - `loyer_mensuel` number, nullable, required
      - `loyer_annuel` number, nullable, required
      - `charges_mensuelles` number, nullable, required
      - `charges_annuelles` number, nullable, required
      - `cash_flow_annuel` number, nullable, required
      - `cap_rate_pct` number, nullable, required: Loyer annuel rapporté au prix, en %.
      - `roi_pct` number, nullable, required: Cash-flow annuel rapporté à l'apport, en %.
      - `mensualite` number, nullable, required
      - `montant_emprunte` number, nullable, required
      - `duree_annees` number, nullable, required
      - `taux_interet_pct` number, nullable, required
      - `qualite` object, required: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
        - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
        - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
        - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
          - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
          - `bas` number, nullable, required
          - `haut` number, nullable, required
        - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
        - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
        - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
        - `source` string, required: Source publique ou moteur Pillr, en clair.
    - `notation` object, required: La notation sur six axes de la page d'analyse, sur 100.
      - `globale` number, nullable, required
      - `financiere` number, nullable, required
      - `localisation` number, nullable, required
      - `bien` number, nullable, required
      - `marche` number, nullable, required
      - `risque` number, nullable, required
    - `scores_modele` object, nullable, required: Les sous-scores du modèle sur 100 (etat, marche, rentabilite, potentiel, localisation, transport, fiscalite, risques, qualite_annonce) ; null pour un rapport antérieur.
    - `note` object, required
      - `lettre` string, nullable, required
      - `libelle` string, nullable, required
    - `anomalies` object[], required: Anomalies relevées par le moteur de règles, annonce contre marché.
      - `type` string, required
      - `severite` string, required
      - `message` string, required
    - `analyse` object, required: L'analyse rédigée par le modèle, telle que la page d'analyse la montre.
      - `verdict` string, nullable, required: ACHAT_RECOMMANDE, ACHAT_SOUS_CONDITIONS ou ACHAT_DECONSEILLE.
      - `resume` string, nullable, required
      - `synthese` string, nullable, required
      - `forces` object[], required
        - `titre` string, required
        - `detail` string, nullable, required
        - `impact_eur` number, nullable, required
      - `faiblesses` object[], required: Tous les points d'attention du modèle.
        - `titre` string, required
        - `detail` string, nullable, required
        - `gravite` string, nullable, required: FAIBLE, MOYEN, ELEVE ou CRITIQUE, tel que le modèle l'a noté.
        - `impact_eur` number, nullable, required
        - `solution` string, nullable, required
      - `risques` object[], required: Les points d'attention de gravité ELEVE ou CRITIQUE.
        - `titre` string, required
        - `detail` string, nullable, required
        - `gravite` string, nullable, required: FAIBLE, MOYEN, ELEVE ou CRITIQUE, tel que le modèle l'a noté.
        - `impact_eur` number, nullable, required
        - `solution` string, nullable, required
      - `opportunites` object[], required: Les travaux d'amélioration proposés par le modèle, avec leur valorisation.
        - `poste` string, required
        - `cout_min` number, nullable, required
        - `cout_max` number, nullable, required
        - `valorisation_pct` number, nullable, required
        - `justification` string, nullable, required
      - `conditions` string[], required
      - `plan_action` string[], required
      - `analyse_photo` string, nullable, required
      - `recommandation` string, nullable, required: La recommandation rédigée de la page d'analyse.
      - `confiance` object, required
        - `niveau` string, nullable, required: high, medium ou low, déclaré par le modèle.
        - `facteurs` string[], required
        - `limites` string[], required
      - `sources` string[], required: Sources que le modèle déclare avoir utilisées.
    - `marche` object, nullable, required: La photo du marché communal utilisée par l'analyse : les indicateurs de la commune au jour de l'analyse.
    - `genere_le` string, nullable, required
    - `qualite` object, required: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
      - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
      - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
      - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
        - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
        - `bas` number, nullable, required
        - `haut` number, nullable, required
      - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
      - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
      - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
      - `source` string, required: Source publique ou moteur Pillr, en clair.
  - `credits` object, required: Crédits débités par cet appel (réservés, pour une tâche en cours), et crédits encore utilisables ce mois avant la coupure : crédits offerts, crédits inclus du mois et crédits facturables sous le plafond de dépense (null si inconnus ou en bac à sable).
    - `debites` integer, required
    - `restants` integer, nullable, required

## Other responses

- `304`: Non modifiée depuis l'ETag fourni : rien n'est débité.
- `400`: Paramètres invalides
- `401`: Clé d'API absente
- `402`: Crédits insuffisants ; Carte requise ; Plafond mensuel de dépense atteint
- `403`: Portée insuffisante
- `404`: Ressource absente : rien n'est débité
- `429`: Trop de requêtes par minute
- `500`: Erreur interne
- `503`: API indisponible ; Donnée momentanément indisponible

---

[API](https://skmtc.dev/pillr/apis/api-pillr.md) · [All operations](https://skmtc.dev/pillr/apis/api-pillr/llms.txt) · [OpenAPI document](https://skmtc.dev/pillr/apis/api-pillr/revisions/218b2866bd6c?raw)
