# Listings API

The Listing API has been designed to cover two common scenarios:

  • Get listings from Keaze and KPro to publish them in another portal.
  • Publish listings in Keaze Marketplace and Homes for Londoners portals without having to create and maintain the inventory and the listings in Keaze or KPro.

# On this page

# Get listings

To get all the live listings (listings ready to be published), send a GET to /api/rest/open/listings.

To get all listings, no matter their visibility (draft, scheduled or live), send a GET to /api/rest/open/listings/all.

You need to pass the QueryString parameter api_key with your API key to get access to the resources.

# Payload

In both cases all responses are JSON encoded, and as they are paginated, the data is contained into an envelope:

{
  "data": [items],
  "pagination": {
    "currentPage": 2, // current page number
    "perPage": 10,    // number of items to be shown per page
    "total": 212,     // total number of items
    "from": 11,       // number of the first item in the result
    "to": 20,         // number of the last item in the result  
    "lastPage": 23   // last page number
  },
  "links": {
    "first": "url to the first page",
    "prev": "url to the previous page",
    "next": "url to the next page",
    "last": "url to the last page"
  }
}

where items is the collection of listings.

Info

Listings can advertise a single property or a development. In the first case the details about the property are returned in the field property, but to get all the properties for the second case, it is necessary to issue a second request. Check the value of the field singleProperty to identify how many properties the listing is advertising.

The payload for every listing is the same in both cases, but in the second one the field propertyDetails will be null.

Although property payloads contains detailed information about the properties being advertised, for most portals, all relevant information to publish a listing is in the listing payload itself, and it is not necessary to use the property details.

# Listing fields

For a better understanding of the fields returned for listings, they have been divided in different sections.

The field detailsPerBedroom is an array with one entry per each different amount the bedroom the properties being advertised have. Each entry will return fields with the best prices for the corresponding bedrooms. Listings also have fields for best prices in general.

Some fields are redundant, but it could help reducing computation on the API consumer side.

As Keaze deals with different schemes, some fields only have meaning for some specific schemes. Take a look to the section Understanding prices fields to know how to use all the fields returned.

Field name Type Nullable Description
General
id number false Keaze Reference Id.
developmentId number true Keaze reference ID for the development linked to this listing. This is null if the listing is an independent unit or resale.
propertyId number true Keaze reference ID for the poroperty linked to this listing. This will not be null if the listing is an independent unit or resale.
externalRef string true External reference provided by the client.
name string false Listing name to display.
slug string false URL slug generated in KPro, using the listing name. This slug is used when building links to the listings on the sites that it is published on.
singleProperty boolean false true when the listing is advertising a single property.
propertyDetails object true Object containing the property details when the listing is single property.
schemeGroup object false Object that contains details about the schemes for the listing. Listings usually are related to a single scheme, but sometimes they can be related to more than one, like Help to Buy and First Dibs. The object has fields for the group of schemes and also the collection of all single schemes. Check the list of all possible scheme groups.
availabilityStatus object false Object that contains the code & name of the availability status. Regardless the occupancy type, there are only four possible values. Codes don't depend on the occupancy type, but names do. Codes are: coming-soon, available, under-offer & closed.
visibility string false draft, scheduled (if the listing is not yet live but has been scheduled to be published at a future time) or live
contactEmail string true Contact e-mail home seekers can write to if interested in the listing.
defaultNotificationEmail string true Default notification e-mail where automatic e-mails can be sent about leads.
galleryImages array true Array that contains the image gallery. Every item contains urls for different view ports: largeSize (1080px width), mediumSize (720px width) & thumbnail (360px width), There are two fields that could be empty: alternativeText and caption. There is a boolean field - main - which if true, means that that image is set as the main image for the listing. The final field is the tags field which is an array. All images match the aspect ratio 16x9.
logo object true Object that contains the logo including the caption, the url that leads to the file and the extraDetails object (often null for logos).
videos array true Array that contains video objects. The objects contain the video caption, url and the extraDetails object, which includes the type (youtube, vimeo, matterport or unknown), title, videoId (can be used to build the url for youtube and vimeo videos), embedCode and thumbnailUrl. For some videos there are not available thumbnail images.
brochures array true Array that contains brochure objects, including caption, (url to the brochure as a pdf file) and the extraDetails object.
Address
displayAddress string false The address to display in the listing. The address doesn't contain the postcode.
postcode string true UK postcode for the listing.
localAuthority object true Object with details of local authority, consisting in local authority name, county name and region name.
latitude number false The latitude where the listing is.
longitude number false The longitude where the listing is.
mapImageUrl string false Map image url with a pin indicating the position of the property, useful if you want to display an image instead of calling Google Map or a similar map service.
Descriptions
shortDescription string true Listing summary.
longDescription string true The full description of the listing (should ideally in HTML).
localAreaName string true Name of the local area.
localAreaDescription string true Description of the local area (should ideally in HTML).
termsAndConditions string true Terms and conditions (should ideally in HTML).
disclaimer string true Disclaimer (should ideally in HTML).
specifications array true Array of specification objects, where each one contains three fields: name, description and imageUrls
Premises details
newBuild boolean false true is the listing if for new build properties.
propertyType object false An object with two fields: name and group. The second one could be Flat or House, while the first one is a more specific property type name, like Terrace or Bungalow. See all the property type values
detailsPerBedroom array false An array containing details per each bedroom the listing has.
bedrooms array false An array containing the different amount of bedrooms of the listing properties.
bathrooms array true An array containing the different amount of bathrooms of the listing properties.
receptionRooms array true An array containing the different amount of reception rooms of the listing properties.
furnitureStatus array true An array containing the different furniture status of the listing properties. Possible values are: unfurnished, part-furnished & furnished.
tenure string false Condition on which a property is held: leasehold or freehold.
propertyFeatures array false Array of objects describing all property features. Every object has two fields: section (text with the property feature section, e.g.: Parking ) & values (an array of string, containing all the property features for the section).
councilTaxBands array false Array of all council tax bands that apply to the listing's property/properties (A - H or 0 for N/A).
forSale boolean false The listing is for sale, otherwise is to rent.
For sale
isSharedOwnership boolean false true if the listing is part of a Shared Ownership scheme.
fullMarketPrice number true The minimum full market price.
depositValue number true The minimum deposit value.
minSharePercentage number true The minimum share percentage if isSharedOwnership.
minShareValue number true The minimum share value if isSharedOwnership, computed from fullMarketPrice and minSharePercentage
subsidisedMonthlyRent number true The minimum amount to pay for rent of the part doesn't own when isSharedOwnership.
maxGovernmentLoanPercent number true Depending on the scheme, eligible buyers could receive a government loan. In such a case, this value is the maximum government loan percent.
maxGovernmentLoanValue number true The maximum government loan value, computed from fullMarketPrice and maxGovernmentLoanPercent
monthlyServiceCharge number true Monthly bill that covers the costs of any repairs or maintenance to the structure of the building, including drainage, insurance and management charges.
annualGroundRent number true Rent to pay annually to the freeholder or landlord of the leasehold property.
reservationFee number true Reservation fee to a developer that allows a buyer to reserve a property for a period.
To rent
monthlyRent number true Monthly rent.
weeklyRent number true Weekly rent, computed from monthlyRent.
rentalDeposit number true Rental deposit value.
minTenancyMonths number true Minimum tenancy term in months.
maxTenancyMonths number true Maximum tenancy term in months.
Both: For sale & To rent
administrationFee number true Fee charged by an agency to cover expenses related to record-keeping and/or other administrative costs.
Timestamps
createdAt string false Date-time when the listing was created.
updatedAt string false Last date-time when the listing was updated.

