Welcome to the Bayut API documentation.
This is the "Getting Started" Guide for the Bayut REST API, listed on the RapidAPI Platform.
Bayut API helps you to quickly extract clean, structured and reliable data from bayut.com, effortlessly.
It makes it super easy to programmatically scrape up-to-date property data from the Bayut website, in JSON format.
Using this API, you can search for UAE real estate properties, look up Dubai transaction, find agents, agencies, developers, and much more.
💡 Checkout our swagger documentation for the details on each endpoint!
Before getting started, you must first get your API Key to authenticate your calls. You'll need to pass it in the headers, along with the requests, to use the API smoothly.
Header -
x-rapidapi-key: [RAPIDAPI_KEY]
Wondering how to subscribe to Bayut API and get your API Key? Read this step by step guide -
API's Base URL:
Endpoints: · Locations Search · Properties Search · Property Info · Agency Info · Agencies by Name · Agencies by Locations · Developers Search · Amenities Search · Agent Info · Agents by Name · Agents by Filters · Agents in Agency · Transactions
This endpoint helps you find places in UAE (like cities, streets, neighbourhoods, buildings) based on your search query.
This endpoint works like an auto-complete. When a user types something like "dub" or "abu", it returns matching locations such as "Dubai" or "Abu Dhabi" along with their sub-areas. Each result includes details like IDs, location hierarchy, and coordinates.
GET /locations_search?query={query}
GET /locations_search?query={query}&page={page}&langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
query | string | ✅ Yes | The search term (e.g., "dub" , "abu" ) — usually what your user types into a search box. |
page | integer | ❌ No | Pagination index (starting from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
Each location in the response includes a unique id
. You can plug them into other endpoints like Properties Search
, Agencies by Location
, or Agents by Filters
to filter results for specific locations.
This way, your app can support dynamic, location-aware browsing and filtering.
Returns a list of real estate listings from Bayut based on the given filters.
You can search by purpose (for-sale / for-rent), category (like apartments, villas, commercial, etc.), locations, number of rooms/baths, price range, developer, agency, agent, and even include advanced filters like floorplans, 360 tours, amenities, and more.
/properties_search
/properties_search?page={page}&langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
page | integer | ❌ No | Pagination index (starting from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
Field | Type | Description |
---|---|---|
purpose | string | Listing type: for-sale or for-rent |
category | string | Property category (residential , hotel-apartments , apartments , townhouses , villas , penthouse , villa-compound , residential-plots , residential-floors , residential-building , commercial , offices , shops , warehouses , labour-camps , commercial-villas , bulk-units , commercial-plots , commercial-floors , commercial-buildings , factories , industrial-land , mixed-use-land , showrooms , commercial-properties ) |
locations_ids | array of integers | List of location IDs (from /locations_search ). |
index | string | Sort by popular , verified , latest , lowest_price , highest_price , or projects |
is_completed | boolean | true for completed, false for under-construction |
agent_id, agency_id, developer_id | integer | Filters for agent, agency, or developer |
rooms, baths | array of integers | Number of bedrooms/bathrooms (e.g., [1, 2, 3 ]) |
is_furnished | boolean | Filter furnished/unfurnished listings |
completion_percent_min, completion_percent_max | integer | For filtering construction progress |
price_min, price_max | float | Price range (AED) |
area_min, area_max | float | Area range (sqft) |
has_video, has_360_tour, has_floorplan | boolean | Multimedia filters |
amenities | array of strings | Desired amenities (e.g., ["Sauna", "ATM Facility" ]). You can get these from /amenities endpoint. |
completion_date | string | Expected completion date (format: DD-MM-YYYY ) |
sale_type | string | Type of off-plan sale (any , new , resale , by_developer ) |
Example 1 — For Sale
Example 2 — For Rent
This endpoint gives you complete, in-depth details of a single property listing from Bayut, for the given property_id
. The response output would include property's pricing, layout, location, amenities, agent/agency details, photos, videos, floor plans, and more.
You can get the property_id
from:
For example:
https://www.bayut.com/property/details-11065329.html
→ the property ID is 11065329
.Properties Search
endpoint (each result includes an id
).code GET /property/{property_id}
code GET /property/{property_id}?langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
property_id | integer | ✅ Yes | (Path parameter) The unique ID of the property you want to retrieve. |
langs | string | ❌ No | (Query parameter) Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint returns the full profile of a real estate agency on Bayut using the given agency_id
.
It includes details like the agency’s name, logo, contact info, license, location, service areas, performance tier, property stats, and more.
You can get the agency_id
from:
For example:
https://www.bayut.com/companies/k-a-homes-properties-102062/
→ the agency_id is 102062
.agencies_by_name
, agencies_by_locations
, properties_search
, property_info
, or any of the agent-related endpoints.code GET /agency/{agency_id}
code GET /agency/{agency_id}?langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
agency_id | integer | ✅ Yes | (Path parameter) Unique ID of the agency. |
langs | string | ❌ No | (Query parameter) Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint works like an auto-complete for real estate agencies on Bayut.
Enter part of an agency’s name, and it returns matching agencies with details like ID, logo, license info, contact numbers, service areas, property stats, and agents.
code GET /agencies_by_name?query={query}
code GET /agencies_by_name?query={query}&page={page}&langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
query | string | ✅ Yes | Agency name or partial name to search (e.g. "k a" ). |
page | integer | ❌ No | Pagination index (starting from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint helps you find real estate agencies active in specific areas — places where they’ve listed properties on Bayut. It’s useful to discover agencies that operate within a city, community, or any location hierarchy.
Just pass one or more location_ids
(from the Locations Search endpoint), and it returns matching agencies with their name, logo, contact info, license details, service areas, agent count, property stats and more.
code GET /agencies_by_locations?locations_ids={locations_ids}
code GET /agencies_by_locations?locations_ids={locations_ids}&page={page}&langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
locations_ids | string | ✅ Yes | Comma-separated list of location IDs to filter agencies by service areas. Get these from the Locations Search endpoint. |
page | integer | ❌ No | Pagination index (starting from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint works like an auto-complete for real estate developers on Bayut. Enter a full or partial name, and it returns matching developers with their ID, logo, contact info, project stats, service areas, categories and more.
You can use the developer_id
to filter properties in the Properties Search
endpoint.
code GET /developers_search?query={query}
code GET /developers_search?query={query}&page={page}&langs={langs}
Parameter | Type | Required | Description |
---|---|---|---|
query | string | ✅ Yes | Search keyword (full or partial name of the developer). |
page | integer | ❌ No | Pagination index (starts from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint works like an auto-complete for amenities on Bayut. Enter a partial query, and it returns matching amenity names.
You can use these exact strings to filter properties in the Properties Search
endpoint — for example, "Sauna"
, "Gym"
, or "Central Air Conditioning"
.
code GET /amenities_search?query={query}
Name | Type | Required | Description |
---|---|---|---|
query | string | ✅ Yes | A keyword to search for amenity names. |
This endpoint returns the full profile of a real estate agent on Bayut for the given agent_id
.
It provides detailed information such as the agent’s name, bio, experience, photo, contact info, agency, service areas, specialties, stats, languages, social media links and more.
You can get the agent_id
from:
Agents by Filters
, Agents by Name
, or Agents in Agency
endpointsagent
field in responses of endpoints like Properties Search
or Property Info
For example:
https://www.bayut.com/brokers/vishnu-vinod-1852829/
→ the agent_id is 1852829
.code GET /agent/{agent_id}
code GET /agent/{agent_id}?langs={langs}
Name | Type | Required | Description |
---|---|---|---|
agent_id | integer | ✅ Yes | (Path parameter) Unique ID of the agent you want to look up. |
langs | string | ❌ No | (Query parameter) Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
This endpoint works like an auto-complete for real estate agents on Bayut.
Enter a keyword – usually part of the agent’s name – and it returns matching agent profiles with details like name, photo, contact info, agency, service areas, specialties, performance stats, languages, and more.
code GET /agents_by_name?query={query}
code GET /agents_by_name?query={query}&page={page}&langs={langs}
Name | Type | Required | Description |
---|---|---|---|
query | string | ✅ Yes | Keyword to match agent names. |
page | integer | ❌ No | Pagination index (starting from 0 ). |
langs | string | ❌ No | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
Search real estate agents on Bayut based on specific filters like locations (locations_ids
), category (residential
/commercial
), and property purpose (for-sale
/for-rent
).
It returns detailed agent profiles along with their agency info, specialties, contact details, stats, supported languages, and more.
code GET /agents_by_filters
code GET /agents_by_filters?locations_ids={locations_ids}&purpose={purpose}&category={category}&page={page}&langs={langs}
Name | Type | Description |
---|---|---|
locations_ids | string | Comma-separated list of location IDs to filter agents by service areas. Get from Locations Search endpoint. |
purpose | string | Listing intent to filter agents (for-sale or for-rent ). |
category | string | Property category code to filter agents (e.g., residential , commercial , short_term_residential , long_term_residential ). |
page | integer | Pagination index (starting from 0 ). |
langs | string | Comma-separated list of preferred language codes (en , ar , ru , zh ). Defaults to English if not provided. |
Returns a list of agents working at a specific real estate agency on Bayut, for the given agency_id
.
For each agent, you'll get detailed profile information — including name, photo, experience, contact numbers, languages spoken, specialties, service areas, social links, and performance stats like listing counts and TruCheck status.
To get the agency_id
, you can:
For example:
https://www.bayut.com/companies/k-a-homes-properties-102062/
→ agency_id is 102062
Agencies by Name
, Agencies by Locations
, Properties Search
, etc.code GET /agents_in_agency/{agency_id}
code GET /agents_in_agency/{agency_id}?langs={langs}
Name | Type | Required | Description |
---|---|---|---|
agency_id | string | ✅ Yes | (Path parameter) Agency's unique identifier whose agents will be retrieved |
langs | string | ❌ No | (Query parameter) Comma-separated language codes for translated fields. Options: en , ar , ru , zh . Default is en . |
Fetch detailed real estate transaction records across Dubai
using flexible filters like location, price, area, date range, bedroom count, property category, and more.
Each transaction result includes price, property details, location, agent ID, and contract info.
You can also sort results and paginate through them using the page parameter.
code POST /transactions
code POST /transactions?page={page}
Name | Type | Required | Description |
---|---|---|---|
page | integer | ❌ No | Pagination index (starts from 0 ). |
Name | Type | Description |
---|---|---|
purpose | string | Transaction purpose: for-sale or for-rent . |
locations_ids | array of integers | List of location IDs to filter by (get from Locations Search endpoint). |
category | string | Property category code (residential , commercial , villas , apartments , offices , shops , warehouses , factories , labour-camps , commercial-buildings , commercial-properties , residential-plots , commercial-plots , townhouses , residential-building , penthouse , hotel-apartments , industrial-land , mixed-use-land , showrooms , commercial-villas ). |
completion_status | string | Construction status: completed or under-construction . |
contract_type | string | Type of contract: New , Renewal , or All . |
sort_by | string | Sort field: date , amount , rent , builtup_area , beds , plot_area , duration . |
order | string | Sort order: asc or desc . |
beds | array of integers | Filter by number of bedrooms. |
area_min | integer | Minimum built-up area (sqft). |
area_max | integer | Maximum built-up area (sqft). |
price_min | integer | Minimum transaction price (AED). |
price_max | integer | Maximum transaction price (AED). |
start_date | string (YYYY-MM-DD) | Filter from this date (inclusive). |
end_date | string (YYYY-MM-DD) | Filter up to this date (inclusive). |
time_frame | string | Aggregation window: 1m , 3m , 6m , 12m , 36m . |
As of now, this API consists of 13 endpoints, 11 of which use the GET and 2 use POST method. We'll try to add more endpoints in the future and improve its efficiency to provide you with the best Bayut API possible.
If you've any thoughts on it, feel free to share them. We'll appreciate your feedback and try to improve it further.
Our email ID: bayut.restapi@gmail.com
Thanks for reading and happy coding!
PS: We post tutorials, videos, code snippets, and insights related to Bayut and Bayut API. So be sure to follow us on: