Full Search By Attribute
POST /comparables/fullSearchByAttribute
Search for comparables based on filters relating to the comparable's descriptive attributes. Returns a complete response but only for Asking data (NOT Sales). For Sales data you need to call /comparables/searchByAttribute + /comparable/<uuid>.
Example Request
curl -X POST --location 'https://sandbox-comparables.realitycs.it/comparables/fullSearchByAttribute' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
--data '{
"Filters": {
"contractTypeID": 1,
"categoryTypeID": null,
"propertyTypeID": null,
"propertyQualityID": null,
"boundingBox": null,
"marketZoneID": "10242",
"omiZoneID": null,
"municipalityID": null,
"minRooms": null,
"maxRooms": null,
"minBathrooms": null,
"maxBathrooms": null,
"elevator": null,
"garage": null,
"maintenanceStatusID": null,
"pubblicationStatusID": [
1,
2
],
"minGrossSquareFootage": null,
"maxGrossSquareFootage": null,
"unitFloor": null,
"minPrice": null,
"maxPrice": null,
"clientTypeID": null,
"phoneNumberProvided": null
},
"Pagination": {
"page": 1,
"limit": 10
},
"Sorting": {
"by": "date",
"direction": "desc"
}
}'
Example Response
{
"_metadata": {
"limit": 10,
"page": 1,
"pages": {
"first": 1,
"last": 15,
"next": 2,
"previous": null,
"self": 1
},
"query": {
"comparableType": "Offerta",
"contractType": "Vendita",
"marketZoneID": "10242",
"pubblicationStatus": [
"Nuovo",
"Pubblicato"
],
"sorting": {
"by": "date",
"direction": "desc"
}
},
"total_count": 147,
"request_id": "8d9711b9-3f55-4e4e-8dd6-a15342b59cc1",
"map": "http://sandbox-comparables.realitycs.it/comparables/map/v2/8d9711b9-3f55-4e4e-8dd6-a15342b59cc1"
},
"items": [
{
"_metadata": [
"comparabili_centralitybelt_1",
"comparabili_heatingsystem_2",
"comparabili_maintenancestatus_2",
"comparabili_occupancystatus_1",
"comparabili_propertyquality_4",
"comparabili_pubblicationstatus_1",
"comparabili_comparabletype_1",
"comparabili_propertytype_1",
"comparabili_box_?",
"comparabili_gardentype_?",
"comparabili_energyclass_4",
"comparabili_cadastralregistry_?"
],
"agencyID": null, // Requires permission privilege, null by default
"attachments": {
"coverImage": "https://images.realitycs.it/img/122812060/1773189866",
"energyClass": null,
"image": [
"https://images.realitycs.it/img/122812060/1773189866",
"https://images.realitycs.it/img/122812060/1773189742",
"https://images.realitycs.it/img/122812060/1773189772",
"https://images.realitycs.it/img/122812060/1773189802",
"https://images.realitycs.it/img/122812060/1773189828",
"https://images.realitycs.it/img/122812060/1773189842",
"https://images.realitycs.it/img/122812060/1773189852",
"https://images.realitycs.it/img/122812060/1773189942",
"https://images.realitycs.it/img/122812060/1773189874",
"https://images.realitycs.it/img/122812060/1773189884",
"https://images.realitycs.it/img/122812060/1773189892",
"https://images.realitycs.it/img/122812060/1773189916",
"https://images.realitycs.it/img/122812060/1773189928",
"https://images.realitycs.it/img/122812060/1773189954"
],
"layout": null
},
"cadastralData": [ // Reserved for Sales
{
"cadastralClass": null,
"cadastralCompartments": null,
"cadastralIncome": null,
"cadastralMapSheetNumber": null,
"cadastralMunicipality": null,
"cadastralParceSubParcelNumber": null,
"cadastralParcelNumber": null,
"cadastralPmCode": null,
"cadastralPropertyType": null,
"cadastralRegistry": null,
"cadastralSectionCode": null
}
],
"clientType": "Professionista", // Populated if available
"collectionDate": "2025-09-01T00:00:00Z",
"comparableType": "Offerta",
"contractTypeID": null,
"dataOwnership": "realitycs",
"distanceFromPoi": null, // Populated if lat and lng are in the input
"duplicates": false,
"duplicatesParent": false,
"extra": { // Populated if available
"condoFees": 1200,
"lastCommercialUse": null,
"showCases": null,
"showCasesSize": null,
"title": "Nel cuore di Brera",
"broadbandInternet": null,
"chimneyFlue": null,
"fumeAspiration": null,
"reception": null,
"shedHeight": null,
"disabledPeopleAccess": null,
"securityAlarm": null,
"garageDoorWidth": null
},
"features": {
"box": null,
"brightness": null,
"centralityBelt": "Centrale",
"constructionYear": 1700,
"contructionYearNote": null,
"description": "Nel cuore di Brera, in via Cusani, cuore pulsante della capitale meneghina, troviamo Palazzo Cagnola, uno degli stabili più prestigiosi della città, contesto di altissimo standing, stabile vincolato alle belle arti, risalente all’epoca neoclassica. \nSi accede dall’androne con volta a botte nel porticato a colonne e capitelli di granito; da qui attraverso una sontuosa scalinata che rimanda a tempi antichi ed aristocratici, oppure utilizzando gli ascensori di ultima generazione perfettamente inseriti nel contesto, veniamo condotti al secondo piano dove Centrvm Real Estate propone in vendita esclusivo appartamento di 370 mq con triplo ingresso e suggestivo patio centrale. La location, attualmente destinata ad ufficio, può essere facilmente ri-convertita in residenziale, ricavandone una meravigliosa dimora di grande sapore. \nAttualmente l’appartamento è così sviluppato: al piano di ingresso troviamo la reception con saletta d’attesa, grande sala riunioni con soffitti affrescati, 6 grandi uffici, due bagni, il patio interno piantumato dona un grande respiro alla location; al piano superiore troviamo un ulteriore grande ufficio pluri-postazioni, un salottino, un area break/cucina, uno spazio multi-funzionale, due bagni.\nLa magistrale ristrutturazione ha privilegiato la scelta di materiale top quality, la cura spasmodica del dettaglio, la ricerca di materiali pregiati e di arredi e rivestimenti di rara ricercatezza. \nLo stabile è dotato di palestra condominiale e di servizio di reception per l’intera giornata. Oggetto unico ed introvabile.Le immagini sono fornite al solo scopo illustrativo e non costituiscono elemento contrattuale.",
"elevator": true,
"energyClass": "C",
"exposure": null,
"facilityList": [
"Impianto di allarme",
"Fibra ottica",
"Porta blindata",
"cancello elettrico",
"videoCitofono"
],
"fitnessForPurpose": null,
"gardenType": null,
"heatingSystem": "Condominiale",
"maintenanceStatus": "Ottimo / Ristrutturato",
"numberOfBalconies": null,
"numberOfBathrooms": 4,
"numberOfBuildingFloor": 3,
"numberOfGarages": 0,
"occupancyStatus": "Libero",
"propertyQuality": "Lusso",
"qualityOfFinishes": null,
"unitFloor": null,
"viewQuality": null
},
"grossSquareFootage": 370,
"lastUpdateDate": "2025-09-01T00:00:00Z",
"listingID": null,
"listingUrl": "https://www.immobiliare.it/annunci/122812060/",
"location": {
"address": "Via Cusani",
"district": null,
"latitude": 45.4685,
"longitude": 9.1845,
"marketZone": "Duomo",
"municipality": "Milano",
"municipalityID": 15146,
"province": "Milano",
"region": "Lombardia",
"streetNumber": "5",
"zipCode": "20121"
},
"marketData": {
"askingReductionRate": null,
"askingReductionSteps": null,
"municipalityVisibilityIndex": 5,
"quarterMacroareaTrend": null,
"quarterMicroareaTrend": null,
"quarterMunicipalityTrend": null,
"semesterMacroareaTrend": null,
"semesterMicroareaTrend": null,
"semesterMunicipalityTrend": null,
"timeOnTheMarket": null,
"zonalVisibilityIndex": 5
},
"propertyType": "Appartamento",
"pubblicationStatus": "Nuovo",
"realEstateRegisters": {
"deedDate": null,
"deedType": null,
"folder": null,
"generalNumber": null,
"inventory": null,
"notary": null,
"particularNumber": null,
"pdfFileUrl": null,
"propertyRegistryId": null
},
"rooms": 6,
"sourceName": "immobiliare.it",
"subTypologyID": null,
"typologyID": null,
"unitGrossSquareFootage": [ // Populated if available
{
"_metadata": [
"comparabili_unitgrosssquarefootagetype_1",
"comparabili_unitgrosssquarefootagefloor_?"
],
"floor": "2",
"main_surface": true,
"surface_percentage": 100,
"total_surface": 370,
"type": "Abitazione"
}
],
"uuid": "17a0ed6e-afa4-4f82-adca-deddd3f22dda",
"value": {
"askingPrice": 8200000, // Populated if searching for Asking
"askingPricePsm": 22162, // Populated if searching for Asking
"discount": null,
"price": null, // Populated if searching for Sales
"pricePsm": null, // Populated if searching for Sales
"value": null, // Reserved for future use
"valuePsm": null // Reserved for future use
}
},
{...}
]
}
N.B. The dates can be returned in the following two formats:
DD/MM/YYYYT00:00:00Z(default)DD/MM/YYYY
If you want to use the second format please make a request to the Sales team.
Request Fields
| Required column | Meaning |
|---|---|
| * | mandatory in the input |
| ** | at least one of these parameters is mandatory in the input |
| ** | optional if projects are requested (propertyTypeID 112) |
Request fields
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
marketZoneID | ** | string | 10242 | |
municipalityID | ** | string | 15146 | |
omiZoneID | ** | string | A074B1 | |
boundingBox | ** | geojson | {"type": "Polygon","coordinates": [...]} | |
contractTypeID | * | int | 1 | depends on comparableTypeID |
propertyTypeID | int | 4 | ||
categoryTypeID | int | 2 | ||
propertyQualityID | int | 3 | ||
minGrossSquareFootage | int | 50 | ||
maxGrossSquareFootage | int | 120 | ||
minRooms | int | 1 | ||
maxRooms | int | 2 | ||
minPrice | int | 1200000 | ||
maxPrice | int | 2500000 | ||
minBathrooms | int | 1 | ||
maxBathrooms | int | 3 | ||
maintenanceStatusID | int | 2 | ||
pubblicationStatusID | int | 4 | ||
unitFloor | float | 1 | ||
elevator | bool | true | ||
garage | bool | false | ||
minDate | string | 12/01/2025 | ||
maxDate | string | 25/09/2025 | ||
clientTypeID | int | 2 | ||
phoneNumberProvided | bool | false | ||
lat | float | '45.4775832' | relative to a POI, used to calculate distance | |
lng | float | '9.1858904' | relative to a POI, used to calculate distance | |
minModifiedDate | string | 12/01/2025 | ||
maxModifiedDate | string | 25/09/2025 | ||
duplicatesFilterID | int | 2 | ||
projectCategoryID | ** | int | 2 | |
groupProject | ** | bool | true | if true it groups all projects in a single project item if present |
minProjectEndDate | string | 12/01/2025 | only for projects | |
maxProjectEndDate | string | 25/09/2025 | only for projects | |
minProjectStartDate | string | 12/01/2025 | only for projects | |
maxProjectStartDate | string | 25/09/2025 | only for projects | |
minProjResidentialUnits | int | 5 | only for projects | |
maxProjResidentialUnits | int | 8 | only for projects | |
minProjCommercialUnits | int | 2 | only for projects | |
maxProjCommercialUnits | int | 10 | only for projects | |
minPricePsm | int | 2000 | ||
maxPricePsm | int | 5000 | ||
occupancyStatusFree | bool | true | ||
minNumberOfBuildingFloor | int | 1 | ||
maxNumberOfBuildingFloor | int | 4 | ||
minShowcases | int | 2 | ||
maxShowcases | int | 5 | ||
chimneyFlue | bool | false | ||
fumeAspiration | bool | true | ||
reception | bool | true | ||
minShedHeight | float | 1.5 | ||
maxShedHeight | float | 2.9 | ||
broadbandInternet | bool | true | ||
disabledPeopleAccess | bool | false | ||
securityAlarm | bool | true | ||
minGarageDoorWidth | float | 3.5 | ||
maxGarageDoorWidth | float | 5 |
Pagination example usage
{
"Filters": {
... filters ...
},
"Pagination": {
"page": 1,
"limit": 10
}
}
Pagination filters
| filter | default | Type | Description |
|---|---|---|---|
| page | 1 | int | Shows results in the indicated page |
| limit | 5 | int | Sets the maximum number of results per page (can be configured differently if requested through sales) |
Sorting example usage
{
"Filters": {
... filters ...
},
"Sorting": {
"by": "date",
"direction": "desc"
}
}
Sorting filters
| filter | default | Type | Description |
|---|---|---|---|
| by | date | str | Orders the results by either date, price, pricepsm, lastmodified, removed, energyclass or distance relative to a POI |
| direction | desc | str | List the results by ascending (asc) or descending (desc) order |