Exclusive Transaction Search
POST
comparables/exclusive/transactions/search
Returns exclusive transactions that match the specified search criteria.
Request#
curl -X POST 'https://api.pricehubble.com/api/v1/comparables/exclusive/transactions/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer 74126eab0a9048d993bda4b1b55ae074' \
-d '{
"referenceLocation": {
"address": {
"city": "Paris",
"houseNumber": "5",
"postCode": "75013",
"street": "Parvis Alan Turing"
}
},
"filters": {
"transactionDate": {
"min": "2018-01-01"
},
"salePrice": {
"currency": "EUR",
"max": 1000000
},
"location": [
{
"circle": {
"center": {
"coordinates": {
"latitude": 48.833985,
"longitude": 2.371335
}
},
"radius": 30000
}
}
],
"propertyType": [
{
"code": "apartment",
"subcode": "apartment_normal"
},
{
"code": "apartment",
"subcode": "apartment_attic"
}
],
"livingArea": {
"min": 80,
"max": 110
},
"numberOfRooms": {
"min": 4,
"max": 4.5
}
},
"offset": 0,
"limit": 10,
"orderBy": [
{
"field": "distance"
},
{
"field": "transactionDate",
"direction": "desc"
}
],
"countryCode": "FR"
}'
Field | Description | Type | Remarks |
---|---|---|---|
referenceLocation | Reference location of the search. Distances of transactions are computed relative to this location | Location | |
filters | Allows to specify various search criteria | object | |
filters.transactionDate | Filter on transaction date | DateValueRange | |
filters.salePrice | Filter on sale price | PriveValueRance | |
filters.location | Filters on location. If multiple filters are provided, they are connected by a logical "or" | array of LocationFilters | |
filters.propertyType | Filter on property type. Matches transactions which have one of the specified property types | array of PropertyTypes | |
filters.livingArea | Filter on net living area | ValueRange | Living area, in m2 For UK : in sq.ft |
filters.buildingYear | Filter on building year | ValueRange | |
filters.numberOfRooms | Filter on number of rooms | ValueRange | |
filters.hasParkingSpaces | Filter on the transaction's hasParkingSpaces flag |
boolean | |
filters.isNew | Filter on the transaction's isNew flag |
boolean | |
offset | Offset of the query (allows pagination) | integer | min: 0, max: 1'000, default: 0 |
limit | Maximum number of results to return | integer | min: 0, max: 500, default: 10 |
orderBy | Sort order | array of OrderByCriterions | |
countryCode | ISO country code | string |
LocationFilter#
To filter by location, either a circle
or a divisionLevel*
must be provided.
If you would like to filter by division levels but only have an address or coordinates and don't know the official ID of the administrative division, you can use the Administrative Divisions endpoint to look up the administrative division and the respective ID.
Field | Description | Type | Remarks |
---|---|---|---|
circle | Location filter of type "circle". Matches transactions which lie within the circle defined by center and radius |
object | |
circle.center | Center of the circle | Location | |
circle.radius | Radius of the circle, in m | integer | min: 0, max: 30'000, default: 20'000 |
divisionLevel6 | The official ID of the level 6 division | string | |
divisionLevel8 | The official ID of the level 8 division | string | |
divisionLevel100 | The official ID of the level 100 division | string |
OrderByCriterion#
Field | Description | Type | Remarks |
---|---|---|---|
field | Field by which to sort | string | Valid values are distance , transactionDate , salePrice or salePricePerSqm |
direction | Sort direction | string | Valid values are asc (default) or desc |
Response#
{
"items": [
{
"uuid": "4b095e88-6641-4789-b01d-2644df2a2209",
"sourceTransactionId": "ecd67966-f511-4b26-ac40-1d517f9c8819",
"sourceOfferId": "",
"description": "",
"images": [
{
"url": "http://some-domain.com/a2b158e6-8570-4cdb-9105-454773335a49.jpg",
"filename": "a2b158e6-8570-4cdb-9105-454773335a49.jpg"
},
],
"property": {
"volume": null,
"numberOfFloorsInBuilding": null,
"buildingYear": null,
"isNew": null,
"propertyType": {
"code": "apartment",
"subcode": ""
},
"landArea": null,
"hasLift": null,
"floorNumber": null,
"livingArea": 50.0,
"numberOfRooms": null,
"hasParkingSpaces": null,
"numberOfIndoorParkingSpaces": null,
"numberOfOutdoorParkingSpaces": null,
"numberOfBathrooms": null,
"isWheelchairAccessible": null,
"numberOfBedrooms": null,
"isFurnished": null,
"renovationYear": null,
"energyLabel": "",
"hasPool": null,
"hasSauna": null,
"balconyArea": null,
"gardenArea": null,
"basementType": "",
"basementSurface": null,
"hasConcierge": null,
"furnishedKitchen": null,
"hasAirconditioning": null,
"hasHeating": null,
"centralisedHeating": null,
"hasSolarPanels": null,
"heatingType": "",
"heatingSource": "",
"view": "",
"orientation": "",
"isRented": null,
"location": {
"coordinates": {
"latitude": 47.4,
"longitude": 8.54
},
"address": {
"postCode": "8008",
"street": "Klausstrasse",
"city": "Zurich",
"houseNumber": ""
}
},
"quality": {
"kitchen": "simple",
"bathrooms": "simple",
"flooring": "simple",
"windows": "simple",
"masonry": "simple",
"roof": "simple"
},
"condition": {
"property": "renovation_needed",
"kitchen": "renovation_needed",
"bathrooms": "renovation_needed",
"flooring": "renovation_needed",
"windows": "renovation_needed",
"masonry": "renovation_needed",
"roof": "renovation_needed",
"elec": "renovation_needed",
"plumbing": "renovation_needed"
}
},
"transaction": {
"transactionDate": "2021-08-10",
"salePrice": 1000000.0,
"originalOfferPrice": null,
"transactionsStatus": "sold",
"preSaleDate": null,
"feesAmount": null
},
"fullSourceData": {},
"countryCode": "CH"
},
...
],
"totalItems": 5
}
Field | Description | Type | Remarks |
---|---|---|---|
totalItems | Total number of matching transactions found | integer | min: 0 This field is capped and is only accurate if there are less than 1’500 results. If there are more results, this field will equal 1’500 |
items | List of matching transactions | array of Transactions | empty array if no results |