SOFTWARE LOGIN

Live property search - Rezi website feed

The Rezi Web feed will allow developers to populate agent’s website with real time data from the software. The data is requested from the web server and returned in a JSON format. You will need to review the guidelines and specification tabs below for further information.


DUE TO THE VOLUME OF DETAILED INFORMATION. THIS CONTENT IS UNAVAILABLE ON A MOBILE DEVICE.

Linkback Requirements
Rezi Search Specification
Linkback Requirements
​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


​Source site
https://www.dezrez.co.uk


​One of the following logos

Dezrez Logo

Dezrez Logo

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


​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.
Rezi Search 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.

​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-Version 1.0
 Content-Type application/json
​Full property details
This URL will return the full details of an individual property.


GET https://api.dezrez.com/api/simplepropertyrole/%ROLEID%?APIKey=


There’s no parameters for this call beyond the API key and the RoleID (See Appendix B).


​Property Search
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).

POST https://api.dezrez.com/api/simplepropertyrole/search?APIKey=


As well as the headers you will need to include a JSON string that contains the following information as a minimum.
Parameter Name TypeExample ValueDescription
 MarketingFlags Collection 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 Name TypeExample ValueDescription
 RoleTypes Collection of string ["Selling"] or ["Letting"] Choose to display just sales or lettings properties. Leave blank to display both
BranchIdList Collection of integer [1] The branch ID to use in the search. If left blank it will return all branches properties.
 MinimumPrice integer 0 Only return properties with this price as a minimum. Please note that the min price and max price need to form a valid range
 MaximumPriceinteger 9999999 Only return properties with this price as a maximum. Please note that the min price and max price need to form a valid range
IncludeStc Booleantrue or false If true will display SoldSTC properties
 PropertyTypesCollection of string
 [“TerracedHouse”] Only return properties that have one of these property types.

See Appendix A
 MinimumBedroomsDecimal number
 0Only return properties with this number of bedrooms as a minimum. The min and max bedrooms must form a valid range.
 MaximumBedrooms Decimal number 99Only return properties with this number of bedrooms as a maximum. The min and max bedrooms must form a valid range.
 MinimumGardens integer 0 Only return properties with this number of Gardens as a minimum. The min and max Gardens must form a valid range.
 MaximumGardens integer 2 Only return properties with this number of Gardens as a maximum. The min and max Gardens must form a valid range.
 MinimumParkinginteger 0 Only return properties with this number of Parking Spaces as a minimum. The min and max Parking Spaces must form a valid range.
 MaximumParkinginteger 2 Only return properties with this number of Parking Spaces as a maximum. The min and max Parking Spaces must form a valid range.
 MinimumTimeOnMarkettime interval
 00:00:00.1234567 Only 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
 MaximumTimeOnMarket time interval 00:00:00.1234567 Only 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.
 SortBy Integer Price: 0
BedroomCount: 1
Date: 2
Alphabetically: 3
 This will sort the results that are returned.
 SortOrder Integer Ascending: 0
Descending: 1
 Sorts the results in the specified order.
AddressString “kings road” Only return properties that have the specified text in any of the address fields.
 LastUpdated Date "2017-03-10T11:51:21.1733229Z" Only return properties that have been updates since the specified date.
 MarketingRoleIds Collection of integer [1, 2] Only return properties with these specific RoleIDs if they are included in the search results. Useful for a favourites search.
​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
PageSizeInteger 10Dictates the number of properties that come through on each page. Default is set to 10.

Maximum of 500, although we recommend keeping it below 100 as our API responses will be much slower beyond that.
PageNumberInteger 1The current page number. Default is set to 1.
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.



​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:


https://docs.rezi.cloud/1EoORoWB8gYvCC8zVrawi0xBTFlOGwpBh4LsXJ9LRfM%3d/41287638.png?v=000000000c1e6c9b


​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 image

Width set:

https://docs.rezi.cloud/1EoORoWB8gYvCC8zVrawi0xBTFlOGwpBh4LsXJ9LRfM%3d/41287638.png?width=100
Setting image widths
Setting image height
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:



​Website Links from Rezi
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/details.html?roleid={RoleId}
www.example.com/properties/{RoleId}
www.example.com/anythingcangohere/{RoleId}
www.example.com/propertiesviaid/{RoleId} which redirects to www.example.com/properties/{otherid}
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
 TotalCount Total number of properties that match search criteria.
 CurrentCount The number of properties returned in the current “page”.
 PageSize The maximum number of properties to return in a page.
 PageNumber The current page number.
 Collection The collection of all properties that match the search results.
Term Term length. E.g. SixMonths (Lettings Only).
 ServiceLevel The customer’s agreement with the landlord e.g FullyManaged or TenantFind (Lettings Only).
 AvailableDate When a property is available from (Lettings Only).
 LetType Not Currently in Use (Lettings Only).
 RoleID This is the unique identifier for each property marketing role. See appendix B for the difference between this and the PropertyID.
 PropertyID This is the unique identifier for a property, you would normally use the RoleID rather than this.
 PropertyStyle Not Currently Used – see Style and Age under the Descriptions node.
 Address Made up of several nodes that contain specific address details including the latlong for google maps.
 RoomCountsDescription Contains room counts for the property, including Bedrooms, Bathrooms and Receptions.
 AmenityDescription Counts for exterior amenities such as Gardens and Garages.
 BranchDetails Contains data regarding the “owning” branch of the property.
 PropertyType Chosen from a pre-defined list found in appendix A of this document.
 Tags Customers 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.
 Images Collection 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.
 SummaryTextDescription The property’s Summary Text for use in lists of properties.
 RoleType Whether the property is a Selling Role or a Letting Role.
 Flags Key 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.
 RoleStatus The current status of the property (Valued, Write up etc).
 EPC Contains EPC information for the property.
 DateInstructed The date the property was instructed.
 LastUpdated The 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.
 ClosingDate Scottish Market only, closing date for notes of interest.
 Price Contains 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.
 Viewpoints Contains co-ordinates for setting the property’s street view on a google map.
 OwningTeam Contains information regarding the “owning” negotiator of the property.
 Documents Contains 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.
 Fees The fee agreed with the property owner.
 Descriptions Contains the property descriptions, including Main Marketing text and room information. Customers may or may not want other text descriptions displayed on their site.

This collection also contains lettings information such as furnishing, pets allowed, housing benefit allowed, etc.
​Full Details Response Data
The Full Details Response will include all the collection data listed above with the following additions.
NodeMeaning
 Features A 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
POST https://api.dezrez.com/api/inboundlead/create?BranchId=&APIKey=
     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-Version 1.0
 Content-Type application/json

The following will need to be included in the JSON body:

Parameter NameTypeExample ValueDescription
 RequestType Object {"SystemName":"General"} The type of request. Can be "Viewing", "Valuation", "PhoneCall", "BrochureRequest", "GenerateContact" or "General".
 SourceType Object {"SystemName":"Website"} The source of the request. Should either be "Website" or "ThirdPartyApp".
 People Collection 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.
 Email String "[email protected]" The enquirer’s email address.
 PhonePrimary String "0845 465 22 22" The enquirer’s phone number.
 DateSubmitted Date "2017-06-15T11:34:23Z" This should be the current time.

The following may be required depending on the RequestType:

Parameter NameTypeExample ValueDescription
 Address String "Ethos Building, Swansea" The address of the property. required for Valuation requests
 PropertyMarketingRoleIds Collection 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.
 Country String "United Kingdom" The country of the property.
 PhoneMobile String "07980123456" A mobile number associated with the enquirer.
 PhoneOther String "01792610000" An alternative number associated with the enquirer.
 PropertyToSell Boolean true/false If the enquirer has a property to sell.
 PropertyToRent Booleantrue/false  If the enquirer has a property to rent.
 Comment String A supporting comment to go along with the request.
 FinancialAdvice Boolean true/false Whether the enquirer requires financial advice or not.
 PartExchange Boolean true/false Whether the enquirer has a property to part exchange.
 BranchIdInteger 7601  The 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.


​Appendix A - Property types

