---
title: "Flux d'évènements des annonces"
method: GET
path: "/flux/annonces"
---

# Flux d'évènements des annonces

`GET /flux/annonces`

## Request

- Base URL: `https://pillr.fr/api/v1`
- URL: `https://pillr.fr/api/v1/flux/annonces`
- Auth: HTTP bearer

Les évènements datés du catalogue des annonces de vente, dans l'ordre où ils ont été écrits : nouvelle annonce, analyse publiée ou refaite, baisse et hausse de prix, retrait, réactivation, passage à plusieurs agences. Chaque évènement porte l'état avant et après, et l'annonce au format liste. Filtres : depuis (date), genres, communes, codes postaux, départements. Le curseur_suivant est rendu même sur la dernière page : repassez-le plus tard, avec les mêmes filtres, pour ne lire que la suite ; a_jour dit qu'il n'y a plus rien à lire pour l'instant. Les baisses de prix sont dédoublonnées au jour et au nouveau prix. Coût : 1 crédit par évènement livré.

## Query parameters

- `depuis` string: Ne lire que les évènements écrits depuis cette date (AAAA-MM-JJ ou horodatage ISO 8601).
- `genres` union: Genre, ou liste de genres (paramètre répété) ; tous si absent.
  - 'nouvelle' | 'analyse' | 'reanalyse' | 'baisse_prix' | 'hausse_prix' | 'retrait' | 'reactivation' | 'multi_agences': nouvelle (annonce entrée au catalogue), analyse (première analyse publiée), reanalyse (analyse refaite), baisse_prix, hausse_prix, retrait (annonce retirée du portail), reactivation, multi_agences (le bien passe à deux agences ou plus).
  - string[]
- `insee` union: Code INSEE, ou liste de 20 codes au plus (paramètre répété).
  - string: Code INSEE de la commune ou de l'arrondissement (5 caractères, 2A ou 2B pour la Corse).
  - string[]
- `cp` union: Code postal, ou liste de 20 codes au plus.
  - string: Code postal.
  - string[]
- `departement` union: Code de département, ou liste de 10 codes au plus.
  - string: Code du département (01 à 95, 2A, 2B, 971 à 976).
  - string[]
- `limite` integer: Nombre d'éléments par page (1000 au plus).
- `curseur` string: Curseur opaque rendu par la page précédente (curseur_suivant), à repasser tel quel.

## Response `200`

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

