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

# Properties

> Returns a collection of properties matching given criteria.

### Query parameters

<ParamField query="bedroomMax" type="number">
  Maximum number of bedrooms in the property.
</ParamField>

<ParamField query="bedroomMin" type="number">
  Minimum number of bedrooms in the property.
</ParamField>

<ParamField query="budgetMax" type="number">
  Maximum budget for the property.
</ParamField>

<ParamField query="budgetMin" type="number">
  Minimum budget for the property.
</ParamField>

<ParamField query="condominiumFeesMax" type="number">
  Maximum condominium fees for the property.
</ParamField>

<ParamField query="condominiumFeesMin" type="number">
  Minimum condominium fees for the property.
</ParamField>

<ParamField query="constructionYearMax" type="number">
  Maximum construction year of the property.
</ParamField>

<ParamField query="constructionYearMin" type="number">
  Minimum construction year of the property.
</ParamField>

<ParamField query="energyCategories" type="array">
  The energy efficiency categories of the property.
</ParamField>

<ParamField query="energyValueMax" type="number">
  Maximum energy value of the property.
</ParamField>

<ParamField query="energyValueMin" type="number">
  Minimum energy value of the property.
</ParamField>

<ParamField query="eventPriceVariationFromCreatedAt" type="date">
  Date from which an event of type price is created — inclusive.
</ParamField>

<ParamField query="eventPriceVariationMax" type="number">
  Maximum percent variation of an event of type price.
</ParamField>

<ParamField query="eventPriceVariationMin" type="number">
  Minimum percent variation of an event of type price.
</ParamField>

<ParamField query="eventPriceVariationToCreatedAt" type="date">
  Date before which an event of type price is created — inclusive.
</ParamField>

<ParamField query="eventSurfaceVariationFromCreatedAt" type="date">
  Date from which an event of type surface is created — inclusive.
</ParamField>

<ParamField query="eventSurfaceVariationMax" type="number">
  Maximum percent variation of an event of type surface.
</ParamField>

<ParamField query="eventSurfaceVariationMin" type="number">
  Minimum percent variation of an event of type surface.
</ParamField>

<ParamField query="eventSurfaceVariationToCreatedAt" type="date">
  Date before which an event of type surface is created — inclusive.
</ParamField>

<ParamField query="excludedCities" type="array">
  Cities to be excluded.
</ParamField>

<ParamField query="excludedInseeCodes" type="array">
  Insee codes to be excluded.
</ParamField>

<ParamField query="excludedProperties" type="array">
  Properties to be excluded.
</ParamField>

<ParamField query="excludedSites" type="array">
  Sources sites to be excluded.
</ParamField>

<ParamField query="excludedZipcodes" type="array">
  Zipcodes to be excluded.
</ParamField>

<ParamField query="expired" default="null" type="boolean">
  Whether to show properties that are expired. A property is considered expired when all its adverts are expired. Can be `true`, `false` or `null`. Default is `null` which returns all properties no matter if they're expired or not.
</ParamField>

<ParamField query="expressions" type="array">
  Full text matching including/excluding words & phrases in the title or the description of the property.
  Example: `expressions[0][0][word]=travaux&expressions[0][0][options][includes]=true&expressions[0][0][options][strict]=false&expressions[0][1][word]=lumineux&expressions[0][1][options][includes]=true&expressions[0][1][options][strict]=false` which will search for properties that contain both the keywords `lumineux` and `travaux`.
</ParamField>

<ParamField query="feesPercentageMax" type="number">
  Maximum percentage of fees.
</ParamField>

<ParamField query="feesPercentageMin" type="number">
  Minimum percentage of fees.
</ParamField>

<ParamField query="feesResponsibility" type="number">
  Responsibility for fees. `0` for seller, `1` for buyer.
</ParamField>

<ParamField query="floorQuantityMax" type="number">
  Maximum number of floors in the property.
</ParamField>

<ParamField query="floorQuantityMin" type="number">
  Minimum number of floors in the property.
</ParamField>

<ParamField query="fromDate" type="date">
  Date from which the property is created — inclusive.
</ParamField>

<ParamField query="fromExpiredAt" type="date">
  Date from which the advert is expired — inclusive.
</ParamField>

