Website Search API Specification

Website Search API Specification

JSON based API integration

The Rezi Web API allows developers to populate customer's website with real time data from the software by sending specific queries to our API endpoints, it also allows you to post customer leads to Rezi. This gives the web developer full control over what data to display on a customer’s website and how to display it.
This document provides technical information to web developers wishing to integrate a customer's website with Rezi property data and pass customer leads back to Rezi and provides a JSON schema.
Note: The Branch ID, Agency ID & API Key is not permitted to be displayed in any URL for the website; please store this information in a configuration file as variables. Failure to comply will result in the API Key being suspended.

Web guidelines

A requirement of using the Rezi property search framework is that the integrated customer’s website must contain the following:

Text to include

Powered by the Dezrez Rezi API


  1. A copy of the logo may be downloaded and hosted on the customer’s web server
  2. The resolution of the logo may be decreased but the aspect ratio MUST remain the same
  3. Do not animate, rotate, or otherwise distort the logo design

Linkback to

​​Accessing the feed

You will need an API key in order to request any data, you will need to talk to our mutual client for them to request one for you to use.

Property search functionality

Returning the live JSON property data is achieved by submitting a standard HTTP request to our servers. Our servers will return the data in JSON format based on the search criteria included in the request. You can then make a separate API request for full property data for properties included in the search results when required.
It is up to you how you build your feed processor and request data from the API, the below information will help you request and process the correct data.

Request URLs

The two URLs which form the basis for getting property data for an customer's website, both require the following request headers:
Header NameValue
Rezi-Api-Version1.0
Content-Typeapplication/json

Full property details

This URL will return the full details of an individual property.
There are no parameters for this call beyond the API key and the RoleID (See Appendix B).
This URL will returns an overview of all current Sales and Lettings properties that are on the market with the customer (STC, Exchanged and Let Agreed are not returned by default).

As well as the headers you will need to include a JSON string that contains the following information as a minimum:
Parameter NameTypeExample ValueDescription
MarketingFlagsCollection of string["ApprovedForMarketingWebsite"]Must be set to pull through properties that have been approved for marketing on the website. Other values that can be included are "Featured", "Reduced", "UnderOffer" and "OfferAccepted".

You may well want to further filter the kind of properties that are returned by our API, below is a list of the current valid filters:
Parameter NameTypeExample ValueDescription
RoleTypesCollection of string["Selling"] or ["Letting"]Choose to display just sales or lettings properties. Leave blank to display both
BranchIdListCollection of integer[1]The branch ID to use in the search. If left blank it will return all branches' properties.
MinimumPriceinteger0Only return properties with this price as a minimum. Please note that the min price and max price need to form a valid range
MaximumPriceinteger9999999Only return properties with this price as a maximum. Please note that the min price and max price need to form a valid range
IncludeStcBooleantrue or falseIf true will display SoldSTC properties
PropertyTypesCollection of string["TerracedHouse"]Only return properties that have one of these property types. See Appendix A
MinimumBedroomsDecimal number0Only return properties with this number of bedrooms as a minimum. The min and max bedrooms must form a valid range.
MaximumBedroomsDecimal number99Only return properties with this number of bedrooms as a maximum. The min and max bedrooms must form a valid range.
MinimumGardensinteger0Only return properties with this number of Gardens as a minimum. The min and max Gardens must form a valid range.
MaximumGardensinteger2Only return properties with this number of Gardens as a maximum. The min and max Gardens must form a valid range.
MinimumParkinginteger0Only return properties with this number of Parking Spaces as a minimum. The min and max Parking Spaces must form a valid range.
MaximumParkinginteger2Only return properties with this number of Parking Spaces as a maximum. The min and max Parking Spaces must form a valid range.
MinimumTimeOnMarkettime interval00:00:00.1234567Only return properties that have been on the market at least this long. HH:MM:SS format. Minimum and Maximum time must form a valid range
MaximumTimeOnMarkettime interval00:00:00.1234567Only return properties that have been on the market for less time than this. HH:MM:SS format. Minimum and Maximum time must form a valid range
TagsCollection of string["new"]Only return properties that have at least one of these tags. Tags are Customer Defined to add features to specific properties like “swimming pool” or “Garage”. These can be used to add advanced searches to the website.

