> ## Documentation Index
> Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer une alerte adverts

> Alerte temps réel sur les adverts. Webhook avec payload complet + events PRICE/REPUBLISHED/UNPUBLISHED.

<Warning>
  **Avant de créer une alerte, vérifier que ton webhook répond `200` aux données de sample disponibles sans auth (`GET /v2/sample/webhook/adverts`).**
</Warning>

`PUT /v2/protected/adverts/search/alerts` enregistre une **alerte adverts** : à chaque advert qui matche `search_query`, Fluximmo POSTe le payload sur `webhook_url`. Le `search_query` réutilise **exactement** le schéma `FilterAdvert`, identique à celui de l'alerte adverts elle-même.

**Pas de backfill à la création.** Seules les adverts ingérées **après** la création de l'alerte déclenchent un webhook. Si vous avez besoin d'historique, voir [Historique des matches](/api-v2-reference/adverts-alerts/get-history-of-match-adverts-by-its-saved-search-flxid) (utilisable uniquement après que l'alerte ait reçu des matches).

<Snippet file="warning-cycle-vie-alerte.mdx" />

## Champs clés

* `search_query` — payload `FilterAdvert`, identique au search.
* `webhook_url` — endpoint HTTPS public qui recevra les `POST` de Fluximmo (cf. [concept Webhooks](/concepts/webhooks)).
* `match` — tableau parmi `ALERT_MATCH_CREATED` (nouvelle advert matchée, **1×**) et `ALERT_MATCH_ADVERT_EVENT` (events `PRICE` / `REPUBLISHED` / `UNPUBLISHED` sur les adverts **historiquement matchées par cette alerte**). Voir [Match types & cycle alerte](/concepts/match-types-cycle-alerte).
* `search_name` — libellé humain pour reconnaître l'alerte dans la liste.
* `context` — objet libre (`{ metadata: ... }`) propagé dans chaque webhook : pratique pour relier la livraison à une campagne / un user interne / une release.

## Cas d'usage

* **Chasseur immo / FlipAndGo** — découvrir chaque nouvelle annonce dans une zone et un budget.
* **CRM agence** — pousser automatiquement les nouvelles annonces matchant le projet d'un client dans son fil de prospection.
* **Veille événementielle** — suivre les baisses de prix et republications sur un périmètre via `ALERT_MATCH_ADVERT_EVENT`.

## Exemples

### B1 — Achat appartement département (use case standard)

Nouvelles annonces uniquement (pas d'events). Idéal pour démarrer. Filtre `isOnline: true` recommandé en production pour ne recevoir que des adverts actuellement publiées.

```json theme={null}
{
  "search_query": {
    "filterAd": {
      "location": { "department": "75" },
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "isOnline": true
    }
  },
  "webhook_url": "https://votre-domaine.com/webhooks/fluximmo",
  "match": ["ALERT_MATCH_CREATED"],
  "search_name": "Achat T2-T3 Paris"
}
```

### B2 — Avec events (suivi prix + dépublications)

Combinaison `CREATED` + `ADVERT_EVENT` : vous recevez d'abord la première découverte, puis chaque event ultérieur (`PRICE`, `REPUBLISHED`, `UNPUBLISHED`) **uniquement sur les adverts déjà matchées par cette même alerte**.

```json theme={null}
{
  "search_query": {
    "filterAd": {
      "location": { "department": "75" },
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "currentPrice": { "value": { "max": 600000 } },
      "isOnline": true
    }
  },
  "webhook_url": "https://votre-domaine.com/webhooks/fluximmo",
  "match": ["ALERT_MATCH_CREATED", "ALERT_MATCH_ADVERT_EVENT"],
  "search_name": "Paris achat - veille prix"
}
```

<Warning>
  Les events ne sont **pas rétroactifs** : si vous créez l'alerte aujourd'hui, vous ne recevrez pas les `PRICE` survenus hier sur des adverts existantes. Seuls comptent les matches obtenus après la création.
</Warning>

### B3 — Range prix mono-département

Achat appartement département 92, 100k–400k€. Côté ADVERT, `location` est un objet unique : pour cibler plusieurs départements, créez une alerte par zone.

```json theme={null}
{
  "search_query": {
    "filterAd": {
      "location": { "department": "92" },
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "currentPrice": { "value": { "min": 100000, "max": 400000 } },
      "isOnline": true
    }
  },
  "webhook_url": "https://votre-domaine.com/webhooks/fluximmo",
  "match": ["ALERT_MATCH_CREATED"],
  "search_name": "92 achat appart 100-400k"
}
```

<Note>
  ADVERT alerts acceptent un seul objet `location` (vs PROPERTY qui supporte un array multi-zones OR). Pour couvrir plusieurs départements, créez **N alertes** distinctes — c'est plus explicite et plus simple à monitorer.
</Note>

## Cross-links

* [Match types & cycle alerte](/concepts/match-types-cycle-alerte)
* [Webhooks](/concepts/webhooks) — format de livraison, retries, sécurité
* [Modifier une alerte](/api-v2-reference/adverts-alerts/update-the-search-criteria-of-an-advert-alert) — préserve l'historique
* [Historique des matches](/api-v2-reference/adverts-alerts/get-history-of-match-adverts-by-its-saved-search-flxid)


## OpenAPI

````yaml put /v2/protected/adverts/search/alerts
openapi: 3.0.0
info:
  title: Real-estate data API - Fluximmo V2
  description: >+
    ## Fluximmo

    ##### Real-time real estate data: Power workflows, business applications and
    decision-making.


    Real estate expert since 2017, Fluximmo aggregates, exploits, enriches &
    analyzes the 


    real-estate market in real time to offer data flows, APIs and innovative
    services to real estate professionals.


    ## Authentification

    You'll need to be authenticated with an active subscription to access our
    REST endpoints.


    To get an API-KEY please contact us at contact@fluximmo.com or book a call
    with our team: https://calendly.com/fluximmo/meet-fluximmo

    ##### How to use your API KEY

    Simply add to your HTTP request your API KEY in the headers:
    `{'x_api_key':'randomApiKey'}`


    ## Properties and Adverts

    Real-estate market can be conceptualized in different ways. We offer two
    different conceptualization depending on your needs: Properties & Adverts.

    #### Properties (BAAS)

    A property is a real-estate habitation/land/commercial/building to which is
    attached adverts.


    We gather all the adverts offering (selling or renting) this real-estate
    asset and consolidate all the information into one Property.


    A Property is by definition `de-duplicated` and can gather 1 to x adverts:
    these adverts are either duplicates from different portals or with mandates
    from different agencies or republication of the same advertising with a
    price update or not.


    The concept of property is in constant mutation until the real-estate asset
    is sold: We'll keep merging new adverts within the Property concept and
    update the price if needed.


    By it's nature in constant mutation, we do not offer the possibility to
    receive these Properties on webhooks. You'll need to use our APIs as a
    Backend As A Service (BaaS).


    #### Adverts (BAAS and WEBHOOK)

    Adverts are advertising of a real-estate property. Adverts can come from
    many sources: Agencies websites, Aggregation real-estate portals,
    Social-Networks, NewsPaper etc...


    After gathering all these adverts our proprietary AI algorithms will
    de-duplicate these adverts and associate them to a Property


    An advert have a unique URL. Meaning that the same advertising re-published
    twice (with our without any change, on the same website or not, by the same
    agency or not) is considered as 2 ads.


    You can choose either to retrieve all the Adverts or only the non duplicated
    ones. Adverts can be retrieved either by API (Search or Alerts) or Webhook

    ## Webhooks

    We offer the possibility to receive our real-estate Adverts data in
    real-time using webhooks. As soon as we gather the data, you'll receive it
    few moments later.


    Using ALERTS, you can receive new adverts matching your criteria on a
    webhook.


    ##### Webhook differences between Adverts and Properties

    As Properties are by nature in perpetual evolutions (new duplicated ads will
    be merged, new data to be consolidated etc..), we do not offer the
    possibility to receive through Webhooks the full body of the properties.
    Properties webhook will only send you the list of the properties FlxIds
    matching your search.


    You'll find below the schema of the data you would receive on your webhook
    (`/v2/sample/webhook/properties`, `/v2/sample/webhook/adverts`)

    ##### What is a webhook

    A webhook can be thought of as a type of API that is driven by events rather
    than requests


    .Instead of one application making a request to another to receive a
    response, a webhook is a service that allows one program to send data to
    another as soon as a particular event takes place.


    Webhooks are sometimes referred to as “reverse APIs,” because communication
    is initiated by the application sending the data rather than the one
    receiving it.


    With web services becoming increasingly interconnected, webhooks are seeing
    more action as a lightweight solution for enabling real-time notifications
    and data updates without the need to develop a full-scale API.

    ##### When to use a webhook instead of the REST API

    You're supposed to receive a high volume of data (frequently or not), you're
    looking for real-time data, you just have to relax and wait (no cron, no
    call on our API etc..)

    ##### Webhook implementation examples

    A webhook is simply a POST endpoint we can request

    * Python:
    https://gist.github.com/aloysius-tim/293772256526efa20d5c625c6ace036a

    * Node:
    https://gist.github.com/aloysius-tim/ea1d9feb2c527b5b09ffc356b662d14b

  version: 2.0.0
  contact: {}
  x-logo:
    url: https://www.fluximmo.com/assets/images/logo_text.png
    backgroundColor: '#F31051'
    altText: Fluximmo logo
servers:
  - url: https://api.fluximmo.io
security: []
tags:
  - name: PropertyModel
    description: <SchemaDefinition schemaRef="#/components/schemas/PropertyDto" />
  - name: AdvertModel
    description: <SchemaDefinition schemaRef="#/components/schemas/AdvertDto" />
paths:
  /v2/protected/adverts/search/alerts:
    put:
      tags:
        - Adverts Alerts
      summary: Create a new Advert alert for this search
      description: >-
        Create a new alert on a Advert search. The alert will be saved in the
        database and will be triggered when a new Advert is found.
      operationId: SaveSearchAdvertsCrudController_postSaveSearch
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaveSearchAdvertsPayloadDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SavedSearchResponseDto'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionDto'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionDto'
      security:
        - x_api_key: []
components:
  schemas:
    SaveSearchAdvertsPayloadDto:
      type: object
      properties:
        search_query:
          $ref: '#/components/schemas/SearchAdvertQueryPayloadDto'
        webhook_url:
          type: string
        search_name:
          type: string
        context:
          $ref: '#/components/schemas/QueryContextDto'
        match:
          type: array
          example:
            - ALERT_MATCH_CREATED
          items:
            $ref: '#/components/schemas/EnumAdvertAlertMatchDto'
      required:
        - search_query
    SavedSearchResponseDto:
      properties:
        data:
          type: object
          properties:
            alert_id:
              type: string
          required:
            - alert_id
      required:
        - data
      type: object
    ExceptionDto:
      type: object
      properties:
        error:
          description: Error object
          allOf:
            - $ref: '#/components/schemas/ErrorDto'
      required:
        - error
    SearchAdvertQueryPayloadDto:
      type: object
      properties:
        filterAd:
          $ref: '#/components/schemas/FilterAdvertDto'
        fullTexts:
          description: >-
            Search terms for full text search. We'll search in title,
            description, and keywords for terms similar to these (typically,
            we'll use a fuzzy search).
          type: array
          items:
            type: string
        keywords:
          description: >-
            Search terms for keyword search. We'll search in title, description,
            and keywords for exact matches to these terms (typically, we'll use
            a term search).
          type: array
          items:
            type: string
      required:
        - filterAd
        - fullTexts
        - keywords
    QueryContextDto:
      type: object
      properties:
        metadata:
          type: object
          description: >-
            Any metadata associated to this query. This will be returned in the
            response, and can be used to store any data you want to associate to
            this query. For example, you can store the ID of the user who
            created this query, or the ID of the alert that triggered this
            query.
    EnumAdvertAlertMatchDto:
      type: string
      enum:
        - ALERT_MATCH_UNKNOWN
        - ALERT_MATCH_CREATED
        - ALERT_MATCH_ADVERT_EVENT
    ErrorDto:
      type: object
      properties:
        message:
          type: string
          description: Error message
        code:
          type: number
          description: Error code
      required:
        - message
        - code
    FilterAdvertDto:
      type: object
      properties:
        currentPrice:
          $ref: '#/components/schemas/FilterAdvertPriceDto'
        habitation:
          $ref: '#/components/schemas/FilterTypeHabitationDto'
        hasAnomaly:
          type: boolean
          description: An anomaly or incoherence have been detected
        isAuction:
          type: boolean
        isUrgent:
          type: boolean
        land:
          $ref: '#/components/schemas/FilterTypeLandDto'
        lastModifiedAt:
          type: array
          items:
            $ref: '#/components/schemas/FilterDateRangeDto'
        offer:
          type: array
          items:
            $ref: '#/components/schemas/FilterOfferDto'
        parking:
          $ref: '#/components/schemas/FilterTypeParkingDto'
        process:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumPropertyProcessDto'
        scope:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumPricingScopeDto'
        tags:
          type: array
          items:
            type: string
        type:
          type: array
          example:
            - CLASS_HOUSE
          items:
            $ref: '#/components/schemas/EnumPropertyClassDto'
        warrantyDeposit:
          $ref: '#/components/schemas/FilterDoubleRangeDto'
        firstSeenAt:
          type: array
          items:
            $ref: '#/components/schemas/FilterDateRangeDto'
        location:
          $ref: '#/components/schemas/FilterLocationDto'
        source:
          $ref: '#/components/schemas/FilterSourceDto'
        currency:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumCurrencyDto'
        mainPropertyAdFlxId:
          type: array
          items:
            type: string
        propertyFlxId:
          type: array
          items:
            type: string
        isPro:
          type: boolean
        seller:
          example: []
          type: array
          items:
            $ref: '#/components/schemas/LightSellerDto'
        isOnline:
          type: boolean
        isExclusive:
          type: boolean
    FilterAdvertPriceDto:
      type: object
      properties:
        value:
          description: The value of the price in €
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        valuePerArea:
          description: The value of the price per m² in €
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
    FilterTypeHabitationDto:
      type: object
      properties:
        bathroomCount:
          $ref: '#/components/schemas/FilterIntRangeDto'
        bedroomCount:
          $ref: '#/components/schemas/FilterIntRangeDto'
        characteristics:
          $ref: '#/components/schemas/CharacteristicsDto'
        climate:
          $ref: '#/components/schemas/FilterClimateDto'
        features:
          $ref: '#/components/schemas/FilterFeaturesDto'
        heatTypes:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumHeatTypeDto'
        heatTypeDetails:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumHeatTypeDetailDto'
        heatings:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumHeatingDto'
        propertyCondition:
          type: array
          items:
            $ref: '#/components/schemas/PropertyConditionDto'
        roomCount:
          $ref: '#/components/schemas/FilterIntRangeDto'
        surface:
          $ref: '#/components/schemas/FilterSurfaceDto'
        type:
          $ref: '#/components/schemas/EnumPropertyTypeHabitationDto'
          example: PROPERTY_TYPE_T1_T2
        wcCount:
          $ref: '#/components/schemas/FilterIntRangeDto'
    FilterTypeLandDto:
      type: object
      properties:
        canConstruct:
          type: boolean
        isServiced:
          type: boolean
        surface:
          $ref: '#/components/schemas/FilterIntRangeDto'
        surfaceConstructable:
          $ref: '#/components/schemas/FilterIntRangeDto'
        type:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumLandTypeDto'
        haveBuildingPermit:
          type: boolean
        haveElectricity:
          type: boolean
        haveTelecom:
          type: boolean
        haveWater:
          type: boolean
    FilterDateRangeDto:
      type: object
      properties:
        max:
          format: date-time
          type: string
          description: >-
            Date filter - Date should be in ISO format (ex:
            `2022-10-21T11:31:33.593Z`)
          example: '2022-10-21T11:31:33.593Z'
        min:
          format: date-time
          type: string
          description: >-
            Date filter - Date should be in ISO format (ex:
            `2022-10-21T11:31:33.593Z`)
          example: '2022-10-21T11:31:33.593Z'
    FilterOfferDto:
      type: object
      properties:
        isCurrentlyOccupied:
          type: boolean
        renting:
          $ref: '#/components/schemas/FilterOfferRentingContractDto'
        type:
          $ref: '#/components/schemas/EnumPropertyOfferTypeDto'
          example: OFFER_BUY
    FilterTypeParkingDto:
      type: object
      properties:
        count:
          $ref: '#/components/schemas/FilterIntRangeDto'
        numberOfCars:
          $ref: '#/components/schemas/FilterIntRangeDto'
        surface:
          $ref: '#/components/schemas/FilterIntRangeDto'
        type:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumParkingTypeDto'
    EnumPropertyProcessDto:
      type: string
      enum:
        - PROCESS_UNKNOWN
        - PROCESS_AVAILABLE_ON_MARKET
        - PROCESS_UNDER_COMPROMISE
        - PROCESS_RENTED_SOLD
        - PROCESS_REMOVED
        - PROCESS_RESERVED
        - PROCESS_ARCHIVED
    EnumPricingScopeDto:
      type: string
      enum:
        - PRICING_ONE_OFF
        - PRICING_MENSUAL
    EnumPropertyClassDto:
      type: string
      enum:
        - CLASS_UNKNOWN
        - CLASS_HOUSE
        - CLASS_FLAT
        - CLASS_PROGRAM
        - CLASS_SHOP
        - CLASS_PREMISES
        - CLASS_OFFICE
        - CLASS_LAND
        - CLASS_BUILDING
        - CLASS_PARKING
        - CLASS_ROOM
        - CLASS_OTHER
    FilterDoubleRangeDto:
      type: object
      properties:
        max:
          type: number
        min:
          type: number
    FilterLocationDto:
      type: object
      properties:
        cityCoordinate:
          $ref: '#/components/schemas/FilterCompleteLatLngDto'
        department:
          type: string
        inseeCode:
          type: string
        irisCode:
          type: string
        locationCoordinate:
          $ref: '#/components/schemas/FilterCompleteLatLngDto'
        postalCode:
          type: string
    FilterSourceDto:
      type: object
      properties:
        flxId:
          type: string
        url:
          type: string
        website:
          type: string
    EnumCurrencyDto:
      type: string
      enum:
        - CURRENCY_EUR
        - CURRENCY_USD
    LightSellerDto:
      type: object
      properties:
        flxId:
          type: string
        name:
          type: string
        siren:
          type: string
        type:
          $ref: '#/components/schemas/EnumSellerTypeDto'
          example: SELLER_TYPE_AGENCY
    FilterIntRangeDto:
      type: object
      properties:
        max:
          type: number
          description: The maximum value of the range
        min:
          type: number
          description: The minimum value of the range
    CharacteristicsDto:
      type: object
      properties:
        hasAlarm:
          type: boolean
        hasBalcony:
          type: boolean
        hasCellar:
          type: boolean
        hasConcierge:
          type: boolean
        hasDigicode:
          type: boolean
        hasFireplace:
          type: boolean
        hasGarage:
          type: boolean
        hasGarden:
          type: boolean
        hasGrenier:
          type: boolean
        hasInterphone:
          type: boolean
        hasJacuzzi:
          type: boolean
        hasLand:
          type: boolean
        hasLift:
          type: boolean
        hasMezzanine:
          type: boolean
        hasParking:
          type: boolean
        hasPool:
          type: boolean
        hasTerrace:
          type: boolean
        hasVisAVis:
          type: boolean
        isPeaceful:
          type: boolean
    FilterClimateDto:
      type: object
      properties:
        epcClimate:
          type: array
          example: []
          description: >-
            The classification value of the greenhouse gas emission
            classification - GES
          items:
            $ref: '#/components/schemas/EnumGreenhouseClassificationDto'
        epcClimateScore:
          description: >-
            The value of the greenhouse gas emission classification - GES in
            kgCO2/m²/year
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        epcEnergy:
          type: array
          example: []
          description: The classification value of the energy classification - DPE
          items:
            $ref: '#/components/schemas/EnumEnergyClassificationDto'
        epcEnergyScore:
          description: The value of the energy classification - DPE in kWhEP/m²/year
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        epcClimateDate:
          $ref: '#/components/schemas/FilterDateRangeDto'
        epcEnergyDate:
          $ref: '#/components/schemas/FilterDateRangeDto'
    FilterFeaturesDto:
      type: object
      properties:
        exposure:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumExposureDto'
        furniture:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumFurnitureDto'
        propertyFloor:
          $ref: '#/components/schemas/FilterIntRangeDto'
        propertyTotalFloor:
          $ref: '#/components/schemas/FilterIntRangeDto'
        constructionMaterials:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumConstructionMaterialDto'
        glazingTypes:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumGlazingTypeDto'
        hasThroughExposure:
          type: boolean
        viewOns:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumViewOnDto'
        viewTypes:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumViewTypeDto'
    EnumHeatTypeDto:
      type: string
      enum:
        - HEAT_TYPE_UNKNOWN
        - HEAT_TYPE_INDIVIDUAL
        - HEAT_TYPE_SHARED
        - HEAT_TYPE_MIX
        - HEAT_TYPE_CITY
        - HEAT_TYPE_CISTERN
    EnumHeatTypeDetailDto:
      type: string
      enum:
        - HEAT_DETAIL_UNKNOWN
        - HEAT_DETAIL_FLOOR
        - HEAT_DETAIL_CEILING
        - HEAT_DETAIL_FIREPLACE
        - HEAT_DETAIL_INSERT
        - HEAT_DETAIL_AIR_CON
        - HEAT_DETAIL_REVERSIBLE_AIR_CON
        - HEAT_DETAIL_RADIANTS_TUBES
        - HEAT_DETAIL_RADIATOR
        - HEAT_DETAIL_SHEAHS
        - HEAT_DETAIL_CONVECTOR
    EnumHeatingDto:
      type: string
      enum:
        - HEATING_UNKNOWN
        - HEATING_FUEL_OIL
        - HEATING_ELECTRICAL
        - HEATING_GAS
        - HEATING_BIOMASS
        - HEATING_SOLAR
        - HEATING_GEOTHERMAL
        - HEATING_WOOD
        - HEATING_HEAT_PUMP
        - HEATING_PELLET
        - HEATING_CANADIAN_WELL
        - HEATING_COAL
    PropertyConditionDto:
      type: object
      properties:
        constructionYear:
          type: number
        interiorCondition:
          $ref: '#/components/schemas/EnumPropertyInteriorConditionDto'
          example: null
        renovationYear:
          type: number
        generalConditions:
          type: array
          example: []
          items:
            $ref: '#/components/schemas/EnumPropertyGeneralConditionDto'
    FilterSurfaceDto:
      type: object
      properties:
        balconies:
          description: The surface of the balconies in m² - we rarely have this information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        floorSpace:
          description: >-
            The surface of the total floors in m² - we rarely have this
            information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        gardens:
          description: The surface of the gardens in m² - we rarely have this information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        groundFloor:
          description: >-
            The surface of the ground floor in m² - we rarely have this
            information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        kitchen:
          description: The surface of the kitchen in m² - we rarely have this information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        livingSpace:
          description: >-
            The surface of the living space in m² - we rarely have this
            information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        livingroom:
          description: >-
            The surface of the living room in m² - we rarely have this
            information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        terraces:
          description: The surface of the terraces in m² - we rarely have this information
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
        total:
          description: The total habitable surface of the property in m²
          allOf:
            - $ref: '#/components/schemas/FilterIntRangeDto'
    EnumPropertyTypeHabitationDto:
      type: string
      enum:
        - PROPERTY_TYPE_UNKNOWN
        - PROPERTY_TYPE_STUDIO
        - PROPERTY_TYPE_T1
        - PROPERTY_TYPE_T1_T2
        - PROPERTY_TYPE_T2
        - PROPERTY_TYPE_T2_T3
        - PROPERTY_TYPE_T3
        - PROPERTY_TYPE_T3_4
        - PROPERTY_TYPE_T4
        - PROPERTY_TYPE_T4_5
        - PROPERTY_TYPE_T5_MORE
        - PROPERTY_TYPE_LOFT
        - PROPERTY_TYPE_DUPLEX
        - PROPERTY_TYPE_OTHER_APARTMENT_TYPE
        - PROPERTY_TYPE_INDIVIDUAL
        - PROPERTY_TYPE_ONE_SIDE_TERRACED
        - PROPERTY_TYPE_TWO_SIDE_TERRACED
        - PROPERTY_TYPE_SINGLE_STOREY
        - PROPERTY_TYPE_TRADITIONAL
        - PROPERTY_TYPE_CONTEMPORARY
        - PROPERTY_TYPE_BOURGEOIS
        - PROPERTY_TYPE_VILLA
        - PROPERTY_TYPE_MANOR
        - PROPERTY_TYPE_CASTLE
        - PROPERTY_TYPE_FARM
        - PROPERTY_TYPE_MAS
        - PROPERTY_TYPE_BASTIDE
        - PROPERTY_TYPE_CHALET
        - PROPERTY_TYPE_ANCIENT
        - PROPERTY_TYPE_HERITAGE_LISTED
        - PROPERTY_TYPE_BUNGALOW
    EnumLandTypeDto:
      type: string
      enum:
        - LAND_UNKNOWN
        - LAND_BUILDING_PLOT
        - LAND_AGRICULTURAL
        - LAND_VINEYARD
        - LAND_INDUSTRIAL
        - LAND_POND
        - LAND_FOREST
    FilterOfferRentingContractDto:
      type: object
      properties:
        isColocation:
          type: boolean
        isLongTerm:
          type: boolean
        isShortTerm:
          type: boolean
        isSubLease:
          type: boolean
    EnumPropertyOfferTypeDto:
      type: string
      enum:
        - OFFER_UNKNOWN
        - OFFER_BUY
        - OFFER_RENT
        - OFFER_BUSINESS_TAKE_OVER
        - OFFER_LEASE_BACK
        - OFFER_LIFE_ANNUITY_SALE
        - OFFER_HOLIDAYS
        - OFFER_AUCTION
    EnumParkingTypeDto:
      type: string
      enum:
        - PARKING_UNKNOWN
        - PARKING_GARAGE
        - PARKING_PARKING
    FilterCompleteLatLngDto:
      type: object
      properties:
        location:
          description: Filter by location geo coordinates
          allOf:
            - $ref: '#/components/schemas/FilterLatLngDto'
    EnumSellerTypeDto:
      type: string
      enum:
        - SELLER_TYPE_UNKNOWN
        - SELLER_TYPE_AGENCY
        - SELLER_TYPE_NETWORK
    EnumGreenhouseClassificationDto:
      type: string
      enum:
        - GREENHOUSE_CLASSIFICATION_UNKNOWN
        - GREENHOUSE_CLASSIFICATION_G
        - GREENHOUSE_CLASSIFICATION_F
        - GREENHOUSE_CLASSIFICATION_E
        - GREENHOUSE_CLASSIFICATION_D
        - GREENHOUSE_CLASSIFICATION_C
        - GREENHOUSE_CLASSIFICATION_B
        - GREENHOUSE_CLASSIFICATION_A
        - GREENHOUSE_CLASSIFICATION_NC
    EnumEnergyClassificationDto:
      type: string
      enum:
        - ENERGY_CLASSIFICATION_UNKNOWN
        - ENERGY_CLASSIFICATION_G
        - ENERGY_CLASSIFICATION_F
        - ENERGY_CLASSIFICATION_E
        - ENERGY_CLASSIFICATION_D
        - ENERGY_CLASSIFICATION_C
        - ENERGY_CLASSIFICATION_B
        - ENERGY_CLASSIFICATION_A
        - ENERGY_CLASSIFICATION_NC
    EnumExposureDto:
      type: string
      enum:
        - EXPOSURE_UNKNOWN
        - EXPOSURE_NORTH
        - EXPOSURE_NORTH_EAST
        - EXPOSURE_EAST
        - EXPOSURE_SOUTH_EAST
        - EXPOSURE_SOUTH
        - EXPOSURE_SOUTH_WEST
        - EXPOSURE_WEST
        - EXPOSURE_NORTH_WEST
    EnumFurnitureDto:
      type: string
      enum:
        - UNKNOWN_FURNITURE
        - UNFURNISHED
        - PARTIALLY_FURNISHED
        - FULLY_FURNISHED
    EnumConstructionMaterialDto:
      type: string
      enum:
        - MATERIAL_UNKNOWN
        - MATERIAL_WOODEN
        - MATERIAL_STEEL
        - MATERIAL_STONE
        - MATERIAL_PVC
        - MATERIAL_CONCRETE
        - MATERIAL_ALUMINIUM
        - MATERIAL_HALF_TIMBERED
        - MATERIAL_MARBLE
        - MATERIAL_BRICK
        - MATERIAL_CINDER_BLOCK
        - MATERIAL_PREFABRICATED
        - MATERIAL_ADOBE
        - MATERIAL_COATING
    EnumGlazingTypeDto:
      type: string
      enum:
        - GLAZING_TYPE_UNKNOWN
        - GLAZING_TYPE_SIMPLE
        - GLAZING_TYPE_DOUBLE
        - GLAZING_TYPE_TRIPLE
    EnumViewOnDto:
      type: string
      enum:
        - VIEW_ON_UNKNOWN
        - VIEW_ON_SEA
        - VIEW_ON_HILLS
        - VIEW_ON_RIVERS
        - VIEW_ON_CITY
        - VIEW_ON_PARK
        - VIEW_ON_VERDURE
        - VIEW_ON_STREET
        - VIEW_ON_COURTYARD
        - VIEW_ON_COUNTRYSIDE
        - VIEW_ON_MOUNTAIN
        - VIEW_ON_GARDEN_TERRACE
        - VIEW_ON_LAKE
        - VIEW_ON_SKI_SLOPES
        - VIEW_ON_PORT
        - VIEW_ON_POI
        - VIEW_ON_SKY
        - VIEW_ON_WATER
        - VIEW_ON_VINEYARD
        - VIEW_ON_ROOF
    EnumViewTypeDto:
      type: string
      enum:
        - VIEW_TYPE_UNKNOWN
        - VIEW_TYPE_GLIMPSE
        - VIEW_TYPE_PANORAMIC
        - VIEW_TYPE_CLEAR
        - VIEW_TYPE_EXCEPTIONAL
        - VIEW_TYPE_DOMINANT
    EnumPropertyInteriorConditionDto:
      type: string
      enum:
        - INTERIOR_CONDITION_UNKNOWN
        - INTERIOR_CONDITION_EXCELLENT
        - INTERIOR_CONDITION_TO_REFRESH
        - INTERIOR_CONDITION_SMALL_WORKS_TO_BE_PLANNED
        - INTERIOR_CONDITION_MAJOR_WORKS_TO_BE_PALLNED
        - INTERIOR_CONDITION_BRAND_NEW
        - INTERIOR_CONDITION_GOOD_CONDITION
        - INTERIOR_CONDITION_TO_BE_RENOVATED
    EnumPropertyGeneralConditionDto:
      type: string
      enum:
        - GENERAL_CONDITION_UNKNOWN
        - GENERAL_CONDITION_TO_BE_RENOVATED
        - GENERAL_CONDITION_BRAND_NEW
        - GENERAL_CONDITION_RENOVATED
        - GENERAL_CONDITION_TO_BE_REFRESHED
        - GENERAL_CONDITION_GOOD
        - GENERAL_CONDITION_EXCELLENT
        - GENERAL_CONDITION_DECREPIT
        - GENERAL_CONDITION_TO_BE_BUILT
    FilterLatLngDto:
      type: object
      properties:
        geoBoundingBox:
          $ref: '#/components/schemas/FilterLatLngGeoBoundingBoxDto'
        geoDistance:
          $ref: '#/components/schemas/FilterLatLngGeoDistanceDto'
        geoInseeCodeDistance:
          $ref: '#/components/schemas/FilterLatLngGeoInseeCodeDistanceDto'
    FilterLatLngGeoBoundingBoxDto:
      type: object
      properties:
        bottomRight:
          $ref: '#/components/schemas/LatLngDto'
        topLeft:
          $ref: '#/components/schemas/LatLngDto'
    FilterLatLngGeoDistanceDto:
      type: object
      properties:
        distanceKm:
          type: number
        pin:
          $ref: '#/components/schemas/LatLngDto'
    FilterLatLngGeoInseeCodeDistanceDto:
      type: object
      properties:
        distanceKm:
          type: number
        inseeCode:
          type: string
    LatLngDto:
      type: object
      properties:
        lat:
          type: number
          description: Latitude
        lon:
          type: number
          description: Longitude
  securitySchemes:
    x_api_key:
      type: apiKey
      in: header
      name: x-api-key

````