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
title Title text
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",
   "title": "",
   "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,
      "hasParkingSpaces": true,
      "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,
      "heatingType": "",
      "heatingSource": "",
      "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": {
      "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
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, in m2 float
buildingYear The year the property was built integer
landArea Total area of the lot/parcel on which the house is standing, in m2 float
balconyArea Balcony / Terrace area, in m2 float
gardenArea Garden area, in m2 float
volume Volume, in m3 float
numberOfRooms Number of rooms float
numberOfBedrooms Number of bedrooms integer
numberOfBathrooms Number of bathrooms integer
isWheelchairAccessible Is wheelchair accessible boolean
hasParkingSpaces Has parking spaces boolean
numberOfIndoorParkingSpaces Garage spaces integer
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 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
hasConcierge Has concierge boolean
furnishedKitchen Has furnished kitchen boolean
hasAirconditioning Has air conditioning boolean
hasHeating Has heating boolean
heatingType Heating type enum soil, wall, radiator, air or other
heatingSource Heating source enum electric, gas, heat_pump, oil, wood or other
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.
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 square meter float Available if dealType is sale
rentPricePerSqm Rent price per square meter float Available if dealType is rent
grossRentPricePerSqm Gross rent price per square meter 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