# Listing details
# Overview
Listings are created to advertise properties, but unlike other platforms, in Keaze a listing can advertise a single property or a group of properties from the same development.
The listing details will contains all the relevant information, including gallery images, videos, brochures and detailed specifications.
When the listing advertises multiple properties and you want to get the list of properties, you can make an extra call to the API to get that list, or alternatively, you can use a single request to get both, the listing details and the list of properties. When the listing advertises a single property, the details of the property will come in one of the listing fields.
To know if the listings is advertising a single property or multiple properties, check the field singleProperty. If true, the propertyDetails field of the listing details will contain the details for the property de listing is advertising.
# Endpoints
There are two basic endpoints, one to get the listing details and another to get all the properties the listing is advertising, but there are some alternative endpoints to deal with some different scenarios.
To get the listing details use the endpoint:
GET /api/rest/portal/listings/{listing-id}
Where listing-id is the listing reference id.
The same way as when searching listings, below headers are not required, but default values will be used if they are omitted.
| Name | Possible values | Default value |
|---|---|---|
Accept-Version | number, indicating the version | Last version available |
Portal-Id | number, indicating the portal id | Keaze portal id |
Depending on the amount of bedrooms the customer is interested in, you can use the QueryString parameter bedrooms[] to make the listing return the minimum prices based on that parameter. Notice you can request multiple values by repeating the parameter, example:
?bedrooms[]=1&bedrooms[]=2.
To get the list of properties being advertised by the listing (when it's no a single property listing) use the endpoint:
GET /api/rest/portal/listings/{listing-id}/properties
The same specifications for headers and the parameter bedrooms[] apply. When using the parameter bedrooms[], only properties matching the total amount of bedrooms requested will be returned.
# Alternative endpoints
If you want to get the listing details and the list of properties in the same response, you can use the endpoint:
GET /api/rest/portal/listings/{listing-id}/full-details
The response will contain an object with three fields:
listing: an object with the listing detailsproperties: the collection of properties. When the listing issinglePropertythe collection will be empty.checkEligibility: whentrueif means that the register interest process will require some extra fields to check the eligibility to the listing or any of its properties. This information can be used to customize the call to action.
There are analogous alternative endpoints for scenarios where you use friendly urls and don't expose the id of the listings, but their slug.
To get the listing details use the endpoint:
GET /api/rest/portal/listings/slug/{listing-slug}
To get the list of properties being advertised by the listing use the endpoint:
GET /api/rest/portal/listings/slug/{listing-slug}/properties
To get the listing details, the list of properties and the field checkEligibility, use the endpoint:
GET /api/rest/portal/listings/slug/{listing-slug}/full-details
Where listing-slug is the listing slug field returned in any of its resources.
For all endpoints available to get listing details, there is support for parameter ignore_visibility. When this parameter is sent with value 1 or true, listings that haven't been published yet can be previewed.
# API response structure
All responses are JSON encoded, and when the request is correct, they will have the following fields.
# Listing fields
When requesting listing details, a JSON containing the following fields will be returned.
| Field name | Type | Nullable | Description |
|---|---|---|---|
id | number | false | Reference Id to use when calling API for details. |
name | string | false | Listing name to display. |
slug | string | false | Slug to use in friendly urls to identify the listing. |
singleProperty | boolean | false | true when the listings is advertising a single property. |
propertyDetails | object | true | Object containing the property details when the listing is single property. |
schemes | array | false | Array that contains details about the schemes for the listing. Every item is an object containing three fields: text (label of the tag), slug (Slug of the scheme) & color (hexadecimal color value, starting with #) |
housingProvider | object | false | Object that contains the id, name, contactEmail and logoUrl of the housing provider that owns the listing. |
propertyTypeGroup | string | false | A text with the general property type, which match the facet type. Example: House, Flat. |
propertyType | string | false | A text with a more specific property type. Example: Bungalow, Terraced house. |
availabilityStatus | object | false | Object that contains the code & name of the availability status. Regardless the occupancy type, there are only 4 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 colors to each status. |
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), as well as two more fields that could be empty: alternativeText and caption. All images match the aspect ratio 16x9. |
videos | array | true | Array that contains videos urls and some extra details like the embed iframe code and the thumbnail image. For some videos there are not available thumbnail images. |
brochures | array | true | Array that contains urls to pdf documents. |
featured | boolean | false | Featured listing. |
forSale | boolean | false | The listing is for sale, otherwise is to rent. |
firstDibs | boolean | false | The listing is under a first dibs scheme, where it's only available for Londoners for a period of time. |
favourite | boolean | true | The listing is in the customer's favourite list. When there is no signed-in customer, this value will be null. |
createdAt | string | false | Date-time when the listing was created. |
| 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 the the local authority details. |
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 want to show an image instead of calling Google Map. |
| Descriptions | |||
longDescription | string | true | The full description of the listing. |
localAreaName | string | true | Name of the local area. |
localAreaDescription | string | true | Description of the local area. |
specifications | array | true | Array of objects, where each one contains three fields: name, description and imageUrls |
termsAndConditions | string | true | Terms and conditions. |
disclaimer | string | true | Disclaimer. |
| Premises details | |||
newBuild | boolean | false | true is the listing if for new build properties. |
bedrooms | array | false | An array containing the different amount of bedrooms of the listing properties. Its values can be altered based on the search filters. |
bathrooms | array | true | An array containing the different amount of bathrooms of the listing properties. Its values can be altered based on the search filters. |
receptionRooms | array | true | An array containing the different amount of reception rooms of the listing properties. Its values can be altered based on the search filters. |
furnitureStatus | array | true | An array containing the different furniture status of the listing properties. Its values can be altered based on the search filters. 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). |
| For sale | |||
fullMarketPrice | number | true | The minimum full price. |
depositPercentage | number | true | The minimum deposit percentage. |
depositValue | number | true | The minimum deposit value. |
isSharedOwnership | boolean | false | The listing scheme is shared ownership, so there's a share to buy and the rest to rent. |
minSharePercentage | number | true | The minimum share percentage if isSharedOwnership. |
minShareValue | number | true | The minimum share value if isSharedOwnership. |
subsidisedMonthlyRent | number | true | The minimum amount to pay for rent of the part you don'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. |
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. |
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. |
| SEO | |||
headline | string | false | Page headline. |
titleTag | string | false | Page html title. |
metaKeywords | string | false | Page meta keywords. |
metaDescription | string | false | Page meta description. |
# Property details fields
When requesting the list of properties in a listing, a JSON object containing the field data will be returned. That field is an array of properties, where each property will have the following structure.
Notice that 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. |
propertyNumber | string | false | Number to identify the property. |
schemes | array | false | Array that contains details about the schemes for the listing. Every item is an object containing three fields: text (label of the tag), slug (Slug of the scheme) & color (hexadecimal color value, starting with #) |
propertyType | string | false | A text with a more specific property type. Example: Bungalow, Terraced house. |
availabilityStatus | object | false | Object that contains the code & name of the availability status. Regardless the occupancy type, there are only 4 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 colors to each status. |
fullSpecifications | string | true | A full description of the property. |
floorplans | array | false | Array containing the property floorplans. Every object has the original image url, the thumbnailUrl, and two more fields that could be empty: alternativeText and caption. |
forSale | boolean | false | The property is for sale, otherwise is to rent. |
firstDibs | boolean | false | The property is under a first dibs scheme, where it's only available for Londoners for a period of time. |
firstDibsExpirationDate | string | true | If the property is firstDibs the first dibs expiration date. When the property availability status is coming soon, this date could be null. |
| Premises details | |||
newBuild | boolean | false | true if the property is new build. |
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. |
floorArea | number | true | Floor are in square meters. |
rooms | array | No | Collection of property rooms (empty if none). Every item has: name, additionalDetails, units (foot or metre), width, length and floorArea. Name and additional details are free texts, up to 255 chars length, while width, length and floorArea are numbers expressed in the provided units. Only name and units are required. |
numberOfFloors | number | true | Total number of floors the property has. |
floor | object | true | Entrance floor. Object containing: name and level. name is a readable text that usually ends with the word floor, like Ground floor or Basement, while level is the corresponding level number for the floor that can be used for sorting purposes, example 0 for Ground floor, -2 for Basement and 3 for 3rd floor. for sorting purposes |
tenure | string | false | Condition on which a property is held: leasehold or freehold. |
leaseYears | number | true | When the tenure is leasehold, the number of year the lease lasts. |
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). |
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). |
| For sale | |||
fullMarketPrice | number | true | The minimum full price. |
depositPercentage | number | true | The minimum deposit percentage. |
depositValue | number | true | The minimum deposit value. |
isSharedOwnership | boolean | false | The property scheme is shared ownership, so there's a share to buy and the rest to rent. |
minSharePercentage | number | true | The minimum share percentage if isSharedOwnership. |
minShareValue | number | true | The minimum share value if isSharedOwnership. |
subsidisedMonthlyRent | number | true | The minimum amount to pay for rent of the part you don'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. |
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. |
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. |
# Understanding prices fields
Although listings and properties bring all available prices fields, their use depends on the occupancy type and the schemes.
As Keaze is an update of a legacy system where any of the price fields could be null; some or even all the relevant prices 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, regarding the prices fields, three different cases for sale properties:
- Standard: There's a
fullMarketPrice, and to buy the property, it's necessary to pay adepositValue. - Shared ownership: There's a share to buy and the rest to rent. The minimum share to buy is returned in the field
minSharePercentageand the amount (computed from the full market price) is returned inminShareValue. The monthly rent for the rest is returned in the fieldsubsidisedMonthlyRent. ThedepositValueis 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
maxGovernmentLoanPercentwill contain the percent of the government loan (usually 20 or 40, depending if the property is in London or not), andmaxGovernmentLoanValuethe amount it represents out of thefullMarketPrice.
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 don't 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 whentenureis 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's 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 usually no specified by the housing providers.
administrationFee is the other relevant field for properties to rent, but it's not either common for housing providers to set this value.
# Displaying EPC charts
EPC stands for Energy Performance Certificates. They are documents that contain information about a property’s energy use and typical energy costs, as well as recommendations about how to reduce energy use and save money.
They gives a property an energy efficiency rating from A (most efficient) to G (least efficient), and provide a little colored chart which shows how well the property is rated in terms of energy efficiency.
Instead of uploading the EPC charts images or documents, Keaze generates the charts from the numerical values, for both, the energy rating and the environmental impact rating.
For new build properties, the numerical value is considered as a predicted value, while for resale properties, two values are possible, the first one is the current value, and the second one, if provided, is the potential value.
Example of the Energy Efficiency Rating chart 
Example of the Environmental Impact Rating chart 