# Details per bedroom

Field name Type Nullable Description
bedrooms number false Total number of bedrooms.
bathrooms number false Total number of bathrooms.
receptionRooms number true Total number of reception rooms.
furnitureStatus string true unfurnished, part-furnished or furnished.
fullMarketPrice number true The minimum full price.
depositPercentage number true The minimum deposit percentage.
depositValue number true The minimum deposit value. Computed from previous fields.
minSharePercentage number true The minimum share percentage if isSharedOwnership.
minShareValue number true The minimum share value if isSharedOwnership. Computed from previous fields.
subsidisedMonthlyRent number true The minimum amount to pay for rent of the part you don't own when isSharedOwnership.
subsidisedAsYearlyPercent boolean false When it is shared ownership, subsidised rent can be entered as a monthly value (false) or as a yearly percent (true).
subsidisedMonthlyRent number true The minimum amount to pay for rent of the part you don't own when isSharedOwnership. Computed from previous fields.
monthlyServiceCharge number true Monthly bill that covers the costs of any repairs or maintenance to the structure of the building, including drainage, insurance and management charges.
annualGroundRent number true Rent to pay annually to the freeholder or landlord of the leasehold property.
reservationFee number true Reservation fee to a developer that allows a buyer to reserve a property for a period.
monthlyRent number true Monthly rent.
weeklyRent number true Weekly rent. Computed from monthlyRent.
rentalDeposit number true Rental deposit value.
minTenancyMonths number true Minimum tenancy term in months.
maxTenancyMonths number true Maximum tenancy term in months.
administrationFee number true Fee charged by an agency to cover expenses related to record-keeping and/or other.

# Filtering

The API provides several fields that can be used to filter the results:

  • schemeGroup.slug: slug of the scheme group.
  • schemeGroup.name: name of the scheme group.
  • availabilityStatus.id: id of the availability status.
  • availabilityStatus.name: name of the availability status.
  • availabilityStatus.code: code of the availability status.
  • createdAt: timestamp when the listing was created.
  • development.id: id of the development the listing is linked to.
  • development.name: name of the development the listing is linked to.
  • development.localAuthority.county.name: name of the county that the development's local authority sits within.
  • displayAddress: display address of the listing.
  • estateAgency.id: id of the estate agency.
  • estateAgency.name: name of the estate agency.
  • hasProperties: if the listing has properties linked to it (true or false).
  • hasImages: if the listing has images linked to it (true or false).
  • housingProvider.id: id of the housing provider.
  • housingProvider.name: name of the housing provider.
  • id: id of the listing.
  • isLive: if the listing is live and not draft, archived or scheduled (true or false).
  • insideGla: if the property is in the Greater London Authority (true or false).
  • minBedrooms: for filtering the number of bedrooms in the listing.
  • minBathrooms: for filtering the number of bathrooms in the listing.
  • name: listing name.
  • newBuild: if the listing is new build or not.
  • postcode: postcode of the listing.
  • property.id: id of the property linked to the listing (if it is an independent unit listing).
  • property.name: name of the property linked to the listing (if it is an independent unit listing).
  • propertyType.id: id of the property type.
  • propertyType.name: name of the property type.
  • propertyType.group.id: name of the property type's group.
  • propertyType.group.name: id of the property type's group.
  • singleProperty: if the listing is a single unit listing (true or false).
  • schemeGroup.id: id of the scheme group.
  • schemeGroup.slug: slug of the scheme group.
  • schemeGroup.name: name of the scheme group.
  • slug: URL slug generated by KPro.
  • totalProperties: total number of properties linked to the listing.
  • totalImages: total number of images linked to the listing.
  • updatedAt: the last timestamp when the listing was updated.
  • visibility: visibility of the listing (live, draft, archived or scheduled).

and several operators to be used in conjunction with the fields:

  • eq: equal
  • not: not equal
  • gt: greater than (for numbers, date and timestamps)
  • lt: less than (for numbers, date and timestamps)
  • gte: greater than or equal to (for numbers, date and timestamps)
  • lte: less than or equal to (for numbers, date and timestamps)
  • ltt: less than tomorrow's date, useful for datetime or timestamp fields when the filter value is a date without the time component
  • in: in a list of values separated by commas
  • notin: not in a list of values separated by commas
  • like: standard like operator, use * for any amount of chars and _ for a single one
  • regex: regular expression
  • arany: check if any values in a list separated by commas are found in an array
  • arall: check if any values in a list separated by commas completely match an array

Operators should be placed after the fields, separated by a dot (.). When multiple filters are specified, the AND logic operator will be used (except when using square brackets at the end of the parameter name to replace in and notin operators). When no operator is specified for a filter, the usual equal comparison is applied.

In order to filter dates and timestamps, use the ISO date format YYYY-MM-DD for dates, and if you want to include hours and minutes, use YYYY-MM-DD HH:mm. Notice that in all cases, UTC date/time is used.

Examples

  • To get listings updated after 20-Mar-2021 10:00:

/api/rest/open/listings?updatedAt.gte=2021-03-20 10:00

  • To get only Shared ownership listings:

/api/rest/open/listings?schemeGroup.slug=shared-ownership

# Filtering bedrooms or bathrooms

To filter bedrooms or bathrooms, it is best to use the arany and arall operators, as using operators like eq, lt and gt only will compare the filtering value to the lowest number of bedrooms that a listing has rather than looking at the entire bedrooms array.

/api/rest/open/listings?minBedrooms.gte=3 will not return any listings that have any properties with fewer than 3 bedrooms, even if those listings also have properties with 3 or more bedrooms.