Pagination Parameters

The feed will paginate the data with the defaults of 10 properties per page and will return page 1. To change these you will need to pass through the following parameters:
Parameter NameTypeExample ValueDescription
RoleTypesCollection of string["Selling"] or ["Letting"]Choose to display just sales or lettings properties. Leave blank to display both
BranchIdListCollection of integer[1]The branch ID to use in the search. If left blank it will return all branches' properties.
MinimumPriceinteger0Only return properties with this price as a minimum. Please note that the min price and max price need to form a valid range
MaximumPriceinteger9999999Only return properties with this price as a maximum. Please note that the min price and max price need to form a valid range
IncludeStcBooleantrue or falseIf true will display SoldSTC properties
PropertyTypesCollection of string["TerracedHouse"]Only return properties that have one of these property types. See Appendix A
MinimumBedroomsDecimal number0Only return properties with this number of bedrooms as a minimum. The min and max bedrooms must form a valid range.
MaximumBedroomsDecimal number99Only return properties with this number of bedrooms as a maximum. The min and max bedrooms must form a valid range.
MinimumGardensinteger0Only return properties with this number of Gardens as a minimum. The min and max Gardens must form a valid range.
MaximumGardensinteger2Only return properties with this number of Gardens as a maximum. The min and max Gardens must form a valid range.
MinimumParkinginteger0Only return properties with this number of Parking Spaces as a minimum. The min and max Parking Spaces must form a valid range.
MaximumParkinginteger2Only return properties with this number of Parking Spaces as a maximum. The min and max Parking Spaces must form a valid range.
MinimumTimeOnMarkettime interval00:00:00.1234567Only return properties that have been on the market at least this long. HH:MM:SS format. Minimum and Maximum time must form a valid range
MaximumTimeOnMarkettime interval00:00:00.1234567Only return properties that have been on the market for less time than this. HH:MM:SS format. Minimum and Maximum time must form a valid range
TagsCollection of string["new"]Only return properties that have at least one of these tags. Tags are Customer Defined to add features to specific properties like “swimming pool” or “Garage”. These can be used to add advanced searches to the website.

Examples

Below is a link to a postman collection with a test API key so you can see how the data is returned from our API.
Download Postman Collection

Property Status

Sometimes, Customer's don't want their STC or Under Offer properties to be advertised as such. You need to look at the "Flags" array, as well as the "RoleStatus" object to establish how a property should be marketed. 
The flags to be tested for have a SystemName of "UnderOffer" or "OfferAccepted". This may vary based on client needs.

Document URLs

The URLs for documents (photos, brochures, floor plans, etc.) may contain a random string within the URL, as highlighted below:

Image Manipulation

Images are returned in the JSON collection as URLs, the URL will return a full-sized image, but it is advisable to add a width or height parameter in order to optimise your images for web pages.

Full size:


Width set:


Height set:



Note that you can either set a width or a height, not both.

Additionally, you can set the quality of the images by adding the "quality" parameter. This accepts a value between 1 and 100, with 100 being best quality and 1 being worst quality. 

Images will usually come through in the feed with a versioning string, for example:

You will need to query the URL for the presence of this string before deciding whether to add “?&width” or just “&width”, so if there is a string your request would look like this:
It is not uncommon for Customer's to want to send some correspondence from Rezi that automatically generates links to properties on their website. Rezi can do this if the website has the property RoleID (see appendix B) in the URL structure.
This link is not required to be the main link to properties in the case of SEO purposes, and can just redirect to the necessary page.

Below are some examples of valid links:
www.example.com/properties/-/-/{RoleId} (where the hyphens are usually specific to the property)

Response Data