<ParamField query="fromUpdatedAt" type="date">
  Date from which the property is updated — inclusive.
</ParamField>

<ParamField query="furnished" type="boolean">
  Filter for furnished properties.
</ParamField>

<ParamField query="geoAccuracy" type="number">
  Filters properties by geographic accuracy level. "1" (HOUSE NUMBER - precise location at house number level), "2" (NEIGHBORHOOD - broader location within a neighborhood).
</ParamField>

<ParamField query="geoShapes" type="array">
  Filters properties within specified geographic areas. Example: `geoShapes=geoShapes[0][0][0]=6.063201&geoShapes[0][0][1]=44.549092&geoShapes[0][1][0]=6.063201&geoShapes[0][1][1]=44.543009&geoShapes[0][2][0]=6.073453&geoShapes[0][2][1]=44.543293&geoShapes[0][3][0]=6.073453&geoShapes[0][3][1]=44.549092&geoShapes[0][4][0]=6.063201&geoShapes[0][4][1]=44.549092`.
</ParamField>

<ParamField query="greenHouseGasCategories" type="array">
  Green house gas performance letter array of the property.
</ParamField>

<ParamField query="greenHouseGasValueMax" type="number">
  Maximum value of green house gas of the property.
</ParamField>

<ParamField query="greenHouseGasValueMin" type="number">
  Minimum value of green house gas of the property.
</ParamField>

<ParamField query="includedCities" type="array">
  Located in given cities. Example: `includedCities[]=/cities/30953&includedCities[]=/cities/30952`. Use [locations](/api-reference/endpoint/indicators/locations) to get the desired city ids.
</ParamField>

<ParamField query="includedDepartments" type="array">
  Located in given departments. Example: `includedDepartments[]=/departments/77`. Use [locations](/api-reference/endpoint/indicators/locations) to get the desired department ids.
</ParamField>

<ParamField query="includedInseeCodes" type="array">
  Located in given insee codes. Example: `includedInseeCodes[]=75117&includedInseeCodes[]=75118`
</ParamField>

<ParamField query="includedSites" type="array">
  Sources sites to be included.
</ParamField>

<ParamField query="includedZipcodes" type="array">
  Located in given zipcodes. Example: `includedZipcodes[]=75017&includedZipcodes[]=75018`
</ParamField>

<ParamField query="inventoryPriceMax" type="number">
  Lower than or equal to given inventory price. Example: `inventoryPriceMax=500`
</ParamField>

<ParamField query="inventoryPriceMin" type="number">
  Greater than or equal to given inventory price. Example: `inventoryPriceMin=250`
</ParamField>

<ParamField query="itemsPerPage" default="10" type="number">
  The number of items per page. Max is `30`.
</ParamField>

<ParamField body="landSurfaceMax" type="number">
  Maximum land surface.
</ParamField>

<ParamField body="landSurfaceMin" type="number">
  Minimum land surface.
</ParamField>

<ParamField query="lat" type="number">
  Latitude. Will work if latitude exists in the property. Example: `lat=48.864716`
</ParamField>

<ParamField query="lon" type="number">
  Longitude. Will work if latitude exists in the property. Example: `lon=2.349014`
</ParamField>

<ParamField query="lotCountMax" type="number">
  Lower than or equal to given lot count. Example: `lotCountMax=12`
</ParamField>

<ParamField query="lotCountMin" type="number">
  Greater than or equal to given lot count. Example: `lotCountMin=4`
</ParamField>

<ParamField query="order[createdAt]" default="desc" type="string">
  Order properties by creation date. Can be `asc` or `desc`.
</ParamField>

<ParamField query="order[pricePerMeter]" default="desc" type="string">
  Order properties by price per meter. Can be `asc` or `desc`.
</ParamField>

<ParamField query="order[price]" type="string">
  Order properties by price. Can be `asc` or `desc`.
</ParamField>

<ParamField query="order[surface]" type="string">
  Order properties by surface. Can be `asc` or `desc`.
</ParamField>

<ParamField query="order[updatedAt]" type="string">
  Order properties by update date. Can be `asc` or `desc`.
</ParamField>

<ParamField query="page" default="1" type="integer">
  The collection page number.
</ParamField>