/api/rest/open/listings?minBedrooms.arany=1,3,5 will return all listings that have properties with 1, 3 or 5 bedrooms.

For finding listings with a certain amount of bedrooms or more, consider using a longer list of incrementing values, for example: for listings that have properties with 4 or more bedrooms use /api/rest/open/listings?minBedrooms.arany=4,5,6,7,8,9.

For finding listings that have only properties with 2 or 3 bedrooms, you can use /api/rest/open/listings?minBedrooms.arall=2,3.

The same methods can be applied with the minBathrooms filter field.

# Bracket option

Brackets can be used instead of values separated by commas to replace the operators in and notin.

Examples

  • schemeGroup.slug[]=shared-owership&schemeGroup.slug[]=help-to-buy is the same as schemeGroup.slug.in=shared-ownership,help-to-buy
  • schemeGroup.slug.not[]=shared-owership&schemeGroup.slug.not[]=help-to-buy is the same as schemeGroup.slug.notin=shared-ownership,help-to-buy

# Sorting

By default results are sorting by name, but you can change it by using parameter sort and the field you want to sort by, separated by comma, as the value. Fields are sorted ascending, but you use the minus symbol (-) in front of any of fields to change the order to descending.

Example, to sort first by updatedAt descending, and then by name ascending, use: sort=-updatedAt,name

# Pagination

Results are paginated based on parameters page (page number, optional, default is 1) and size (maximum number of records to return per page, optional, default is 50, maximum possible value is 1000).

# Get a specific listing

To get only one listing, send a GET to /api/rest/open/listings/{listing.id}, where listing.id is the id reference in Keaze.

The payload is the same as when requesting the collection of listings.

# Example

{
  "id": 1234,
  "developmentId": 1234, // null if independent unit
  "propertyId": null, // not null if independent unit
  "externalRef": "ExampleRef",
  "name": "Example street Resale",
  "slug": "example-street-resale",
  "singleProperty": true,
  "propertyDetails": {
    "propertyType": {
      "name": "Flat",
      "code": "flat",
      "group": "Flat"
    },
    "availabilityStatus": {
      "code": "available",
      "name": "For sale"
    },
    "newBuild": false,
    "propertyNumber": null,
    "name": "Example street",
    "handoverDate": null,
    "useDevelopmentAddress": false,
    "building": "10",
    "street": "Example street",
    "town": "Fakesville",
    "postcode": "NO7 7RU",
    "localAuthority": {
      "slug": "arun",
      "name": "Arun"
    },
    "bedrooms": 1,
    "bathrooms": 1,
    "receptionRooms": 1,
    "furnitureStatus": "unfurnished",
    "floorArea": 40,
    "numberOfFloors": 1,
    "floor": {
      "code": "ground",
      "name": "Ground floor"
    },
    "tenure": "leasehold",
    "leaseYears": null,
    "energyEfficiencyRatingCurrent": 63,
    "energyEfficiencyRatingPotential": 78,
    "environmentalImpactRatingCurrent": 70,
    "environmentalImpactRatingPotential": 85,
    "forSale": true,
    "fullMarketPrice": 135000,
    "depositPercentage": 5,
    "depositValue": 1688,
    "minSharePercentage": 25,
    "minShareValue": 33750,
    "subsidisedRent": 232.03,
    "subsidisedAsYearlyPercent": false,
    "subsidisedMonthlyRent": 232,
    "monthlyServiceCharge": 130,
    "annualGroundRent": null,
    "reservationFee": null,
    "administrationFee": null,
    "councilTaxBand": "A",
    "rentalDeposit": null,
    "monthlyRent": null,
    "weeklyRent": null,
    "minTenancyMonths": null,
    "maxTenancyMonths": null,
    "maxGovernmentLoanPercent": null,
    "maxGovernmentLoanValue": null,
    "summaryDescription": null,
    "fullSpecifications": null,
    "features": [],
    "floorplanImages": [],
    "galleryImages": []
  },
  "schemeGroup": {
    "slug": "shared-ownership",
    "name": "Shared ownership",
    "forSale": true,
    "schemes": [
      {
        "slug": "shared-ownership",
        "name": "Shared ownership"
      }
    ]
  },
  "availabilityStatus": {
    "code": "available",
    "name": "For sale"
  },
  "visibility": "live",
  "contactEmail": "example@housingprovider.com",
  "defaultNotificationEmail": "example@housingprovider.com",
  "galleryImages": [
    {
      "alternativeText": "",
      "caption": "Example caption",
      "main": false,
      "tags": [],
      "thumbnail": "https://static.propertybooking.co.uk/assets/developments/1234/gallery/360/file-030.jpeg",
      "mediumSize": "https://static.propertybooking.co.uk/assets/developments/1234/gallery/720/file-030.jpeg",
      "largeSize": "https://static.propertybooking.co.uk/assets/developments/1234/gallery/1080/file-030.jpeg"
    },
    {
      "alternativeText": "",
      "caption": "",
      "main": true,
      "tags": [],
      "thumbnail": "https://static.asset-url.co.uk/assets/developments/1234/gallery/360/file-004.jpeg",
      "mediumSize": "https://static.asset-url.co.uk/assets/developments/1234/gallery/720/file-004.jpeg",
      "largeSize": "https://static.asset-url.co.uk/assets/developments/1234/gallery/1080/file-004.jpeg"
    }
  ],
  "logo": {
    "caption": "",
    "url": "http://static.asset-url.co.uk/assets/developments/1234/logo/2-6-10.jpg",
    "extraDetails": null
  },
  "videos": [
    {
      "caption": "",
      "url": "https://www.youtube.com/watch?v=Hzk27itihRI",
      "extraDetails": {
        "type": "youtube",
        "title": "Example Video (worth a watch)",
        "videoId": "Hzk27itihRI",
        "embedCode": "<iframe src=\"https://www.youtube.com/embed/Hzk27itihRI\" id=\"youtubeIframe\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>",
        "thumbnailUrl": "https://img.youtube.com/vi/Hzk27itihRI/mqdefault.jpg"
      }
    }
  ],
  "brochures": [
    {
      "caption": "",
      "url": "http://static.asset-url.co.uk/assets/developments/1234/brochure/example-brochure.pdf",
      "extraDetails": null
    }
  ],
  "displayAddress": "10 Example street, Fakesville",
  "postcode": "NO7 7RU",
  "localAuthority": {
    "name": "Arun",
    "county": {
      "name": "West Sussex",
      "region": "South East"
    }
  },
  "latitude": 50.0000000,
  "longitude": -0.0000000,
  "mapImageUrl": "http://static.asset-url.co.uk/assets/developments/1234/map.png",
  "shortDescription": "Example summary",
  "longDescription": "<p>Overview</p><p>Example overview</p>",
  "localAreaName": "Fakesville",
  "localAreaDescription": "<p>Example local area information</p>",
  "termsAndConditions": "<p>Example terms</p>",
  "disclaimer": "<p>Example disclaimer</p>",
  "specifications": [],
  "newBuild": false,
  "propertyType": {
    "name": "Semi-detached house",
    "code": "semi-detached-house",
    "group": "House"
  },
  "detailsPerBedroom": [
    {
      "bedrooms": 1,
      "bathrooms": 1,
      "receptionRooms": 1,
      "furnitureStatus": "unfurnished",
      "fullMarketPrice": 135000,
      "depositPercentage": 5,
      "minSharePercentage": 25,
      "subsidisedRent": 232.03,
      "subsidisedAsYearlyPercent": false,
      "monthlyServiceCharge": 130,
      "annualGroundRent": null,
      "reservationFee": null,
      "administrationFee": null,
      "rentalDeposit": null,
      "monthlyRent": null,
      "minTenancyMonths": null,
      "maxTenancyMonths": null
    }
  ],
  "bedrooms": [
    1
  ],
  "bathrooms": [
    1
  ],
  "receptionRooms": [
    1
  ],
  "furnitureStatus": [
    "unfurnished"
  ],
  "tenure": "leasehold",
  "propertyFeatures": [
    {
      "section": "Others",
      "values": [
        "Central heating",
        "Double Glazing"
      ]
    },
    {
      "section": "Outside space",
      "values": [
        "Terrace"
      ]
    },
    {
      "section": "Parking",
      "values": [
        "Underground parking"
      ]
    }
  ],
  "councilTaxBands": ["A"],
  "forSale": true,
  "isSharedOwnership": true,
  "fullMarketPrice": 135000,
  "depositValue": 1688,
  "minSharePercentage": 25,
  "minShareValue": 33750,
  "subsidisedMonthlyRent": 232,
  "maxGovernmentLoanPercent": null,
  "maxGovernmentLoanValue": null,
  "monthlyServiceCharge": 130,
  "annualGroundRent": null,
  "reservationFee": null,
  "monthlyRent": null,
  "weeklyRent": null,
  "rentalDeposit": null,
  "minTenancyMonths": null,
  "maxTenancyMonths": null,
  "administrationFee": null,
  "updatedAt": "2022-03-25T14:14:43+00:00",
  "createdAt": "2020-12-29T15:59:35+00:00"
}

