Skip to content

Exclusive Offer Creation

POST comparables/exclusive/offers

Creates a new exclusive offer.

Example Request#

curl -X POST 'https://api.pricehubble.com/api/v1/comparables/exclusive/offers' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer 74126eab0a9048d993bda4b1b55ae074' \
  -d '{
    "countryCode": "CH",
    "sourceOfferId": "test",
    "images": [
        "a2b158e6-8570-4cdb-9105-454773335a49.jpg"
    ],
    "offer": {
        "dealType": "sale",
        "salePrice": 900000,
        "startDate": "2021-01-12"
    },
    "property": {
        "location": {
            "coordinates": {
                "latitude": 47.4,
                "longitude": 8.54
            },
            "address": {
                "postCode": "8008",
                "street": "Klausstrasse",
                "city": "Zurich"
            }
        },
        "propertyType": {
            "code": "apartment"
        },
        "livingArea": 50
    }
}'

Request fields#

Field Description Type Remarks
countryCode ISO country code string
sourceOfferId Your offer id, can be used to delete or update the offer (most often it is the id used in the client CRM) string
description Offer description string
images Offer images array of image path To upload image use Exclusive Offers Images API
roomTourLink Url for virtual tour of the offer string
fullSourceData Raw value for offer in JSON format json
property Information about the property Exclusive Offers Property
offer Information about the offer Exclusive Comparables Offer

Example Response#

{
   "offerId": "16adf0dd-6a35-4d84-8b4d-53da4166a53e",
   "geoPrecision": "address",
   "sourceOfferId": "qnGcKZNNLgiX",
   "description": "",
   "images": [
      "https://host/images/b25bb9f4-5a58-4f1e-8cd5-9ce442f4724d.jpg"
   ],
   "property": {
      "volume": 192.91,
      "numberOfFloorsInBuilding": 2,
      "buildingYear": "",
      "isNew": false,
      "propertyType": {
         "code": "apartment",
         "subcode": ""
      },
      "landArea": 193.0,
      "hasLift": false,
      "floorNumber": 8,
      "livingArea": 50.0,
      "numberOfRooms": 4.0,
      "numberOfIndoorParkingSpaces": 0,
      "numberOfOutdoorParkingSpaces": 3,
      "numberOfBathrooms": 2,
      "isWheelchairAccessible": true,
      "numberOfBedrooms": 1,
      "isFurnished": true,
      "renovationYear": 2013,
      "energyLabel": "",
      "minergie": "",
      "hasPool": false,
      "hasSauna": false,
      "balconyArea": 6.0,
      "gardenArea": 265.0,
      "basementType": "",
      "basementSurface": 21.0,
      "hasConcierge": true,
      "furnishedKitchen": false,
      "hasAirconditioning": true,
      "hasHeating": false,
      "centralisedHeating": false,
      "hasSolarPanels": null,
      "heatingGenerationType": null,
      "heatingDistributionType": null,
      "view": "",
      "orientation": "",
      "isRented": true,
      "location": {
         "coordinates": {
            "latitude": 52.49808789999999,
            "longitude": 13.3527799
         },
         "address": {
            "postCode": "10777",
            "street": "Nollendorfstraße",
            "city": "Berlin",
            "houseNumber": "12"
         }
      },
      "quality": {
         "kitchen": "normal",
         "bathrooms": "simple",
         "flooring": "high_quality",
         "windows": "normal",
         "masonry": "simple",
         "roof": "normal"
      },
      "condition": {
         "property": "renovation_needed",
         "kitchen": "new_or_recently_renovated",
         "bathrooms": "renovation_needed",
         "flooring": "well_maintained",
         "windows": "well_maintained",
         "masonry": "well_maintained",
         "roof": "well_maintained",
         "elec": "renovation_needed",
         "plumbing": "new_or_recently_renovated"
      }
   },
   "offer": {
      "title": "",
      "isActive": true,
      "isPrivate": true,
      "dealType": "rent",
      "startDate": "2020-07-12",
      "endDate": "",
      "salePrice": "",
      "rentPrice": 1099.0,
      "grossRentPrice": 1366.0,
      "salePricePerSqm": "",
      "rentPricePerSqm": "",
      "grossRentPricePerSqm": "",
      "feesAmount": 4574.0,
      "currency": "EUR"
   },
   "fullSourceData": {},
   "countryCode": "DE"
}

Response fields#

Field Description Type Remarks
countryCode ISO country code string
offerId Internal offer id string
sourceOfferId This is the id you provided when creating the offer (most often it is the id used in the client CRM). It can be used to delete or update the offer string
description Offer description string
images Offer images array of Generic Images
roomTourLink Url for virtual tour of the offer string
fullSourceData raw value for offer in JSON format json
property Information about the property Exclusive Comparables Property
offer Information about the offer Exclusive Comparables Offer

Property#

Field Description Type Remarks
location Property location Location
propertyType Property type PropertyType
livingArea Net living area float In m2
For UK: in sq.ft
buildingYear The year the property was built integer
landArea Total area of the lot/parcel on which the house is standing float In m2
For UK: in acres
hasBalcony Has balcony / terrace boolean
balconyArea Balcony / Terrace area float In m2
For UK: in sq.ft
gardenArea Garden area float In m2
For UK: in sq.ft
volume Volume float In m3
For UK: in cu.ft
numberOfRooms Number of rooms float
numberOfBedrooms Number of bedrooms integer
numberOfBathrooms Number of bathrooms integer
isWheelchairAccessible Is wheelchair accessible boolean
hasIndoorParkingSpaces Has garage spaces boolean
numberOfIndoorParkingSpaces Garage spaces integer
hasOutdoorParkingSpaces Has parking spaces boolean
numberOfOutdoorParkingSpaces Parking spaces integer
floorNumber Floor number integer
hasLift Lift availability boolean
energyLabel Energy label enum For DE: A++, A+, A .. H. For NL: A+++, A++, A+, A .. G. For CH: minergie, minergie_p, minergie_a, minergie_eco, minergie_p_eco, minergie_a_eco. For BE: A++, A+, A .. G. For others: A .. G.
minergie minergie flag boolean
hasSauna Sauna availability boolean
hasPool Pool availability boolean
numberOfFloorsInBuilding Total number of floors of the building integer
isFurnished Whether the property is furnished or not boolean
isNew Whether the property has never been used before ("Bâtiment neuf" in French, "Erstverkauf" / "Erstvermietung" in German) boolean
renovationYear Last renovation year of the property integer
basementType Basement type enum livable, not_livable or other
basementSurface Basement surface float In m2
For UK: in sq.ft
hasConcierge Has concierge boolean
furnishedKitchen Has furnished kitchen boolean
hasAirconditioning Has air conditioning boolean
hasHeating Has heating boolean
heatingGenerationType How the building is heated enum electric, wood, gas, oil, district, heat_pump_air, heat_pump_geothermal, solar or other
heatingDistributionType How the heat is distributed enum floor, radiator or other
hasSolarPanels If the building has solar panels boolean
view View enum clear, partially_clear, obstructed or other
orientation Property orientation string Any combination of N, S, E, and W from 1 to 4 characters and max one occurance.
isRented Is rented boolean
centralisedHeating Has centralised heating boolean
condition.bathrooms Bathrooms condition Condition
condition.kitchen Kitchen condition Condition
condition.flooring Flooring condition Condition
condition.windows Windows condition Condition
condition.property Property condition Condition
condition.masonry Masonry condition Condition
condition.roof Roof condition Condition
condition.elec Electricity condition Condition
condition.plumbing Plumbing condition Condition
quality.bathrooms Bathrooms quality Quality
quality.kitchen Kitchen quality Quality
quality.flooring Flooring quality Quality
quality.windows Windows quality Quality
quality.masonry Masonry quality Quality
quality.roof Roof quality Quality

Offer#

Field Description Type Remarks
dealType Type of offer enum sale, rent
startDate Offer date date Start date of the offer, Format: YYYY-MM-DD, default: today
endDate Offer date date End date of the offer if it has been completed, Format: YYYY-MM-DD, default (if isActive is false): today.
title Title text
salePrice Sale price float Mandatory if dealType is sale
rentPrice Rent price float Either rentPrice or grossRentPrice is mandatory if dealType is rent
grossRentPrice Gross rent price float Either rentPrice or grossRentPrice is mandatory if dealType is rent
salePricePerSqm Sale price per m2,
per sq.ft for UK
float Available if dealType is sale
rentPricePerSqm Rent price per m2 float Available if dealType is rent
grossRentPricePerSqm Gross rent price per m2 float Available if dealType is rent
feesAmount Fees amount float
currency Currency string
isActive Offer is active bool Default: true
isPrivate Offer is private bool Default: true
status Offer status enum pre_sale or public