Display NameSystem Name
 Terraced House TerracedHouse
 End of Terrace House EndofTerraceHouse
 Semi Detached House SemiDetachedHouse
 Detached HouseDetachedHouse
 Flat Flat
 Ground Floor Flat GroundFloorFlat
 Apartment Apartment
 Terraced Bungalow TerracedBungalow
 Semi Detached Bungalow SemiDetachedBungalow
 Detached Bungalow DetachedBungalow
 Cottage Cottage
 Town House TownHouse
 Country House CountryHouse
 Chalet Chalet
 Barn Conversion BarnConversion
 Mews HouseMewsHouse
 Ground Floor Maisonette GroundFloorMaisonette
 Maisonette Maisonette
 Penthouse Penthouse
 Plot Plot
 Commercial Property CommercialProperty
 Cluster House ClusterHouse
 Detached Villa DetachedVilla
 Villa Villa
 Semi Detached Villa SemiDetachedVilla
 Village House VillageHouse
 Link Detached House LinkDetachedHouse
 Studio Flat StudioFlat
 Land Land
 Retirement Property RetirementProperty
 Park Home ParkHome
 Commercial Land CommercialLand
 Equestrian Facility EquestrianFacility
 Farm Land FarmLand
 Farm Farm
 Small HoldingSmallholding
 Coach House CoachHouse
 Bungalow Bungalow
 Not Specified NotSpecified
 Mobile Home MobileHome
 Character Property CharacterProperty
 House (unspecified) HouseUnspecified
 Finca Finca
 Serviced Apartment ServicedApartment
 Parking Parking
 Sheltered Housing ShelteredHousing
 House Share HouseShare
 Flat Share FlatShare
 Garage Garage
 Farm House FarmHouse
 Duplex Duplex
 Triplex Triplex
 Longere Longere
 Gite Gite
 Trulli Trulli
 Mill Mill
 Ruins Ruins
 Restaurant Restaurant
 Cafe Cafe
 Commercial Mill CommercialMill
 Castle Castle
 Cave HouseCaveHouse 
Cortijo Cortijo 
Caravan Caravan 
Lodge Lodge 
Log Cabin LogCabin 
 Manor HouseManorHouse 
Stately Home StatelyHome 
Off Plan OffPlan 
Bar/Nightclub BarNightclub 
Shop  Shop
 RiadRiad 
House Boat HouseBoat 
Hotel RoomHotelRoom 
 Block of ApartmentsBlockofApartments 
Private Hall PrivateHall 
Office Office 
Business Park BusinessPark 
Serviced Office ServicedOffice 
Retail Property (High Street) HighStreetRetailProperty 
 Retail Property (Out of Town) OutofTownRetailProperty
Convenience Store  ConvenienceStore
 Commercial Garage CommercialGarage
 Hairdresser/Barber Shop HairdresserShop
 Hotel Hotel
 Petrol Stations PetrolStation
 Post Office PostOffice
 Pub Pub
 Workshop & Retail Space WorkshopRetailSpace
 Distribution Warehouse DistributionWarehouse
 Factory Factory
 Heavy Industrial HeavyIndustrial
 Industrial Park IndustrialPark
 Light Industrial LightIndustrial
 Storage Storage
 Showroom Showroom
 Warehouse Warehouse
 Commercial Development CommercialDevelopment
 Industrial Development IndustrialDevelopment
 Residential Development ResidentialDevelopment
 Data Centre DataCentre
 Healthcare Facility HealthcareFacility
 Marine Property MarineProperty
 Mixed Use MixedUse
 Research & Development Facility ResearchDevelopmentFacility
 Science Park SciencePark
 Guest House GuestHouse
 Hospitality Hospitality
 Leisure Facility LeisureFacility
 Takeaway Takeaway
 Childcare Facility ChildcareFacility
 Place of Worship PlaceofWorship
 Trade Counter TradeCounter
 House of Multiple Occupation HouseofMultipleOccupation
 Sports Facilities SportsFacilities
 Spa Spa
 Campsite & Holiday Village CampsiteHolidayVillage
 Barn Barn
 Stone House StoneHouse
​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.
Diagram
​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.