# Get listing properties

When the listing is a development listing, send a GET to /api/rest/open/listings/{listing.id}/properties to get all the properties advertised by the listing.

Unlike the listing collection payload, this one is not paginated, but it will be a JSON object with the field data, which is an array containing all the properties.

{
  "data": [items]
}

# Property details fields

Info

Some fields match the ones in Listing details, and in many cases they are interpreted the same, but some as bedrooms, bathrooms and receptionRooms are not. In property details they are considered as numbers, while in listings they are array of numbers.

Field name Type Nullable Description
id number false Reference Id.
availabilityStatus object false Object that contains the code & name of the availability status. Regardless the occupancy type, there are only four possible values. Codes don't depend on the occupancy type, but names do. Codes are: coming-soon, available, under-offer & closed, and they can be used to associate colours to each status.
propertyNumber string true Number or name used to identify the property.
name string true Name to identify the property when it is an independent unit.
handoverDate string true Date that the property will be available to be handed over to the buyer.
forSale boolean false The property is for sale, otherwise is to rent.
Address
useDevelopmentAddress boolean false When true the property has the same address as the linked development. Other address fields will be null if this is true.
building string true First line of the address.
street string true Second line of the address.
town string true Third line of the address.
postcode string true Postcode of the property.
localAuthority object true Object containing name and slug of the local authority that the property lies within.
Premises details
propertyType object false An object with two fields: name, code and group. group could be Flat or House, while name one is a more specific property type name, like End of terrace house or Bungalow, and code is a slug that marches, like end-of-terrace-house or bungalow. See all the property type values
newBuild boolean false true if the property is new build. Development properties are always new-build
bedrooms number false Total number of bedrooms.
bathrooms number false Total number of bathrooms.
receptionRooms number false Total number of reception rooms.
furnitureStatus string true unfurnished, part-furnished or furnished.
floorArea number true Floor area in square meters.
numberOfFloors number true Total number of floors the property has.
floor object true Floor that the entrance is located on. Object containing: name and code. name is a readable text that usually ends with the word floor, like Ground floor or Basement, code is corresponding floor number or a string for special cases: basement, ground, lower (for Lower ground) and 10+ (for Higher than 9th floor).
tenure string false Condition on which a property is held: leasehold or freehold.
leaseYears number true When the tenure is leasehold, the number of years the lease lasts.
energyEfficiencyRatingCurrent number false Integer number less or equal than 100, that reflects the Energy rating for the property. When it's a new build property, this value will be the Predicted energy rating, otherwise it will be the Current energy rating
energyEfficiencyRatingPotential number false Integer number less or equal than 100, that reflects the Potential energy rating for resale properties (not new build).
environmentalImpactRatingCurrent number false Integer number less or equal than 100, that reflects the Environmental impact rating for the property. When it's a new build property, this value will be the Predicted environmental impact rating, otherwise it will be the Current environmental impact rating
environmentalImpactRatingPotential number false Integer number less or equal than 100, that reflects the Potential environmental impact rating for resale properties (not new build).
councilTaxBand char false Character representing the property's council tax band (A - H or 0 for N/A).
For sale
fullMarketPrice number true The minimum full price.
depositPercentage number true The minimum deposit percentage.
depositValue number true The minimum deposit value. Computed from previous fields.
minSharePercentage number true The minimum share percentage if the property is for sale under a Shared Ownership scheme.
minShareValue number true The minimum share value if the property is for sale under a Shared Ownership scheme. Computed from previous fields.
subsidisedRent number true The minimum amount to pay for rent of the part you don't own when the property is for sale under a Shared Ownership scheme.
subsidisedAsYearlyPercent boolean false Subsidised rent can be entered as a monthly value (false) or as a yearly percent (true)
subsidisedMonthlyRent number true The minimum amount to pay for rent of the part you don't own when the property is for sale under a Shared Ownership scheme. It is computed from previous fields.
monthlyServiceCharge number true Monthly bill that covers the costs of any repairs or maintenance to the structure of the building, including drainage, insurance and management charges.
annualGroundRent number true Rent to pay annually to the freeholder or landlord of the leasehold property.
reservationFee number true Reservation fee to a developer that allows a buyer to reserve a property for a period.
maxGovernmentLoanPercent number true Depending on the scheme, eligible buyers could receive a government loan. In such a case, this value is the maximum government loan percent.
maxGovernmentLoanValue number true The maximum government loan value.
To rent
rentalDeposit number true Rental deposit value.
monthlyRent number true Monthly rent.
weeklyRent number true Weekly rent. Computed from monthlyRent.
minTenancyMonths number true Minimum tenancy term in months.
maxTenancyMonths number true Maximum tenancy term in months.
Both: For sale & To rent
administrationFee number true Fee charged by an agency to cover expenses related to record-keeping and/or other.
Media & specifications
summaryDescription string true A short summary to describe the property
fullSpecifications string true A full description of the property.
features array false Array of objects describing all property features. Every object has two fields: section (text with the property feature section, e.g.: Parking ) & values (an array of string, containing all the property features for the section).
floorplanImages array false Collection of floorplan images. Every item has 4 fields: url is the url in Keaze servers, and source is the url where the image was uploaded from if it was added via API. alt is the alternative text for the html image and caption is an optional caption you would like to display in some portals.
galleryImages array false Array that contains the image gallery. Every item contains urls for different view ports: largeSize (1080px width), mediumSize (720px width) & thumbnail (360px width), There are two fields that could be empty: alternativeText and caption. There is a boolean field - main - which if true, means that that image is set as the main image for the listing. The final field is the tags field which is an array. All images match the aspect ratio 16x9.