The Rezi web feed returns property data in a JSON format, when requesting the full details for a property please use the RoleID and not the propertyID (see appendix B).
Please Note not all of the properties that appear in the feed are meant to appear on the customer's website. As the feed can be used for multiple purposes you will need to filter by the flag “ApprovedForMarketingWebsite”. You can do this by using the "MarketingFlags" parameter, and setting it to ["ApprovedForMarketingWebsite"].
For the majority of the information in the feed there will be multiple nodes for each. Most will contain a system name and a display name. The System name is used for filtering by while the Display name is used for populating the website.

NodeMeaning
TotalCountTotal number of properties that match search criteria.
CurrentCountThe number of properties returned in the current “page”.
PageSizeThe maximum number of properties to return in a page.
PageNumberThe current page number.
CollectionThe collection of all properties that match the search results.
TermTerm length. E.g. SixMonths (Lettings Only).
ServiceLevelThe customer’s agreement with the landlord e.g FullyManaged or TenantFind (Lettings Only).
AvailableDateWhen a property is available from (Lettings Only).
LetTypeNot Currently in Use (Lettings Only).
RoleIDThis is the unique identifier for each property marketing role. See appendix B for the difference between this and the PropertyID.
PropertyIDThis is the unique identifier for a property, you would normally use the RoleID rather than this.
PropertyStyleNot Currently Used – see Style and Age under the Descriptions node.
AddressMade up of several nodes that contain specific address details including the latlong for google maps.
RoomCountsDescriptionContains room counts for the property, including Bedrooms, Bathrooms and Receptions.
AmenityDescriptionCounts for exterior amenities such as Gardens and Garages.
FloodErosionDescription
 Information on any flood risks for the property.
RightsRestrictionsDescription
Information on any legal obligations applicable to the property.
BranchDetailsContains data regarding the “owning” branch of the property.
PropertyTypeChosen from a pre-defined list found in appendix A of this document.
TagsCustomers can create their own tags in Rezi and assign them to properties. These can be included in the search filters to create custom property collections on the website.
ImagesCollection of property images, you only really need the URL and image order from here. Be careful with IsPrimaryImage as setting this value is optional within Rezi.
SummaryTextDescriptionThe property’s Summary Text for use in lists of properties.
RoleTypeWhether the property is a Selling Role or a Letting Role.
FlagsKey marketing flags for the property, these may override the Rolestatus – for instance RoleStatus might be OfferAccepted but you would only show the property as STC if the flag was set for STC.
RoleStatusThe current status of the property (Valued, Write up etc).
EPCContains EPC information for the property.
DateInstructedThe date the property was instructed.
LastUpdatedThe date the property was last updated in Rezi. If you are harvesting data, use this to trigger a call to get the latest property information.
ClosingDateScottish Market only, closing date for notes of interest.
PriceContains information about the property price. PriceQualifierType contains pre-defined values such GuidePrice or OffersInExcessOf while PriceText is a free text box in the Rezi front end.
Deposit
Deposit Information (Lettings Only).
ViewpointsContains co-ordinates for setting the property’s street view on a google map.
OwningTeamContains information regarding the “owning” negotiator of the property.
DocumentsContains information regarding any documents attached to the property, this includes Floorplans, EPCs, Brochures, etc. DocumentType and DocumentSubType are important here for deciding how to display each document.
FeesThe fee agreed with the property owner.
DescriptionsContains the property descriptions, including Main Marketing text and room information. This is where you’ll see things like Floorplan and RoomDimensions (these are optional).

Full Details Response Data

The Full Details Response will include all the collection data listed above with the following additions.
NodeMeaning
FeaturesA collection of “Key Feature” bullet points, this is a child of the description node. Please note the order number value as this the order the Customer wishes them to be displayed in.

Inbound leads functionality

The Inbound Leads end points allows you to send customer enquiries to a Rezi endpoint via a HTTP POST with a JSON body so that they are made available to the customer within the Rezi Software – e.g. Viewing Requests, Valuation Request. The leads are processed by our endpoint in real time so information submitted through your website should be available in Rezi almost straight away.

