PropertyFinder | Search | Listing(s) | Brokers | All countries
Pricing
$25.00/month + usage
PropertyFinder | Search | Listing(s) | Brokers | All countries
Extract 150+ data fields per listing including pricing, specs, amenities, agent/broker details, and high-res media across 11+ Property Finder domains. Get real-time property data with 99.9% uptime, 360ยฐ tours, floor plans, and market analytics.
Pricing
$25.00/month + usage
Rating
5.0
(3)
Developer
Muhamed Didovic
Actor stats
1
Bookmarked
109
Total users
7
Monthly active users
4 days ago
Last modified
Categories
Share
Property Finder Scraper
Extract real estate listings, agents, brokers, and projects from Property Finder across multiple countries โ straight to JSON or CSV.
Start from a search URL, an individual property, an agent profile, or a broker agency page. The scraper handles pagination, runs an optional monitoring mode for new listings only, and returns clean, flat output ready for spreadsheets or downstream pipelines.
How it works

๐ Why Use This Scraper?
- Multi-country support โ works on every PropertyFinder regional domain (
.ae,.sa,.bh,.eg,.qa). - Bypasses AWS WAF โ uses PropertyFinder's mobile API endpoint with iOS-spoofed headers; no browser needed.
- Multiple entry points โ search results, individual properties, broker agency pages, agent search, and individual agent pages.
- Pagination handled automatically across all entry types.
- Monitoring mode โ incremental crawls that only return new listings on subsequent runs.
- Built-in proxy rotation โ Apify residential proxies by default; bring your own if you prefer.
- Structured exports โ JSON and CSV.
Overview
The Property Finder Scraper is your go-to tool for extracting property data from Property Finder platforms across multiple countries. Ideal for real estate investors, market analysts, and property researchers, it tracks property details, pricing, and listing information across the Middle East and North Africa. With easy setup and multiple export formats (JSON, CSV), it's perfect for anyone looking to gather comprehensive property data from Property Finder's extensive listings.
๐ Supported Countries
| Country | Domain | Languages |
|---|---|---|
| UAE | propertyfinder.ae | English, Arabic |
| Saudi Arabia | propertyfinder.sa | English, Arabic |
| Bahrain | propertyfinder.bh | English, Arabic |
| Egypt | propertyfinder.eg | English, Arabic |
| Qatar | propertyfinder.qa | English, Arabic |
Any search URL from any of these domains works. You can mix countries, languages, and search filters in a single run.
๐ Supported Inputs
Pass any of the URL types below as startUrls. The scraper auto-detects the type and routes it to the right handler.
| URL type | Example | What you get |
|---|---|---|
| Search results | https://www.propertyfinder.ae/en/search?l=11-18&c=2 | Every listing on every page |
| Filtered search | https://www.propertyfinder.ae/en/search?l=11-18&price_max=1000000 | Listings matching the filters |
| Individual property | https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-dubai-dubai-marina-12345678.html | One listing |
| Broker agency | https://www.propertyfinder.ae/en/broker/arabian-estates-4464 | All listings for that brokerage |
| Broker (agents tab) | https://www.propertyfinder.ae/en/broker/arabian-estates-4464?tab=agents | All agents for that brokerage |
| Agent search | https://www.propertyfinder.ae/en/find-agent/search?location_id=35 | All agents in that location |
| Individual agent | https://www.propertyfinder.ae/en/agent/russell-wilson-298937 | One agent profile |
You can mix URL types โ and country domains โ in a single run.
Not supported: authenticated routes, paid features, non-propertyfinder.* hosts.
๐ฏ Use Cases
| Audience | What they get |
|---|---|
| Real estate investors | Price benchmarking by community, sub-community, and property type; track new listings and price changes over time |
| Brokerage owners & sales managers | Competitor inventory snapshots, agent productivity (listing counts, ratings), super-agent identification |
| Lead-gen / CRM teams | Bulk export of agent and broker contact details (phone, WhatsApp, email) with their active listings |
| Market analysts & researchers | Cross-country property datasets across UAE, Saudi Arabia, Bahrain, Egypt, Qatar |
| Proptech & data startups | Reliable structured input for valuation models, search products, and property recommenders |
| Agencies running paid placements | Track which listings hold premium / spotlight / community-top-spot tiers |
๐ก What Data Can You Extract?
Every field below comes directly from PropertyFinder's mobile API. See Output Structure further down for the full sample and field descriptions.
๐ Property Listings
- Identifiers โ
propertyId,propertyListingId,reference - Listing โ
ListingTitle,propertyType,propertyCategory(1 = Buy, 2 = Rent),propertySubCategory - Pricing โ
propertyPrice,currency - Specs โ
propertyBedrooms,propertyBathrooms,propertySizeSqft - Location โ
locationTitle,propertyLocationId,propertyLocationTree(city โ community โ sub-community),lat,lon - Flags โ
propertyVerifiedStatus,propertyOwnerVerifiedStatus,propertyBySuperAgent,isAvailable,isDeleted - Tier & visibility โ
propertyProduct(premium/standard),propertySpotlight,propertyCommunityTopSpot,propertyHasProject,propertyLeadValue - Compliance โ
reraNumber,shareUrl - Amenities โ comma-separated codes in
amenities(e.g.BA,BR,BW,AC,CP,...) - Images โ
imagesarray of high-res CDN URLs (1136ร640) - Quick agent/broker lookup โ
agentName,agentRating,brokerName,brokerId,pfCustomerId
๐ฅ Brokers & Agents
- Contact โ
id,slug,name,email,phone,whatsappPhone,userId - Profile โ
image,position,bio,nationality,licenseNumber,experienceSince,languages - Ratings โ
averageRating,reviewCount,ratingDistribution,ranking,medianListingQuality - Listings counts โ total + split by residential/commercial ร rent/sale
- Top locations โ
topLocationsarray (areas of specialization) - Transactions โ
claimedTransactionsSale,claimedTransactionsRent,claimedTransactionsDealVolume,claimedTransactionsList[](per-deal location, type, price, date, property type) - Parent brokerage โ nested
brokerobject (id, slug, name, address, location, logo) - Compliance โ RERA / BRN entries in
compliances[]
Image source lives in readme-stuff/ (PNG, retina
@2x, SVG). Regenerate viapython3 readme-stuff/render_how_it_works.py. The published version is hosted inmuhamed-didovic.github.io/assets/. For the Apify listing itself, prefer an Apify key-value store URL (https://api.apify.com/v2/key-value-stores/<id>/records/how-it-works-propertyfinder.png) โ Apify Console doesn't reliably resolve relative paths.
Input Configuration
Here's an example of how to set up the input for the PropertyFinder Scraper:
{"startUrls": [// Property search results{"url": "https://www.propertyfinder.ae/en/search?l=11-18&price_max=1000000"},// Individual property{"url": "https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-dubai-dubai-marina-12345678.html"},// Broker agency{"url": "https://www.propertyfinder.ae/en/broker/arabian-estates-4464"},// Agent search results{"url": "https://www.propertyfinder.ae/en/find-agent/search?location_id=35"},// Individual agent{"url": "https://www.propertyfinder.ae/en/agent/russell-wilson-298937"}],"maxItems": 1000,"monitoringMode": false,"maxConcurrency": 10,"minConcurrency": 1,"maxRequestRetries": 100,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input Fields Explanation
startUrls: Array of objects (or strings) containing PropertyFinder URLs. Supported formats:- Search URL:
{"url": "https://www.propertyfinder.ae/en/search?l=11-18&c=2"} - Property URL:
{"url": "https://www.propertyfinder.ae/en/plp/rent/apartment-for-rent-dubai-dubai-marina-12345678.html"} - Broker URL:
{"url": "https://www.propertyfinder.ae/en/broker/arabian-estates-4464"} - Agent URL:
{"url": "https://www.propertyfinder.ae/en/agent/russell-wilson-298937"}
- Search URL:
maxItems: Maximum number of items to scrape (default: 1000).monitoringMode: When enabled, only scrapes new listings compared to previous runs (default: false).maxConcurrency: Maximum number of pages processed simultaneously (default: 10).minConcurrency: Minimum number of pages processed simultaneously (default: 1).maxRequestRetries: Number of retries for failed requests (default: 100).proxy: Proxy configuration object. Defaults to Apify residential proxy.
Monitoring Mode
When monitoringMode is enabled, the scraper will only collect new listings that haven't been seen in previous runs. This is useful for:
- Tracking new properties as they come on the market
- Building a historical archive of property listings
- Monitoring specific areas for new opportunities without duplicating data
How Monitoring Mode Works
- The scraper maintains a record of previously scraped property IDs
- On subsequent runs with
monitoringMode: true, it checks each property against this record - Only new properties (those not in the record) are processed and added to the output
- The record is updated with any new property IDs found
Output Structure
Each row in the dataset is one of two record types, depending on what you started from:
- Property listing row โ produced by search URLs, filtered searches, and individual property URLs. Sourced from PropertyFinder's mobile API, with most fields flattened to the top level.
- Broker / agent row โ produced by
/broker/...and/agent/...URLs. Nested objects (broker,compliances,claimedTransactionsList, etc.) are preserved as-is from the source.
Mix start URL types in the same run and you'll get a mixed dataset. Numbers from the mobile API arrive as quoted strings (e.g. "propertyPrice": "1580000") โ that's the upstream contract, not a bug.
Listing(s) JSON Output
{"ListingTitle": "Opportunity in a prime location close to services,","agentId": "292499","agentName": "Mahmoud Yaseein","agentRating": "5","amenities": "BA,BR,BW,AC,CP,BK,MR,PG,PA,ST,MS,WC,BL,PR,LB,VC","brokerId": "10564","brokerName": "HONEST REAL ESTATE","currency": "AED","isAvailable": "true","isDeleted": "false","lat": "25.390947341918945","locationTitle": "Al Helio 2, Al Helio, Ajman","lon": "55.599796295166016","pfCustomerId": "10438","propertyBathrooms": "5","propertyBedrooms": "3","propertyBySuperAgent": "true","propertyCategory": "1","propertyCommunityTopSpot": "false","propertyHasProject": "false","propertyId": "16251734","propertyItemListingId": "","propertyLeadValue": "100","propertyListingId": "8FXTNPHVZ6JWM9ZE5DFYDEGM7R","propertyLocationId": "8612","propertyLocationTree": "[{\"id\":\"5\",\"name\":\"Ajman\",\"type\":\"CITY\",\"review\":{\"count\":20}},{\"id\":\"8610\",\"name\":\"Al Helio\",\"type\":\"COMMUNITY\",\"review\":{},\"level\":1},{\"id\":\"8612\",\"name\":\"Al Helio 2\",\"type\":\"SUBCOMMUNITY\",\"review\":{},\"level\":2,\"is_tower_insights_visible\":true}]","propertyOwnerVerifiedStatus": "false","propertyPrice": "1580000","propertyProduct": "premium","propertyShortlist": "","propertySizeSqft": "3014","propertySpotlight": "false","propertySubCategory": "","propertyType": "Villa","propertyVerifiedStatus": "false","reference": "8FXTNPHVZ6JWM9ZE5DFYDEGM7R","reraNumber": "","shareUrl": "https://www.propertyfinder.ae/en/plp/buy/villa-for-sale-ajman-al-helio-al-helio-2-16251734.html","images": ["https://static.shared.propertyfinder.ae/media/images/listing/8FXTNPHVZ6JWM9ZE5DFYDEGM7R/b1c28320-e4d5-4b2a-9ba2-b7179b75ce8f/1136x640.jpg","https://static.shared.propertyfinder.ae/media/images/listing/8FXTNPHVZ6JWM9ZE5DFYDEGM7R/3e1b7c95-fdd8-4cf4-904e-fad0977a37d6/1136x640.jpg","https://static.shared.propertyfinder.ae/media/images/listing/8FXTNPHVZ6JWM9ZE5DFYDEGM7R/db668578-b4a4-4b9e-bd32-5a7c42e522e1/1136x640.jpg"],"basicInfo": {}}
Field Descriptions
The scraper returns a flattened structure with every property field at the top level. Sections below group fields by purpose.
Property Metadata
Core Identifiers
propertyId(String): Unique property identifier (e.g., "16251734")propertyListingId(String): Listing reference ID (e.g., "8FXTNPHVZ6JWM9ZE5DFYDEGM7R")reference(String): Same as propertyListingId - used for tracking
Property Details
ListingTitle(String): Marketing headlinepropertyType(String): Property type (e.g., "Villa", "Apartment", "Townhouse")propertyCategory(String): Category ID ("1" = Buy, "2" = Rent)propertySubCategory(String): Sub-category if applicable
Pricing
propertyPrice(String): Price amount as string (e.g., "1580000")currency(String): Currency code (e.g., "AED")
Specifications
propertyBedrooms(String): Number of bedrooms (e.g., "3")propertyBathrooms(String): Number of bathrooms (e.g., "5")propertySizeSqft(String): Size in square feet (e.g., "3014")
Location
locationTitle(String): Full location name (e.g., "Al Helio 2, Al Helio, Ajman")propertyLocationId(String): Location identifier (e.g., "8612")propertyLocationTree(String): JSON string containing hierarchical location data- Example:
[{"id":"5","name":"Ajman","type":"CITY"},{"id":"8610","name":"Al Helio","type":"COMMUNITY","level":1}]
- Example:
lat(String): Latitude coordinate (e.g., "25.390947341918945")lon(String): Longitude coordinate (e.g., "55.599796295166016")
Agent/Broker Information
agentId(String): Agent identifier (e.g., "292499")agentName(String): Agent's name (e.g., "Mahmoud Yaseein")agentRating(String): Agent rating (e.g., "5" for 5-star rating)brokerId(String): Broker/agency identifier (e.g., "10564")brokerName(String): Broker/agency name (e.g., "HONEST REAL ESTATE")pfCustomerId(String): PropertyFinder customer ID
Property Features & Amenities
amenities(String): Comma-separated amenity codes (e.g., "BA,BR,BW,AC,CP,BK,MR,PG,PA,ST,MS,WC,BL,PR,LB,VC")- Common codes: BA=Balcony, BR=Barbecue, BW=Built-in Wardrobes, AC=A/C, CP=Covered Parking, etc.
Property Status & Flags
isAvailable(String): Availability status ("true"/"false")isDeleted(String): Deletion status ("true"/"false")propertyProduct(String): Listing tier (e.g., "premium", "standard")propertyBySuperAgent(String): Listed by super agent ("true"/"false")propertyVerifiedStatus(String): Verification status ("true"/"false")propertyOwnerVerifiedStatus(String): Owner verification ("true"/"false")propertyCommunityTopSpot(String): Top spot in community ("true"/"false")propertyHasProject(String): Part of a project ("true"/"false")propertySpotlight(String): Spotlight listing ("true"/"false")propertyLeadValue(String): Lead value score (e.g., "100")propertyShortlist(String): Shortlist status (typically empty string)
Sharing & Reference
shareUrl(String): Full URL to the property listing pagepropertyItemListingId(String): Additional listing identifier (often empty)reraNumber(String): RERA permit number (may be empty)
Additional Fields
Images
images(Array): Array of property image URLs extracted from the mobile API gallery- Each URL points to a high-resolution image (1136x640px) optimized for mobile display
- Images are hosted on PropertyFinder's CDN:
https://static.shared.propertyfinder.ae/media/images/listing/... - Extracted dynamically from the gallery section regardless of position in the API response
Context Information
basicInfo(Object): Additional context from search results or broker listings (varies by entry point)- May contain search criteria, broker information, or other metadata depending on how the property was discovered
- Typically empty for properties scraped via mobile API
Additional Output Types
Broker(s) JSON Output
Shortened sample. Image objects in real output contain ~15 size variants per image; only one is shown here for readability. basicInfo mirrors the top-level fields and basicBrokerInfo adds parent-agency metadata โ both are present in the actual dataset but omitted from this sample.
{"id": 249383,"slug": "imad-najib","name": "Imad Najib","email": "imad@arabianestates.ae","phone": "+971509789404","whatsappPhone": "+971509789404","userId": 103767,"superagent": true,"verified": true,"totalProperties": 29,"propertiesResidentialForRentCount": 1,"propertiesResidentialForSaleCount": 28,"propertiesCommercialForRentCount": 0,"propertiesCommercialForSaleCount": 0,"avgWhatsappResponseTime": 272,"experienceSince": 2013,"image": {"path": "249383/e461bo.jpg","links": {"desktop": "https://www.propertyfinder.ae/agent/0/260/200/MODE/864726/249383-e461bo.jpg?ctr=ae"}},"position": "Sales Specialist","bio": "Sales specialist with 12+ years in Dubai real estate, focused on off-plan investments.","nationality": { "code": "SE", "name": "Sweden" },"linkedinAddress": "","licenseNumber": "64447","ranking": 93,"transactionsCount": 0,"averageRating": 5,"reviewCount": 2,"medianListingQuality": 97,"ratingDistribution": { "score1": 0, "score2": 0, "score3": 0, "score4": 0, "score5": 2 },"languages": [{ "id": 1, "name": "English" },{ "id": 33, "name": "Swedish" }],"topLocations": [{ "id": 105, "name": "Dubai Hills Estate" },{ "id": 68, "name": "Jumeirah Golf Estates" },{ "id": 50, "name": "Dubai Marina" }],"claimedTransactionsSale": 13,"claimedTransactionsRent": 1,"claimedTransactionsDealVolume": 34086000,"claimedTransactionsList": [{"location": { "community": "Dubai Hills Estate", "tower": "Mulberry 2" },"dealType": "Sale","price": 2300000,"date": "2025-03-03","propertyType": "Apartment","bedroom": "1"}],"broker": {"id": 4464,"slug": "arabian-estates","name": "Arabian Estates","address": "Office 11C-07, Building I-Rise Tower, Barsha Heights (Tecom), Dubai","location": "Dubai","url": "/en/broker/arabian-estates-4464"},"compliances": [{ "type": "brn", "value": "64447" }]}
Broker(s) JSON Field Reference
Fields grouped by purpose. Every group below maps to a real key in the broker/agent record.
Identity & Contact
id(Number): Unique agent identifierslug(String): URL-friendly version of the agent's namename(String): Full nameemail(String): Contact emailphone(String): Primary phonewhatsappPhone(String): WhatsApp numberuserId(Number): Internal user IDimage(Object): Profile photo withtoken,path, and alinksmap of size variants (agentCard,desktop,desktop2x,mobile,propertyCard, plus*Jpg/*Webpformats)
Status Flags
superagent(Boolean): Has super-agent statusverified(Boolean): Verified agentisTransactionsVisible(Boolean): Transaction history is public
Listing Counts
totalProperties(Number): Total active listingspropertiesResidentialForRentCount(Number)propertiesResidentialForSaleCount(Number)propertiesCommercialForRentCount(Number)propertiesCommercialForSaleCount(Number)
Profile
position(String): Job titlebio(String): Professional biographynationality(Object):{ code, name }linkedinAddress(String): LinkedIn URL (often empty)languages(Array):[{ id, name }]of languages spokenexperienceSince(Number): Year started in real estate
License & Compliance
licenseNumber(String): Professional license numbercompliances(Array):[{ type, value }]โ e.g.type: "brn"for Business Registration Number
Ratings & Quality
averageRating(Number): 1โ5 ratingreviewCount(Number): Total reviewsratingDistribution(Object):{ score1, score2, score3, score4, score5 }โ count per starranking(Number): Agent ranking scoremedianListingQuality(Number): Listing quality scorelistingLevel(Number): Tier level for listings
Specialization
topLocations(Array):[{ id, name }]โ areas the agent focuses on
Claimed Transactions
claimedTransactionsSale(Number): Sale deals claimedclaimedTransactionsRent(Number): Rental deals claimedclaimedTransactionsDealVolume(Number): Total deal volume in local currencyclaimedTransactionsSaleAVGAmount(Number)claimedTransactionsRentAVGAmount(Number)claimedTransactionsSaleTotalAmount(Number)claimedTransactionsRentTotalAmount(Number)claimedTransactionsList(Array): per-deal entries withlocation,dealType(Sale/Rent),price,date(YYYY-MM-DD),propertyType,bedroom
Performance Metrics
avgWhatsappResponseTime(Number): Average WhatsApp response time in secondstransactionsCount(Number): Total transactions
Parent Brokerage
broker(Object): Agency the agent belongs to โid,slug,name,logo,address,location,urlbasicBrokerInfo(Object): Extended brokerage metadata โclientType,clientSegmentWeight,totalAgents,totalSuperAgents,totalBranches,isMainBranch,parentId,licenseLabel,awards
Mirror
basicInfo(Object): Convenience copy of the top-level agent fields. Useful when records are passed downstream as a single nested object; otherwise redundant with the flat top level.
โ FAQ
Which Property Finder URLs are supported?
Search results, individual property pages, broker agency pages (with or without ?tab=agents), agent search (/find-agent/search), and individual agent pages. See the Supported Inputs section for examples.
Can I mix country domains in one run?
Yes. The scraper detects the TLD per URL and adjusts the API call accordingly. You can pass .ae, .sa, .bh, .eg, and .qa URLs in the same startUrls array.
Do I get listings, agents, or brokers? Whichever you ask for. Listing URLs return property rows, broker URLs return broker/agent rows, agent URLs return a single agent profile. The dataset will contain a mix if you mix start URL types.
What does monitoring mode do?
With monitoringMode: true the scraper keeps a record of property IDs seen in previous runs and only outputs new ones on subsequent runs. Useful for daily/weekly delta crawls.
Why isn't a browser used? PropertyFinder's HTML pages sit behind AWS WAF. The scraper hits the mobile JSON API directly with iOS-spoofed headers โ faster, cheaper, and no Playwright needed.
Can I scrape private listings or contact data behind login? No. The scraper only accesses publicly available pages and the public mobile API. There is no authentication step.
What proxy should I use?
Apify residential proxies are the default and work for most cases. If they get blocked or the API throws gateway errors, try a different proxy group or set PF_MAX_GATEWAY_ATTEMPTS lower to fail fast.
Are images included?
Yes. Each listing record contains an images array of CDN URLs (1136x640 by default).
Explore More Scrapers
If you found this Apify Property Finder Scraper useful, be sure to check out our other powerful real estate scrapers:
- Dubizzle Search & Listing Scraper - Comprehensive scraper for Dubizzle search results and property listings
- Bayut Scraper - Extract property data from Bayut.ae
- Property Finder Scraper - Scrape property listings from PropertyFinder.ae
For more tools and scrapers, visit memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com
- Email: muhamed.didovic@gmail.com
โ ๏ธ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Property Finder Group or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available property, agent, and broker pages โ no authenticated endpoints, paid features, or content behind the propertyfinder.com login wall. Users are responsible for ensuring their use complies with PropertyFinder's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
property finder scraper, scrape property finder, propertyfinder.ae scraper, propertyfinder API, Apify property finder, real estate scraper, dubai property scraper, uae real estate data, propertyfinder broker scraper, propertyfinder agent scraper, real estate listings scraper, gulf real estate data, property listings export, real estate market research, property price tracking, real estate lead generation, mena real estate scraper, property data extraction