# Understanding prices fields

Although listing and property payloads contains all available price fields, their use depends on the occupancy type and the schemes.

Warning

Some or even all the relevant price fields could be null. In those cases those values should be treated as TBA (To be announced).

There are two different occupancy types: For sale or To rent. The listing and property details always contain the field forSale, which will be true when the occupancy type is For sale, otherwise is To rent.

# For sale fields

There are basically three different cases for sale properties, regarding the price fields:

  • Standard: There is a fullMarketPrice, and to buy the property, it is necessary to pay a depositValue.
  • Shared ownership: There is a share to buy and the rest to rent. The minimum share to buy is returned in the field minSharePercentage and the amount (computed from the full market price) is returned in minShareValue. The monthly rent for the rest is returned in the field subsidisedMonthlyRent. The depositValue is usually lower, because it's computed against the price for the share to buy.
  • The buyer can receive a government loan: It behaves like the Standard case, but field maxGovernmentLoanPercent will contain the percent of the government loan (usually 20 or 40, depending if the property is in London or not), and maxGovernmentLoanValue the amount it represents out of the fullMarketPrice.

When it has the behavior of Shared ownership, the flag isSharedOwnership will be true.

When buyers could receive a government loan, and fullMarketPrice is null, maxGovernmentLoanValue will be also null.

There are other fields that do not depend on the schemes, like:

  • monthlyServiceCharge: Monthly bill that covers the costs of any repairs or maintenance to the structure of the building, including drainage, insurance and management charges.
  • annualGroundRent: Rent to pay annually to the freeholder or landlord of the leasehold property. Notice this field only make sense when tenure is leasehold.
  • reservationFee: Reservation fee to a developer that allows a buyer to reserve a property for a period.
  • administrationFee: Fee charged by an agency to cover expenses related to record-keeping and/or other.

# To rent fields

There is no different cases for properties to rent.

The most important value is monthlyRent, but sometimes is a good idea to display the weeklyRent too, which is a computed value. rentalDeposit, minTenancyMonths and maxTenancyMonths are sometimes specified by the housing providers, although it is not common.

administrationFee is the other relevant field for properties to rent.

# Create and update listings in Keaze

There are three different endpoints to keep your listings updated in Keaze.

Add a new listing

POST /api/rest/open/listings

Update an existing listing

PUT /api/rest/open/listings/{listing.id}

Archive a listing

PATCH /api/rest/open/listings/{listing.id}/archive

The payload to add or update a listing are the same, although when using to update a listing, you only need to provide the fields that you wish to be updated.

There are two types of listings: development listing and single-property listing. The type of listing is determined by inspecting the existence of the field properties, which must be only sent when it is a development listing.

There are also other differences which will be explained in the listing request payload.

Info

When creating listings through the API, the corresponding entries in the inventory are created, although they are updated using the listings payload. For development listings, a new development is created and all the properties of the listing are assigned to the development, which name will match the listing's. For single-property listings, a new independent unit will be also created.

# Listing request payload

Field name Type Mandatory Description
name string Listing name to display. Max 255 characters. Alphanumeric characters only.
externalRef string External reference provided by the client. Max 255 characters.
visibility string draft or live
contactEmail string Contact e-mail. Max 255 characters. Must be a valid email address format.
defaultNotificationEmail string Default notification e-mail. Max 255 characters. Must be a valid email address format.
displayAddress string The address to display in the listing. The address does not contain the postcode. Max 255 characters.
latitude number The latitude where the listing is. Must be a number between -90 and 90.
longitude number The longitude where the listing is. Must be a number between -180 and 180.
shortDescription string Summary of the listing. Max 255 characters.
longDescription string The full description of the listing.
localAreaName string Name of the local area.
localAreaDescription string Description of the local area.
termsAndConditions string Terms and conditions.
disclaimer string Disclaimer.
galleryImages array Collection of gallery images. Every item has 4 fields: source (max 1024 characters) is the url where the image will be uploaded from, alt (max 255 characters) is the alternative text for the html image, caption (max 512 characters) is an optional caption you would like to display in some portals and tags is an array of strings that are relevant to the image. Only source is mandatory. Images will be automatically cropped and centered to match the aspect ratio 16x9. At least one image must be present. Minimum of one image
videos array Array that contains objects with two attributes: url (mandatory, max 1024 characters) and caption (optional, max 512 characters). The url is the url of the video on the video platform like YouTube, Vimeo or Matterport, and caption is any caption as a description of the video.
brochures array Array that contains objects with two attributes: url (mandatory, max 1024 characters) and caption (optional, max 512 characters). The url is the url of the brochure as Pdf, and caption is any caption as a description of the brochure.

When the listing is to advertise a development (development listing), it must also contain the following fields:

Field name Type Mandatory Description
schemeGroup string Must be one of the accepted scheme groups.
developmentAddress object Object with the development address details.
properties array Array with all the properties in the listing. Minimum of 1 property in the array.