<ParamField query="priceExcludingFeesMax" type="number">
  Lower than or equal to given price excluding fees. Example: `priceExcludingFeesMax=427500`
</ParamField>

<ParamField query="priceExcludingFeesMin" type="number">
  Greater than or equal to given price excluding fees. Example: `priceExcludingFeesMin=405000`
</ParamField>

<ParamField query="pricePerMeterMax" type="number">
  Lower than or equal to given price per meter. Example: `pricePerMeterMax=11500`
</ParamField>

<ParamField query="pricePerMeterMin" type="number">
  Greater than or equal to given price per meter. Example: `pricePerMeterMin=9500`
</ParamField>

<ParamField query="propertyTypes" type="array">
  Type of property. Apartment `0`, House `1`, Building `2`, Parking `3`, Office `4`, Land `5`, Shop `6`. Example: `propertyTypes[]=0&propertyTypes[]=1`
</ParamField>

<ParamField query="publisherTypes" type="array">
  Type of publisher. Individual `0`, Professional `1`. Example: `publisherTypes[]=0&publisherTypes[]=1`
</ParamField>

<ParamField query="radius" type="integer">
  Distance expressed in kilometers. Will work if latitude & longitude parameters are also set. Example: `radius=20`
</ParamField>

<ParamField query="rentalChargesMax" type="number">
  Lower than or equal to given rental charges amount. Example: `rentalChargesMax=100`
</ParamField>

<ParamField query="rentalChargesMin" type="number">
  Greater than or equal to given rental charges amount. Example: `rentalChargesMin=50`
</ParamField>

<ParamField query="rentalPledgeMax" type="number">
  Lower than or equal to given rental pledge amount. Example: `rentalPledgeMax=800`
</ParamField>

<ParamField query="rentalPledgeMin" type="number">
  Greater than or equal to given rental pledge amount. Example: `rentalPledgeMin=500`
</ParamField>

<ParamField query="renterFeesMax" type="number">
  Lower than or equal to given renter fees. Example: `renterFeesMax=80`
</ParamField>

<ParamField query="renterFeesMin" type="number">
  Greater than or equal to given renter fees. Example: `renterFeesMin=50`
</ParamField>

<ParamField query="roomMax" type="number">
  Maximum rooms of the property. Example: `roomMax=6`
</ParamField>

<ParamField query="roomMin" type="number">
  Minimum rooms of the property. Example: `roomMin=3`
</ParamField>

<ParamField query="sortMode" default="property" type="string">
  Whether to sort results by properties or by adverts.

  If `property` is chosen, `fromDate` and `toDate` parameters will be ***overridden*** so that the results will be sorted by the `createdAt` of each `property`.

  If `advert` is chosen: `fromDate` and `toDate` parameters will be ***overridden*** so that the results will be sorted by `createdAt` of each `advert`.

  Example: `sortMode=property`

  Please check our [glossary](/glossary) for more information about the distinction between adverts and properties.
</ParamField>

<ParamField query="surfaceMax" type="number">
  Lower than or equal to given surface. Example: `surfaceMax=84`
</ParamField>

<ParamField query="surfaceMin" type="number">
  Greater than or equal to given surface. Example: `surfaceMin=42`
</ParamField>

<ParamField query="toDate" type="date">
  Date until which the ***property*** is created  — inclusive. Example: `toDate=2021-05-07 12:42:42`
</ParamField>

<ParamField query="toExpiredAt" type="date">
  Date from which the ***advert*** is expired — inclusive.
  Example: `toExpiredAt=2021-05-07 12:42:42`
</ParamField>

<ParamField query="toUpdatedAt" type="date">
  Date until which the ***property*** is updated — inclusive. Example: `toUpdatedAt=2021-05-07 12:42:42`
</ParamField>

<ParamField query="transactionType" type="integer">
  Type of transaction. Sell `0`, Rent `1`. Example: `transactionType=0`
</ParamField>

<ParamField query="withCoherentPrice" default="true" type="boolean">
  Filter properties with coherent price. Example: `withCoherentPrice=true`
</ParamField>

<ParamField query="withLocation" type="boolean">
  Having a latitude and longitude. Example: `withLocation=true`
</ParamField>