Request Url

Important: You must supply the relevant BranchId for this request as a query parameter. If you do not know your Branch ID's, please contact our Support Team who will be able to advise.

Request Headers

The following headers will need to be set to successfully send data:
Header NameValue
Rezi-Api-Version1.0
Content-Typeapplication/json

The following will need to be included in the JSON body:
Parameter NameTypeExample ValueDescription
RequestTypeObject{"SystemName":"General"}The type of request. Can be "Viewing", "Valuation", "PhoneCall", "BrochureRequest", "GenerateContact" or "General".
SourceTypeObject{"SystemName":"Website"}The source of the request. Should either be "Website" or "ThirdPartyApp".
PeopleCollection of Objects[{"Title":"Mr", "FirstName":"Joe", "LastName":"Bloggs"}]The names of the enquirer(s) involved. There can be multiple people, but only one is required. Title is not required.
EmailString"[email protected]"The enquirer’s email address.
PhonePrimaryString"0845 465 22 22"The enquirer’s phone number.
DateSubmittedDate"2017-06-15T11:34:23Z"This should be the current time.

The following may be required depending on the RequestType:
Parameter NameTypeExample ValueDescription
AddressString"Ethos Building, Swansea"The address of the property. Required for Valuation requests.
PropertyMarketingRoleIdsCollection of Integers[1,2,3]The role IDs of the relevant properties. Required on viewing, phonecall, brochure, and contact requests.

The following parameters are optional:
Parameter NameTypeExample ValueDescription
PostcodeString"SA1 8AS"The postcode of the property.
CountryString"United Kingdom"The country of the property.
PhoneMobileString"07980123456"A mobile number associated with the enquirer.
PhoneOtherString"01792610000"An alternative number associated with the enquirer.
PropertyToSellBooleantrue/falseIf the enquirer has a property to sell.
PropertyToRentBooleantrue/falseIf the enquirer has a property to rent.
CommentString(empty)A supporting comment to go along with the request.
FinancialAdviceBooleantrue/falseWhether the enquirer requires financial advice or not.
PartExchangeBooleantrue/falseWhether the enquirer has a property to part exchange.
BranchIdInteger7601The branch that this leads relates to.

Examples

Below is a link to a postman collection with a test API key so you can see how the data is returned from our API.
Download Postman Collection

Appendix A - Property types

