Transaction Search
POST
transactions/search
Returns transactions that match the specified search criteria.
Request#
curl -X POST 'https://api.pricehubble.com/api/v1/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"
}
],
"dossierId": "3bac39b8-2d84-4ae9-a693-40502071ea5d",
"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 | |
dossierId | ID of the dossier | string | If this field is added to the request, then the location must be the same as the dossier's location (address or coordinates) |
countryCode | ISO country code | string | Only FR and UK are currently supported |
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": [
{
"address": {
"city": "PARIS ",
"houseNumber": "181",
"postCode": "75013",
"street": "RUE DU CHEVALERET"
},
"buildingYear": 1958,
"coordinates": {
"latitude": 48.833667755127,
"longitude": 2.36874389648438
},
"currency": "EUR",
"distance": 193,
"floorNumber": 11,
"hasParkingSpaces": false,
"isNew": false,
"livingArea": 83,
"numberOfParkingSpaces": 0,
"numberOfRooms": 4,
"propertyType": {
"code": "apartment",
"subcode": "apartment_normal"
},
"salePrice": 600000,
"transactionDate": "2018-05-01",
"transactionId": "FR-532e76828877d9ec9d67bf738f5956734c3526830b3f3eba58019639aa6bccb6"
},
...
],
"totalItems": 5068
}
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 |
Transaction#
Field | Description | Type | Remarks |
---|---|---|---|
transactionId | Technical ID of the transaction | string | |
transactionDate | Transaction date | date | Format: YYYY-MM-DD |
salePrice | Transaction price | integer | |
salePricePerSqm | Transaction price per m2 | integer | Only available for FR |
salePricePerSqft | Transaction price per sq.ft | integer | Only available for UK |
currency | Currency of the transaction | string | |
address | Address of the property | Address | |
coordinates | Coordinates of the property | Coordinates | |
distance | Distance of the property to the reference location, in m | integer | Only returned if the request contains a referenceLocation |
floorNumber | Floor number | integer | |
buildingYear | Building year of the property | integer | |
propertyType | Type of the property | PropertyType | |
livingArea | Net living area (SIA standard) of the property | integer | For FR : in m2For UK : in sq.ft |
landArea | Total area of the lot/parcel on which the house is standing | integer | For FR : in m2For UK : in acres |
numberOfRooms | Number of rooms of the property | float | |
hasParkingSpaces | Does the property have parking spaces? | boolean | |
numberOfParkingSpaces | Number of parking spaces | integer | |
isNew | Has the property never been used before, i.e. has it never been sold or rented out? | boolean | |
isLeasehold | Is leasehold | boolean | Only available for UK |