<ParamField query="withVirtualTour" type="boolean">
  Having a virtual tour video link. Example: `withVirtualTour=true`
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --location -g --request GET 'https://api.notif.immo/documents/properties?includedDepartments[]=departments/77&fromDate=2020-01-10&propertyTypes[]=1&transactionType=0&withCoherentPrice=true&budgetMin=1800000&budgetMax=1900000' \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api_key>'
  ```

  ```python Python theme={null}
  import requests
  import json

  url = "https://api.notif.immo/documents/properties"

  params = {
      'includedDepartments[]': 'departments/77',
      'fromDate': '2020-01-10',
      'propertyTypes[]': '1',
      'transactionType': '0',
      'withCoherentPrice': 'true',
      'budgetMin': '1800000',
      'budgetMax': '1900000'
  }

  headers = {
    'Content-Type': 'application/json',
    'X-API-KEY': '<api_key>'
  }

  response = requests.request("GET", url, headers=headers, params=params)

  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json Example Response theme={null}
  {
    "hydra:member": [
      {
        "@context": "/contexts/PropertyDocument",
        "@id": "/documents/properties/a2fe8869-bbd8-4d92-ad22-5ca5511a5bc7",
        "@type": "PropertyDocument",
        "adverts": [
          {
            "condominiumFees": 1200,
            "constructionYear": 1982,
            "contact": {
              "agency": "Agence Immo 2000",
              "email": "contact@agenceimmo2000.fr",
              "fax": "0120304050",
              "name": "Olivie Olivier",
              "phone": "0120304050",
              "reference": "B42042"
            },
            "createdAt": "2023-05-23T23:48:47+02:00",
            "description": "Bel appartement « coup de coeur » 2 pieces Sans perte d’espace, lumineux, poutres, parquet massif, belle hauteur sous plafonds, entièrement refait à neuf avec fenêtres double vitrage, volets roulants, porte blindée, cuisine entièrement équipée, salle d’eau avec fenêtre, idéalement situé...",
            "elevator": true,
            "energy": {
              "category": "C",
              "value": 117
            },
            "events": [
              {
                "createdAt": "2023-05-23T23:48:47+02:00",
                "fieldName": "price",
                "fieldNewValue": "950",
                "fieldOldValue": "995",
                "percentVariation": -4.52
              }
            ],
            "features": [
              "Grand balcon",
              "Bâtiment de 5 étages",
              "Lumineux",
              "Coin cuisine"
            ],
            "feesPercentage": 10,
            "feesResponsibility": 0,
            "floor": 6,
            "floorQuantity": 6,
            "furnished": true,
            "greenHouseGas": {
              "category": "D",
              "value": 32
            },
            "inventoryPrice": 350,
            "landSurface": 300,
            "lastCrawledAt": "2023-05-23T23:48:47+02:00",
            "lotCount": 12,
            "pictures": [
              "https://pictures.notif.immo/properties/2021/05/10/10/a20cbdc44632c63f89aad2e6d9d049.jpg",
              "https://pictures.notif.immo/properties/2021/05/10/10/b0935cb714d501c668b66997d7f16a.jpg",
              "https://pictures.notif.immo/properties/2021/05/10/10/7e1ea590d4b827e9a8a762e7f378fb.jpg"
            ],
            "picturesRemote": [
              "https://www.century21.fr/imagesBien/s3/202/3427/c21_202_3427_1185_1_45D57CD0-7D18-4FA0-B463-060789202625.jpg",
              "https://www.century21.fr/imagesBien/s3/202/3427/c21_202_3427_1185_1_39192DB9-A503-4FD7-AEDB-3DEFFE35E42E.jpg",
              "https://www.century21.fr/imagesBien/s3/202/3427/c21_202_3427_1185_1_FDDEC9E3-8A85-4BE5-83B8-12005A2D4078.jpg"
            ],
            "price": 950,
            "priceExcludingFees": 1800000,
            "publisher": {
              "category": "Portails",
              "name": "Century21",
              "type": 1
            },
            "rentalCharges": 75,
            "rentalPledge": 1000,
            "renterFees": 60,
            "surface": 30,
            "title": "Appartement 2 pieces",
            "updatedAt": "2023-05-23T23:48:47+02:00",
            "url": "https://www.century21.fr/trouver_logement/detail/2424196788/",
            "uuid": "21f2a17b-dae3-4ea4-976f-e521cebfe609",
            "virtualTour": "https://my.matterport.com/show/?m=9GnMTmZgY44"
          }
        ],
        "bedroom": 2,
        "city": {
          "cityParentId": 0,
          "country": {
            "code": "250",
            "id": 2,
            "name": "France"
          },
          "department": {
            "code": "75",
            "id": 77,
            "name": "Paris"
          },
          "groupedCityNames": [
            "string"
          ],
          "groupedCityZipcodes": [
            "string"
          ],
          "hasGroupedByName": false,
          "hasGroupedByZipcode": false,
          "id": 30950,
          "insee": "75116",
          "locations": {
            "lat": 48.8530933,
            "lon": 2.2487626
          },
          "name": "Paris 18e",
          "open": true,
          "originalName": "Paris 18e",
          "region": {
            "code": "11",
            "id": 7,
            "name": "Île-de-France"
          },
          "zipcode": "75018"
        },
        "createdAt": "2023-05-23T23:48:47+02:00",
        "description": "Bel appartement « coup de coeur » 2 pieces Sans perte d’espace, lumineux, poutres, parquet massif, belle hauteur sous plafonds, entièrement refait à neuf avec fenêtres double vitrage, volets roulants, porte blindée, cuisine entièrement équipée, salle d’eau avec fenêtre, idéalement situé...",
        "elevator": true,
        "expired": true,
        "expiredAt": "2023-05-23T23:48:47+02:00",
        "floor": 6,
        "furnished": true,
        "landSurface": 300,
        "lastCrawledAdvert": "21f2a17b-dae3-4ea4-976f-e521cebfe609",
        "lastCrawledAt": "2023-05-23T23:48:47+02:00",
        "locations": {
          "lat": 48.8530933,
          "lon": 2.2487626
        },
        "pictures": [
          "https://pictures.notif.immo/properties/2021/05/10/10/a20cbdc44632c63f89aad2e6d9d049.jpg",
          "https://pictures.notif.immo/properties/2021/05/10/10/b0935cb714d501c668b66997d7f16a.jpg",
          "https://pictures.notif.immo/properties/2021/05/10/10/7e1ea590d4b827e9a8a762e7f378fb.jpg"
        ],
        "price": 950,
        "pricePerMeter": 31.66,
        "property": "/properties/a2fe8869-bbd8-4d92-ad22-5ca5511a5bc7",
        "propertyType": 0,
        "publisherTypes": [
          1
        ],
        "room": 3,
        "stations": [
          {
            "id": 33,
            "lines": [
              {
                "color": "#128B5B",
                "id": 20,
                "name": "Ligne 12",
                "number": "12",
                "routeName": "Front Populaire ↔ Mairie d’Issy"
              }
            ],
            "name": "Jules Joffrin"
          },
          {
            "id": 191,
            "lines": [
              {
                "color": "#B94D9A",
                "id": 11,
                "name": "Ligne 4",
                "number": "4",
                "routeName": "Porte de Clignancourt ↔ Mairie de Montrouge"
              },
              {
                "color": "#128B5B",
                "id": 20,
                "name": "Ligne 12",
                "number": "12",
                "routeName": "Front Populaire ↔ Mairie d’Issy"
              }
            ],
            "name": "Marcadet-Poissonniers"
          }
        ],
        "surface": 30,
        "title": "Appartement 2 pieces",
        "transactionType": 1,
        "updatedAt": "2023-05-23T23:48:47+02:00",
        "uuid": "38cb65b9-2965-4bd0-bc9b-2b8a8be7c457"
      }
    ],
    "hydra:totalItems": 0,
    "hydra:view": {
      "@id": "string",
      "@type": "string",
      "hydra:first": "string",
      "hydra:last": "string",
      "hydra:next": "string"
    },
    "hydra:search": {
      "@type": "string",
      "hydra:template": "string",
      "hydra:variableRepresentation": "string",
      "hydra:mapping": [
        {
          "@type": "string",
          "variable": "string",
          "property": "string",
          "required": true
        }
      ]
    }
  }
  ```
</ResponseExample>