Display NameSystem Name
Terraced HouseTerracedHouse
End of Terrace HouseEndofTerraceHouse
Semi Detached HouseSemiDetachedHouse
Detached HouseDetachedHouse
FlatFlat
Ground Floor FlatGroundFloorFlat
ApartmentApartment
Terraced BungalowTerracedBungalow
Semi Detached BungalowSemiDetachedBungalow
Detached BungalowDetachedBungalow
CottageCottage
Town HouseTownHouse
Country HouseCountryHouse
ChaletChalet
Barn ConversionBarnConversion
Mews HouseMewsHouse
Ground Floor MaisonetteGroundFloorMaisonette
MaisonetteMaisonette
PenthousePenthouse
PlotPlot
Commercial PropertyCommercialProperty
Cluster HouseClusterHouse
Detached VillaDetachedVilla
VillaVilla
Semi Detached VillaSemiDetachedVilla
Village HouseVillageHouse
Link Detached HouseLinkDetachedHouse
Studio FlatStudioFlat
LandLand
Retirement PropertyRetirementProperty
Park HomeParkHome
Commercial LandCommercialLand
Equestrian FacilityEquestrianFacility
Farm LandFarmLand
FarmFarm
Small HoldingSmallholding
Coach HouseCoachHouse
BungalowBungalow
Not SpecifiedNotSpecified
Mobile HomeMobileHome
Character PropertyCharacterProperty
House (unspecified)HouseUnspecified
FincaFinca
Serviced ApartmentServicedApartment
ParkingParking
Sheltered HousingShelteredHousing
House ShareHouseShare
Flat ShareFlatShare
GarageGarage
Farm HouseFarmHouse
DuplexDuplex
TriplexTriplex
LongereLongere
GiteGite
TrulliTrulli
MillMill
RuinsRuins
RestaurantRestaurant
CafeCafe
Commercial MillCommercialMill
CastleCastle
Cave HouseCaveHouse
CortijoCortijo
CaravanCaravan
LodgeLodge
Log CabinLogCabin
Manor HouseManorHouse
Stately HomeStatelyHome
Off PlanOffPlan
Bar/NightclubBarNightclub
ShopShop
RiadRiad
House BoatHouseBoat
Hotel RoomHotelRoom
Block of ApartmentsBlockofApartments
Private HallPrivateHall
OfficeOffice
Business ParkBusinessPark
Serviced OfficeServicedOffice
Retail Property (High Street)HighStreetRetailProperty
Retail Property (Out of Town)OutofTownRetailProperty
Convenience StoreConvenienceStore
Commercial GarageCommercialGarage
Hairdresser/Barber ShopHairdresserShop
HotelHotel
Petrol StationsPetrolStation
Post OfficePostOffice
PubPub
Workshop & Retail SpaceWorkshopRetailSpace
Distribution WarehouseDistributionWarehouse
FactoryFactory
Heavy IndustrialHeavyIndustrial
Industrial ParkIndustrialPark
Light IndustrialLightIndustrial
StorageStorage
ShowroomShowroom
WarehouseWarehouse
Commercial DevelopmentCommercialDevelopment
Industrial DevelopmentIndustrialDevelopment
Residential DevelopmentResidentialDevelopment
Data CentreDataCentre
Healthcare FacilityHealthcareFacility
Marine PropertyMarineProperty
Mixed UseMixedUse
Research & Development FacilityResearchDevelopmentFacility
Science ParkSciencePark
Guest HouseGuestHouse
HospitalityHospitality
Leisure FacilityLeisureFacility
TakeawayTakeaway
Childcare FacilityChildcareFacility
Place of WorshipPlaceofWorship
Trade CounterTradeCounter
House of Multiple OccupationHouseofMultipleOccupation
Sports FacilitiesSportsFacilities
SpaSpa
Campsite & Holiday VillageCampsiteHolidayVillage
BarnBarn
Stone HouseStoneHouse

Appendix B – A brief explanation of RoleIDs

You will notice while working with the Rezi API that Rezi has two IDs assigned to properties in the data collection; a PropertyID and a RoleID and for the purposes of marketing properties from Rezi the RoleID is more important that the PropertyID.
A property in Rezi is partly defined by it’s address and when a property’s details are added to Rezi it is assigned a PropertyID. This PropertyID is unique and in theory there will not be another PropertyID with that address within that Customer’s Rezi data.

So how does Rezi handle multiple marketing cycles where a property is sold and sold again by the same customer or Let and Let again?

Well, that’s where RoleIDs come in to play. When a property is instructed it gets a RoleID, this unique ID represents a marketing cycle and is a child of the PropertyID. So one PropertyID can have multiple RoleIDs representing multiple marketing cycles. Some might be historic, but there are situations where a property might have multiple active marketing cycles – for example if it is being advertised for sale and for let.

Because there are instances where a collection might include a PropertyID twice – once for Sales and once for Lettings we strongly advise always using the RoleID to identify the properties you are working with and not the PropertyID.

Appendix C - Coordinates

We cannot guarantee the quality of the coordinates stored against a property. The information is initially obtained from the post office based on the postcode entered by the customer. The customer then has the ability to adjust the location and street-view within Rezi.


    • Related Articles

    • Website Search API Form

    • Enterprise API Form

      The below application can only be submitted for active subscribing customers of Rezi Enterprise whom wishes to utilise the Rezi API. This application process allows us to review, store, process the details submitted and ensure security checks are ...
    • Automated lead entries for agents

      When you have integrated your website or property portal into dezrez, the next step is to get the automated lead system developed into your systems. The leads service allows you to post enquiries you receive from visitors on your website directly ...