Where developmentAddress is an object with the following fields:

Field name Type Mandatory Description
building string The building name or number. Max 255 characters.
street string The name of the street or road. Max 255 characters.
town string The nearest large urban area. Max 255 characters.
postcode string The postal area code. Max 255 characters. Must be a valid postcode format.

When the listing is to advertise a single property (single-property listing), it must contain the field property containing an object with the details of the property being advertised.

# Property request payload

Property fields are the same, regardless the type of listings, although some fields are not used depending on the case, which are explained in the column description.

Field name Type Mandatory Description
schemeGroup string Must be one of the accepted scheme groups.
propertyType string Must be one of the accepted property types.
availabilityStatus string One of the four possible availability status, regardless the property is for sale or to rent.
handoverDate string Date that the property will be available to be handed over to the buyer. Must be in YYYY-MM-DD format
bedrooms number Total number of bedrooms.
bathrooms number Total number of bathrooms.
receptionRooms number Total number of reception rooms.
furnitureStatus string unfurnished, part-furnished or furnished.
floorArea number Integer value for floor area in square meters. Max 50000
numberOfFloors number Total number of floors the property has.
floor string The property entrance floor. Please see our floor labels.
tenure string Condition on which a property is held: leasehold or freehold.
leaseYears number When the tenure is leasehold, the number of year the lease lasts.
energyEfficiencyRatingCurrent number Integer number from 0 to 100, that reflects the Energy rating for the property. When it's a new build property, this value will be the Predicted energy rating, otherwise it will be the Current energy rating
energyEfficiencyRatingPotential number Only for resale properties. Integer number from 0 to 100, that reflects the Potential energy rating for resale properties.
environmentalImpactRatingCurrent number Integer number from 0 to 100, that reflects the Environmental impact rating for the property. When it's a new build property, this value will be the Predicted environmental impact rating, otherwise it will be the Current environmental impact rating
environmentalImpactRatingPotential number Only for resale properties. Integer number from 0 to 100, that reflects the Potential environmental impact rating for resale properties.
fullSpecifications string A full description of the property (should ideally in HTML).
administrationFee number Fee charged by an agency to cover expenses related to record-keeping and/or other administrative costs.
features array Keaze provides some predefined property features. Include all features applicable from the list of feature labels.
fullCircleId number The property's Full Circle reference.
Address
building string The building name or number for single-property listing or if useDevelopmentAddress is false. Max 255 characters.
street string The name of the street or road for single-property listing or if useDevelopmentAddress is false. Max 255 characters.
town string The nearest large urban area for single-property listing or if useDevelopmentAddress is false. Max 255 characters.
postcode string The postal area code for single-property listing or if useDevelopmentAddress is false, in which case is required. Max 255 characters. Must be a valid postcode format
For sale
fullMarketPrice number The property full market price when it is for sale.
depositPercentage number Percent to compute the lender deposit requirements when the property is for sale. Max 50
monthlyServiceCharge number When the property is for sale, the monthly bill that covers the costs of any repairs or maintenance to the structure of your building, including drainage, insurance and management charges.
annualGroundRent number The annual ground rent, made by a holder of a leasehold property to the freeholder or a superior leaseholder, as required under a lease.
reservationFee number Fee a buyer may have to pay to reserve a property for a specific period. It is not refundable, but it will usually be deducted from the purchase price if you then go on to complete the purchase of the property.
minSharePercentage number Minimum share to buy in percentage when the scheme is shared ownership (between 10 and 100).
subsidisedAsYearlyPercent boolean ✓* For shared ownership properties, true is the subsidised value is expressed as a percent of the part the buyer is not going to purchase, false if the subsidised value is a fixed monthly value. Required when creating the property at the first time and the scheme group is Shared Ownership
subsidisedRent number ✓* It will depend on the subsidisedAsYearlyPercent value. If true, it should contain the subsidised rent as a yearly percent (maximum 20), otherwise it is the monthly rent value. Required when creating the property at the first time and the scheme group is Shared Ownership.
To rent
monthlyRent number When the property is to rent, the monthly rent payment amount.
rentalDeposit number Security deposit to rent the property.
minTenancyMonths number Minimum tenancy term in months when the property if to rent. Minimum 1
maxTenancyMonths number Maximum tenancy term in months when the property if to rent.
Single-property listings
name string Only for single-property listings. Property name.
newBuild boolean Only for single-property listings. If true the property is new build, otherwise is resale. For multi-property listings, properties are always New-build.
Multi-property listings
propertyNumber string Alphanumeric value to identify the property. It must be unique for all properties associated to the listing and it is also used to identify the property in the collection. Max 255 characters.
active boolean When it's not active, it is not display on portals. If omitted, it's set to true.
useDevelopmentAddress boolean When true, the address fields need to be included, at least postcode. If omitted it's set to true.

Info

Non mandatory fields can be omitted when creating new listings and properties, in such cases null value will be used. For shared ownership properties, price fields related to shared ownership are mandatory.

Info

When updating existing listings fields that are not going to be updated can be omitted, no matter if they are mandatory or not. For multi-property listings, you should always send the collection of all the properties for the listing, although for existing properties, only propertyNumber is required. Properties omitted will be removed from the listing.

# Examples

In both cases the fields for the listing don't change, except that for listings based on developments (multi-property) the field developmentAddress must be included, and the use of the field property or properties depending on the type of listing, single-property or multi-property respectively.

Fields for properties will vary depending on the type of listing and on the schemes.

Listing based on an independent-unit

Depending on the schemeGroup some price fields are not needed for the property, although all fields are included in the example for illustration purposes.

For listing based on independent unit (single-property), name must be used instead of propertyNumber, newBuild should be used, although once it's set to false, it can not be reverted. Fields for address must be included.

