Skip to content

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