- object
  - `evenements` object[], required: Les évènements, dans l'ordre du flux.
    - `id` string, required: Identifiant de l'évènement, croissant dans l'ordre du flux.
    - `genre` 'nouvelle' | 'analyse' | 'reanalyse' | 'baisse_prix' | 'hausse_prix' | 'retrait' | 'reactivation' | 'multi_agences', required: nouvelle (annonce entrée au catalogue), analyse (première analyse publiée), reanalyse (analyse refaite), baisse_prix, hausse_prix, retrait (annonce retirée du portail), reactivation, multi_agences (le bien passe à deux agences ou plus).
    - `le` string, required: Horodatage de l'évènement (ISO 8601).
    - `annonce_id` string, required: Identifiant Pillr de l'annonce.
    - `avant` object, nullable, required: État de l'annonce avant ou après l'évènement.
      - `prix` number, nullable, required: Prix, en euros (baisse_prix, hausse_prix, nouvelle).
      - `ecart_pct` number, nullable, required: Écart du prix, en % (baisse_prix, hausse_prix).
      - `detecte_le` string, nullable, required: Date de détection du changement de prix.
      - `actif` boolean, nullable, required: Annonce en ligne (retrait, reactivation, nouvelle).
      - `analyse_le` string, nullable, required: Date de l'analyse (analyse, reanalyse).
      - `score` number, nullable, required: Score Pillr de l'analyse (analyse, reanalyse).
      - `nb_agences` number, nullable, required: Agences qui publient le bien (multi_agences).
      - `nb_portails` number, nullable, required: Portails qui publient le bien (multi_agences).
      - `prix_min` number, nullable, required: Prix le plus bas entre les annonces du bien (multi_agences).
      - `prix_max` number, nullable, required: Prix le plus haut entre les annonces du bien (multi_agences).
    - `apres` object, nullable, required: État de l'annonce avant ou après l'évènement.
      - `prix` number, nullable, required: Prix, en euros (baisse_prix, hausse_prix, nouvelle).
      - `ecart_pct` number, nullable, required: Écart du prix, en % (baisse_prix, hausse_prix).
      - `detecte_le` string, nullable, required: Date de détection du changement de prix.
      - `actif` boolean, nullable, required: Annonce en ligne (retrait, reactivation, nouvelle).
      - `analyse_le` string, nullable, required: Date de l'analyse (analyse, reanalyse).
      - `score` number, nullable, required: Score Pillr de l'analyse (analyse, reanalyse).
      - `nb_agences` number, nullable, required: Agences qui publient le bien (multi_agences).
      - `nb_portails` number, nullable, required: Portails qui publient le bien (multi_agences).
      - `prix_min` number, nullable, required: Prix le plus bas entre les annonces du bien (multi_agences).
      - `prix_max` number, nullable, required: Prix le plus haut entre les annonces du bien (multi_agences).
    - `annonce` object, nullable, required: L'annonce au format liste, telle que la base servie la publie au moment de la lecture.
      - `id` string, required: Identifiant Pillr de l'annonce (à repasser à /annonces/{id}).
      - `id_portail` string, nullable, required: Identifiant chez le portail, servi avec la portée lien_origine.
      - `lien` string, nullable, required: Lien d'origine de l'annonce, servi avec la portée lien_origine.
      - `source` string, nullable, required: Portail d'origine : lbc, bienici ou seloger.
      - `statut` string, nullable, required: actif, retire ou masque.
      - `type` string, nullable, required: appartement, maison ou immeuble.
      - `commune` string, nullable, required
      - `code_postal` string, nullable, required
      - `insee` string, nullable, required
      - `departement` string, nullable, required
      - `lat` number, nullable, required
      - `lon` number, nullable, required
      - `precision_coordonnees` string, nullable, required: adresse, approchee, centre_commune ou inconnue.
      - `prix` number, nullable, required
      - `surface` number, nullable, required
      - `pieces` number, nullable, required
      - `prix_m2` number, nullable, required: Prix divisé par la surface (jamais la valeur du portail).
      - `dpe` 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G', nullable, required
      - `score` number, nullable, required: Score Pillr sur 100 ; null tant que l'annonce n'est pas analysée.
      - `rendement_brut` number, nullable, required: Rendement brut en %, recalculé depuis le loyer estimé et le prix.
      - `rendement_net` number, nullable, required: Rendement net en %, recalculé sur le budget total.
      - `etat_visuel` number, nullable, required: État visuel lu sur les photos, sur 100.
      - `premiere_parution` string, nullable, required
      - `type_vendeur` 'pro' | 'particulier' | 'inconnu', required: Statut du vendeur déclaré par le portail : pro (agence, réseau, promoteur), particulier, ou inconnu.
      - `annonceur` object, required: Le vendeur : un professionnel est nommé, un particulier jamais.
        - `type_vendeur` 'pro' | 'particulier' | 'inconnu', required: Statut du vendeur déclaré par le portail : pro (agence, réseau, promoteur), particulier, ou inconnu.
        - `nom` string, nullable, required: Nom de l'agence ou du professionnel ; null pour un particulier.
        - `enseigne` string, nullable, required: Enseigne ou réseau du professionnel ; null pour un particulier.
        - `siren` string, nullable, required: SIREN du professionnel quand le portail le publie ; null pour un particulier.
      - `drapeaux` string[], required: Ce qui doit faire lire l'annonce avec prudence ; vide si rien.
  - `a_jour` boolean, required: Vrai quand le flux n'a plus rien à lire pour l'instant : repassez curseur_suivant plus tard pour reprendre.
  - `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.
  - `curseur_suivant` string, nullable, required: Curseur de la page suivante, à repasser dans curseur ; null sur la dernière page.
  - `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 ; Curseur invalide
- `401`: Clé d'API absente
- `402`: Crédits insuffisants ; Carte requise ; Plafond mensuel de dépense atteint
- `403`: Portée insuffisante ; Palier insuffisant
- `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)