{
  "name": "Example Listing",
  "externalRef": "Example",
  "visibility": "live",
  "contactEmail": "notareal@email.com",
  "defaultNotificationEmail": "thisoneisnt@realeither.co.uk",
  "displayAddress": "22 Pretend Road, Faketon",
  "latitude": -1.83232,
  "longitude": 51.00124,
  "shortDescription": "This property is really great. Buy it please.",
  "longDescription": "<p>You should buy this property because:</p><ul><li>It is near some great chippies.</li><li>There are stunning views of the waste management plant</li><ul>",
  "localAreaName": "Faketon",
  "localAreaDescription": "<h1>Big ol' text</h1><p><small>Li'l babbie text</small></p>",
  "termsAndConditions": "<p>Agree to these</p>",
  "disclaimer": "<p><strong>Disclaimer!<strong> None of the fields in this example should be taken seriously<p>",
  "galleryImages": [
    {
      "source": "https://targetcareers.co.uk/sites/targetcareers.co.uk/files/public/styles/header_1500x550/public/field/image/What-is-property.jpg?itok=utpb-VZc",
      "caption": "Image caption",
      "alt": "Image alternative text",
      "tags": ["property", "stonks"]
    },
    {
      "source": "https://c8.alamy.com/comp/E1B58B/derelict-bungalow-E1B58B.jpg",
      "caption": "Image 2 caption",
      "alt": "Image alternative text",
      "tags": ["cosy", "rustic"]
    }
  ],
  "videos": [
    {
      "url": "https://www.youtube.com/watch?v=Aa2v8K1EOXg",
      "caption": "Video 1"
    },
    {
      "url": "https://www.youtube.com/watch?v=8qRZcXIODNU",
      "caption": "Video 2"
    }
  ],
  "brochures": [
    {
      "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
      "caption": "Brochure"
    }
  ],
  "property": {
    "schemeGroup": "shared-ownership",
    "name": "Example property",
    "newBuild": true,
    "propertyType": "bungalow",
    "availabilityStatus": "available",
    "handoverDate": "2022-06-20",
    "bedrooms": 2,
    "bathrooms": 1,
    "receptionRooms": 1,
    "furnitureStatus": "unfurnished",
    "floorArea": 64.4,
    "numberOfFloors": 1,
    "floor": "ground",
    "tenure": "leasehold",
    "leaseYears": 66,
    "energyEfficiencyRatingCurrent": 72,
    "energyEfficiencyRatingPotential": 85,
    "environmentalImpactRatingCurrent": 69,
    "environmentalImpactRatingPotential": 80,
    "fullSpecifications": "<p>This bungalow is super cosy</p>",
    "administrationFee": 140,
    "features": ["driveway", "back-garden", "patio", "double-glazing", "wheelchair-accessible"],
    "fullCircleId": 123456,
    "building": "Example building",
    "street": "22 Pretend Road",
    "town": "Faketon",
    "postcode": "NO7 7RU",
    "fullMarketPrice": 230000,
    "depositPercentage": 10,
    "monthlyServiceCharge": 20,
    "annualGroundRent": 2000,
    "reservationFee": 1000,
    "minSharePercentage": 40,
    "subsidisedAsYearlyPercent": true,
    "subsidisedRent": 8,
    "monthlyRent": 750,
    "rentalDeposit": 900,
    "minTenancyMonths": 12,
    "maxTenancyMonths": 24
  }
}

Listing based on a development

Depending on the schemeGroup some price fields could be omitted for the property.

For listing based on developments (multi-property), propertyNumber must be always included, and it's the field used to identify if a property must be added, updated or deleted from the listing.

Fields for address should be only included when useDevelopmentAddress is false, if this field is omitted, it's assumed that it's true.

{
  "name": "Example Developmemt",
  "schemeGroup": "shared-ownership",
  "externalRef": "Example 2",
  "visibility": "live",
  "contactEmail": "notareal@email.com",
  "defaultNotificationEmail": "thisoneisnt@realeither.co.uk",
  "displayAddress": "22 Pretend Road, Faketon",
  "developmentAddress": {
    "bulding": "Example development",
    "street": "22 Pretend Road",
    "town": "Faketon",
    "postcode": "NO7 7RU"
  },
  "latitude": -1.83232,
  "longitude": 51.00124,
  "shortDescription": "This property is really great. Buy it please.",
  "longDescription": "<p>You should buy this property because:</p><ul><li>It is near some great chippies.</li><li>There are stunning views of the waste management plant</li><ul>",
  "localAreaName": "Faketon",
  "localAreaDescription": "<h1>Big ol' text</h1><p><small>Li'l babbie text</small></p>",
  "termsAndConditions": "<p>Agree to these</p>",
  "disclaimer": "<p><strong>Disclaimer!<strong> None of the fields in this example should be taken seriously<p>",
  "galleryImages": [
    {
      "source": "https://targetcareers.co.uk/sites/targetcareers.co.uk/files/public/styles/header_1500x550/public/field/image/What-is-property.jpg?itok=utpb-VZc",
      "caption": "Image caption",
      "alt": "Image alternative text",
      "tags": ["property", "stonks"]
    },
    {
      "source": "https://c8.alamy.com/comp/E1B58B/derelict-bungalow-E1B58B.jpg",
      "caption": "Image 2 caption",
      "alt": "Image alternative text",
      "tags": ["cosy", "rustic"]
    }
  ],
  "videos": [
    {
      "url": "https://www.youtube.com/watch?v=Aa2v8K1EOXg",
      "caption": "Video 1"
    },
    {
      "url": "https://www.youtube.com/watch?v=8qRZcXIODNU",
      "caption": "Video 2"
    }
  ],
  "brochures": [
    {
      "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
      "caption": "Brochure"
    }
  ],
  "properties": [
    {
      "schemeGroup": "shared-ownership",
      "propertyNumber": "Example property 1",
      "propertyType": "flat",
      "active": true,
      "availabilityStatus": "available",
      "handoverDate": "2022-06-20",
      "bedrooms": 2,
      "bathrooms": 1,
      "receptionRooms": 1,
      "furnitureStatus": "unfurnished",
      "floorArea": 64.4,
      "numberOfFloors": 1,
      "floor": "ground",
      "tenure": "leasehold",
      "leaseYears": 66,
      "energyEfficiencyRatingCurrent": 72,
      "energyEfficiencyRatingPotential": 85,
      "environmentalImpactRatingCurrent": 69,
      "environmentalImpactRatingPotential": 80,
      "fullSpecifications": "<p>This bungalow is super cosy</p>",
      "administrationFee": 140,
      "features": ["driveway", "back-garden", "patio", "double-glazing", "wheelchair-accessible"],
      "fullCircleId": 123456,
      "useDevelopmentAddress": false,
      "building": "Example building",
      "street": "22 Pretend Road",
      "town": "Faketon",
      "postcode": "NO7 7RU",
      "fullMarketPrice": 230000,
      "depositPercentage": 10,
      "monthlyServiceCharge": 20,
      "annualGroundRent": 2000,
      "reservationFee": 1000,
      "minSharePercentage": 40,
      "subsidisedAsYearlyPercent": true,
      "subsidisedRent": 8,
      "monthlyRent": 750,
      "rentalDeposit": 900,
      "minTenancyMonths": 12,
      "maxTenancyMonths": 24
    },
    {
      "schemeGroup": "shared-ownership",
      "propertyNumber": "Example property 2",
      "propertyType": "flat",
      "active": true,
      "availabilityStatus": "available",
      "handoverDate": "2022-06-20",
      "bedrooms": 2,
      "bathrooms": 1,
      "receptionRooms": 1,
      "furnitureStatus": "unfurnished",
      "floorArea": 64.4,
      "numberOfFloors": 1,
      "floor": "ground",
      "tenure": "leasehold",
      "leaseYears": 66,
      "energyEfficiencyRatingCurrent": 72,
      "energyEfficiencyRatingPotential": 85,
      "environmentalImpactRatingCurrent": 69,
      "environmentalImpactRatingPotential": 80,
      "fullSpecifications": "<p>This bungalow is super cosy</p>",
      "administrationFee": 140,
      "features": ["driveway", "back-garden", "patio", "double-glazing", "wheelchair-accessible"],
      "fullCircleId": 123456,
      "useDevelopmentAddress": false,
      "building": "Example building",
      "street": "22 Pretend Road",
      "town": "Faketon",
      "postcode": "NO7 7RU",
      "fullMarketPrice": 230000,
      "depositPercentage": 10,
      "monthlyServiceCharge": 20,
      "annualGroundRent": 2000,
      "reservationFee": 1000,
      "minSharePercentage": 40,
      "subsidisedAsYearlyPercent": true,
      "subsidisedRent": 8,
      "monthlyRent": 750,
      "rentalDeposit": 900,
      "minTenancyMonths": 12,
      "maxTenancyMonths": 20
    }
  ]
}

# Label conventions

Possible values for some fields need to match available values in Keaze. Find below Keaze label convention for those fields.

# Scheme groups

  • For sale
Label Description
shared-ownership Scheme that allows buyers to own a share and then rent the part they do not own at a reduced rate. Display value: Shared ownership.
help-to-buy Scheme that offers an equity loan where the government lends money to buy a newly-built home. Display value: Help to Buy only.
first-dibs Scheme to ensure that new, lower-cost homes in the capital are marketed and sold exclusively to Londoners and UK-based buyers first. Display value: First Dibs only.
help-to-buy-and-first-dibs Combine two previous schemes. Display value: Help to Buy & First Dibs.
discounted-market-sale Low-cost home ownership product where a housing provider offers a discount on the purchase of a new build property. Display value: Discounted market sale.
private-sale The option to use when you want to sale a property in the private market. Display value: Private sale.
  • To rent
Label Description
london-living-rent Scheme for middle-income households who now rent and want to build up savings to buy a home. Display value: London living rent.
discount-market-rent Offers home seekers the opportunity to rent a home at a rent that is 20% less than the market rate. It is also sometimes known as Intermediate Rent. Display value: Discounted market rent.
rent-to-buy Scheme that allows you to rent a property for less than the market price for a set amount of time, in which you are expected to use the money saved from the lower rent for a deposit to buy the property after the tenancy ends. Display value: Rent to Buy (Outside London).
private-rent The option to use when you want to rent a property in the private market. Display value: Private rent.

# Availability status

The labels are the same regardless if the property is for sale or to rent, but the meaning depends on the purpose.

  • For sale
Label Description
coming-soon The property is listed for sale soon. Display value: Coming soon.
available The property is available for sale. Display value: For sale.
under-offer The property is currently under offer. Display value: Sale Under offer.
closed The property was sold. Display value: Sold.
  • To rent
Label Description
coming-soon The property is listed to rent soon. Display value: Coming soon.
available The property is available to rent. Display value: To rent.
under-offer The property is currently under offer. Display value: Rent under offer.
closed The property is currently rented. Display value: Rented.

# Property types

Property types (or building types) fields to describe the kind of property for sale or to rent.

Label Description
flat Flats are mostly single-level residential properties comprising of a set or rooms all located on one floor. Display value: Flat.
semi-detached-house Property attached to just one neighbouring house as part of a block of just two houses. Display value: Semi-detached house.
detached-house A stand-alone residential structure that does not share outside walls with another house or building. Display value: Detached house.
terraced-house One of a row of similar houses joined together by their side walls. Display value: Terraced house.
end-of-terrace-house A house attached to just one neighbour that in its turn is attached to two neighbours. Display value: End of terrace house.
bungalow Single-storey detached house or has a second storey built into a sloping roof. Display value: Bungalow.
maisonette A set of rooms for living in typically on two storeys as part of a larger building with a separate entrance from rest of the building. Display value: Maisonette.
studio A single room with cooking facilities which has its own bathroom attached. Display value: Studio.
house The default value to use when the house is not in any of the previous categories. Display value: House.

# Property features

Features are grouped in different categories, although these categories are just for organizational purposes. When defining features, just add all applicable, and separate them by comma.

  • Parking
Label Description
off-street-parking Whether the property has Off street parking facility available.
on-street-parking Whether On street/resident parking facility is available.
underground-parking Whether the property has Underground parking facility available.
driveway Whether the property has Driveway parking facility available.
single-garage Whether Single garage parking facility is available.
double-garage Whether Double garage parking facility is available.
  • Outside space: What outside areas are available.
Label Description
back-garden The property has access to a back garden area.
communal-garden The property has access to a communal garden.
enclosed-garden Whether enclosed garden outside area is available.
front-garden Whether the front garden outside area is available.
private-garden Whether the property has a private garden.
rear-garden Whether the property has a rear garden.
terrace Whether the property has a terrace.
patio Whether the property has a patio.
  • Others
Label Description
wheelchair-accessible Whether the property is wheelchair accessible.
pets-allowed Whether it is allowed to have pets.
central-heating Whether the property has central heating.
double-glazing Whether the property has double glazed windows.
lift-access Whether the property has lift access.

# Furniture status labels

  • furnished
  • part-furnished
  • unfurnished

# Floor labels

Floor in which the entrance of the property is located. The layout of floors within a multi-storey building is defined as follows:

Label Description
ground The entrance floor of the property is on the ground floor.
1 The entrance floor of the property is on the 1st floor.
2 The entrance floor of the property is on the 2nd floor.
3 The entrance floor of the property is on the 3rd floor.
4 The entrance floor of the property is on the 4th floor.
5 The entrance floor of the property is on the 5th floor.
6 The entrance floor of the property is on the 6th floor.
7 The entrance floor of the property is on the 7th floor.
8 The entrance floor of the property is on the 8th floor.
9 The entrance floor of the property is on the 9th floor.
10+ The entrance floor of the property is higher than the 9th floor.
lower The entrance floor of the property is on the lower ground.
basement The entrance floor of the property is on the basement.