Property Finder Scraper + Dubai DLD Permit Lookup
Pricing
from $0.08 / 1,000 listings
Property Finder Scraper + Dubai DLD Permit Lookup
Scrape Property Finder listings (UAE, Bahrain, Saudi Arabia, Qatar, Egypt) by location, filters or URL: price, size, GPS, agent and agency contacts, permit. Optional Dubai Land Department register lookup with the agent mobile and e-mail on sales.
Pricing
from $0.08 / 1,000 listings
Rating
0.0
(0)
Developer
Nice Dev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
🏠 What is Property Finder Scraper + Dubai DLD Permit Lookup?
Property Finder Scraper extracts property listings from Property Finder — the UAE's largest portal, and its sites in Bahrain, Saudi Arabia, Qatar and Egypt: price, size, bedrooms, GPS, photos, the agent and the agency with their phone, WhatsApp and licence numbers, and the advertising permit. With one option it also asks the Dubai Land Department register (Trakheesi / Madmoun) about each Dubai listing: official permit, registered size and value and, on sale listings, the agent's mobile and e-mail as registered with the DLD. Another option asks the official register of Abu Dhabi, Saudi Arabia or Bahrain about each listing of these countries: the permit's status and dates and the agency's registered mobile and e-mail (Abu Dhabi), the title deed, national address and plot borders (Saudi Arabia), the licence holder's mobile and e-mail (Bahrain). A third one finds a Bahrain listing's agent in the regulator's licence directory: the agent's own licence and registered mobile. And one more adds each Dubai listing's unit and building as registered with the Dubai Land Department — the unit's exact size, balcony and parking, the building's floors, elevators and completion date — with the same listing's links on Bayut and Dubizzle. It works as a Property Finder API alternative: run it on a schedule, call it from your code, or plug it into Make, Zapier or n8n.
Type a location (Dubai Marina) or paste any Property Finder search URL, click Start, and download the listings in JSON, CSV or Excel. No login, nothing to set up, and it is fast: about 1,600 listings in 30 seconds from the search pages, or 20 listings with their full page in 12 seconds.
📋 What data can you extract from Property Finder?
One item per listing, 148 fields:
| Category | What you get |
|---|---|
| 🏷️ Listing | title, link, the site's id and the agency's reference, description, rent or sale — Furnished 2BR with Marina view |
| 💰 Price | price, currency, rent period, price per sqft, hidden prices flagged — 185,000 AED yearly |
| 🛏️ Property | type, bedrooms (studio flagged), bathrooms, size in sqft and m², plot size, furnishing, ready or off-plan, amenities, number of cheques |
| 📍 Location | full address path, city, community, sub-community, building, GPS coordinates, the site's location id |
| 👤 Agent and agency | agent name, photo, languages, SuperAgent badge, profile, position, experience, rating and reviews; agency name, e-mail, phone, address, logo; the listing's phone and WhatsApp |
| 🪪 Permit and licences | advertising permit number (Abu Dhabi) or its register link (Dubai), brokerage and agent licence numbers, zone, the listing page's full regulatory block (Bahrain, Saudi, Qatar licences) |
| 🏛️ Dubai Land Department | official permit number, status, type and dates, registered brokerage and office number, project, building, zone, registered size in m², rooms, declared value — and on sale listings the agent's name, broker card number, mobile and e-mail |
| 🏛️ Registers of Abu Dhabi, Saudi Arabia, Bahrain | permit or licence number, status, type, dates, exclusivity; the agency's registered name, licence, trade licence and mobile and e-mail (Abu Dhabi), the licence holder's name, mobile and e-mail (Bahrain); title deed number, national address, plot number, mortgage and seizure (Saudi Arabia) — and with Saudi Arabia: full register record, the deed type, plot borders, halt and inheritance, land use, the agency's unified number, the responsible employee's mobile and the same listing on other Saudi portals |
| 🏢 Unit & building (Dubai) | the unit's exact size in m², balcony size, parking spaces, freehold, developer; the building's name, floors, parking spaces, elevators, pools, completion date — as registered with the Dubai Land Department; the same listing on Bayut (link) and Dubizzle (id) |
| 🧑💼 Bahrain agent (RERA) | the listing agent's licence number, type, status and expiry date and registered mobile, matched strictly by name — with how the name matched |
| 📸 Photos and badges | cover photo, every photo, video, 360° tour; Verified, Featured, Premium, Exclusive, new construction, direct from developer |
| 🕒 Dates | listed date (what the date filters read), last refresh, available from |
Every field, with an example, is listed in the Output section below.
Fields marked detail in the Output tab (licences, agent profile, full photo set, availability date, permit link) are filled when Extract details is on (default). Fields marked DLD are filled when Dubai Land Department lookup is on, fields marked unit details when Unit & building details (Dubai) is on, fields marked register when Official register lookup is on, fields marked RERA when Bahrain: agent's registered mobile is on.
✅ Why use Property Finder Scraper?
- 🏛️ The Dubai Land Department register, per listing, in the same run: the official permit, registered size and declared value of each Dubai listing — and, on sale listings, the agent's mobile and e-mail as the DLD has them — for $5 per listing found, + $0.02 per agent contact.
- 🏛️ The registers of Abu Dhabi, Saudi Arabia and Bahrain, per listing: the agency's mobile and e-mail as registered with Abu Dhabi's regulator, the title deed and national address behind a Saudi listing, the mobile and e-mail of a Bahrain agency's licence holder — and, with its own option, the Bahrain agent's own licence and mobile.
- 🏢 The unit and its building, per Dubai listing: the unit's exact size, balcony and parking, the building's floors, elevators and age, as registered with the Dubai Land Department — plus the same listing's links on Bayut and Dubizzle. Charged only for the listings found.
- 🌍 Five countries in one Actor: propertyfinder.ae, .bh, .sa, .qa and .eg, same fields everywhere.
- 🚀 Fast: about 1,600 listings in 30 seconds from the search pages; 20 listings with their full page in 12 seconds.
- 🧩 Past the site's 1,250 results: Property Finder shows at most 50 pages per search; a bigger search is cut into price bands automatically, so you get all of it.
- 🎯 Type the place, not a URL:
Dubai Marina,Jumeirah Village Circle,Abu Dhabi— or paste any search URL, every filter set on the site is kept. - 🔔 Monitoring built in: tick Only new listings, schedule the Actor, and each run returns (and charges) only what it has never delivered before.
- 🔌 API, scheduling, monitoring, integrations (Make, Zapier, n8n, Google Sheets…), proxy rotation and JSON/CSV/Excel export via the Apify platform.
🚀 How to scrape Property Finder
- Create a free Apify account.
- Open Property Finder Scraper, choose the Country and Purpose (rent or buy) and type a Location (e.g.
Dubai Marina). - Or paste your own Property Finder URLs into Start URLs: any search results page (all filters set on the site are kept, pagination is automatic) or single listing pages.
- Set Max listings (100 by default, 0 = no limit) — and Max listings per search when you run several searches — tick Dubai Land Department lookup (Dubai) or Official register lookup (Abu Dhabi, Saudi Arabia, Bahrain) if you want the register, and Unit & building details (Dubai) for the unit and its building, then click Start.
- Download the dataset in JSON, CSV, Excel or via API.
💰 How much does it cost to scrape Property Finder?
This Actor uses pay per event pricing: you pay for each listing, and for each option only on the listings that got it.
| Event | Price per 1,000 |
|---|---|
| Listing (every row of the dataset) | $0.09 |
| + Details: the listing's own page (licences, agent profile, full photo set, permit) — on by default | + $0.19 |
+ Dubai Land Department lookup (enrichDld): official permit, only for a listing the register knows | + $5,000.00 ($5 per listing) |
| + Agent's contact from the register (mobile and e-mail), only when the register gives the agent's mobile (sale permits) | + $20.00 |
+ Unit & building details (enrichUnitDetails): only for a listing found | + $0.40 |
+ Official register lookup (enrichRegister), Abu Dhabi (ADREC / ADGM): only for a listing the register knows | + $3,000.00 ($3 per listing) |
| + Official register lookup, Saudi Arabia (REGA): only for a listing the register knows | + $1.50 |
+ Saudi Arabia: full register record (registerFullRecord), on top of it: only for a listing the register knows | + $4,000.00 ($4 per listing) |
| + Official register lookup, Bahrain (RERA): only for a listing the register knows | + $3,000.00 ($3 per listing) |
+ Bahrain agent's registered mobile (registerAgentContact): only when RERA gives the agent's mobile | + $15.00 |
| Run start | $0.005 per run |
| Dubai Land Department lookup turned on | $0.03 per run |
| Unit & building details turned on | $0.001 per run |
Higher Apify plans (Bronze, Silver, Gold) pay less per listing. With the default settings (details on) 1,000 listings cost $0.28; from the search pages only (details off) $0.09. Example: 10,000 Dubai listings with details ≈ $2.80; a daily monitor of 200 new sale listings with the register ≈ $852.81 a day (when the register knows 170 of them, $5 each, and names the agent of 136). A lookup that finds nothing (no permit link, a listing it does not know, a refusal) is not charged, and filtered-out listings are not charged at all. Platform usage (compute, proxy) is included in the price.
⚙️ Input
{"country": "ae","purpose": "buy","location": "Dubai Marina","minBedrooms": 1,"maxBedrooms": 2,"maxItems": 200,"enrichDld": true}
Several searches, a cap per search, only recent listings, only the ones not delivered before:
{"purpose": "rent","locations": ["Dubai Marina", "Business Bay", "Downtown Dubai"],"searchQueries": ["sea view", "furnished"],"maxItemsPerQuery": 50,"postedAfter": "7 days","onlyNew": true,"stateKey": "dubai-rentals"}
Or with your own URLs:
{"startUrls": [{ "url": "https://www.propertyfinder.ae/en/buy/villas-for-sale.html" },{ "url": "https://www.propertyfinder.bh/en/search?c=2&ob=nd" },{ "url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-arjan-curve-by-sentro-142822239.html" }],"maxItems": 500}
| Field | Notes |
|---|---|
country | The Property Finder site: ae (UAE, default), bh (Bahrain), sa (Saudi Arabia), qa (Qatar), eg (Egypt). |
purpose | rent (default), buy, commercial-rent or commercial-buy. |
location, locations | City, community or building as typed in the site's location box (Dubai Marina, Jumeirah Village Circle, Abu Dhabi); the site's own best match is used and written in the log, with the other places of that name and their ids (type an id, e.g. 50, to search that place). Empty = the whole country. locations adds more places: every keyword is searched in every location (max 500 searches per run). |
query, searchQueries | Keyword searched in the listings, as in the site's keyword box (sea view, pool); searchQueries adds more keywords (one search each). |
propertyType | Apartment, villa, townhouse, penthouse, compound, duplex, full or half floor, whole building, bulk rent unit, bungalow, hotel apartment; empty = all types. Each site has its own list: a type the chosen site does not have for this purpose (townhouse or penthouse in Saudi Arabia, apartment in a commercial search) is refused before the run, with the types it has. |
minBedrooms, maxBedrooms, minBathrooms, maxBathrooms | 0 = studio, 8 = the site's 7+. |
minPrice, maxPrice, minArea, maxArea | Price in the site's currency (AED on propertyfinder.ae; for rentals, per rent period); built-up area in square feet on every site (converted to m² for the sites that count in m²: Bahrain, Saudi Arabia, Qatar, Egypt). |
furnishing | any (default), furnished, unfurnished or partly. |
completionStatus | any (default), completed (ready) or off_plan. Applied by the Actor too, on the sites that ignore it in their own search (Bahrain, Saudi Arabia, Qatar). |
rentFrequency | Rentals: the period the price is quoted for — yearly, monthly, weekly or daily; empty = the site's default. In Saudi Arabia it keeps only the listings rented for that period. |
amenities | Listings that have ALL of them: SP (shared pool), BA (balcony), PP (private pool), PA (pets allowed), VW (view of water)… 23 in all. Egypt has no balcony, built-in wardrobes or walk-in closet, and commercial searches have no amenity filter: those are refused before the run. |
sortBy | newest (default, what lets Only new listings stop early), featured, price_asc, price_desc, beds_asc, beds_desc. |
startUrls | Search results pages (https://www.propertyfinder.ae/en/rent/apartments-for-rent.html, filters kept, pagination automatic) or single listing pages. When set, the search fields above are ignored. |
extractDetails | Open each listing page for the licences, the agent profile, the full photo set and the permit (default on). Off = search-card fields only. |
enrichDld | Look each Dubai listing up in the Dubai Land Department register (turns details on). Charged per listing found in the register. |
enrichUnitDetails | Add each Dubai listing's unit and building as registered with the Dubai Land Department, and the same listing's links on Bayut and Dubizzle (turns details on). Charged per listing found. |
enrichRegister | Look each listing of Abu Dhabi, Saudi Arabia or Bahrain up in its country's register: ADREC / ADGM, REGA, RERA (turns details on). Charged per listing found in its register. |
registerFullRecord | Saudi Arabia: the rest of the REGA record on top of enrichRegister (turns it on): the agency's unified number, the responsible employee, deed type, plot borders, land use, halt and inheritance, the same listing on other portals, the raw answer. Charged per Saudi listing found. |
registerAgentContact | Find each Bahrain listing's agent in RERA's licence directory by name, strictly (turns details on): the agent's licence and registered mobile. Charged per listing with the agent's mobile. |
maxItems | Stop after this many listings for the whole run (0 = unlimited). |
maxItemsPerQuery | Cap for EACH search (keyword × location, or search URL). 0 = no per-search cap. |
postedAfter, postedBefore | Listed date range: 2026-09-01, or a period before now (7 days, 2 weeks, 1 month, 24 hours). |
excludeKeywords | Drop the listings whose title or description contains one of these words (penthouse), case and accents ignored. |
verifiedOnly, superAgentOnly | Keep only the listings with the site's Verified badge, or whose agent is a SuperAgent. Only propertyfinder.ae has the Verified badge: verifiedOnly is refused before the run on the other sites. |
onlyNew, stateKey, resetState | Monitoring: only the listings never delivered under this memory key; resetState forgets the memory. |
| Advanced | proxyConfiguration (Apify proxy by default, included in the price; the residential proxy is not available), maxConcurrency, maxRequestsPerMinute, minRequestIntervalMs, maxRequestRetries, debugLog. |
📦 Output
A real sale listing of Dubai Marina with details and the Dubai Land Department lookup (run of 2026-09-24; shortened to 80 of the 148 fields, the agent's name and contacts masked):
{"id": "149506290","url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-marina-marina-view-marina-view-tower-b-149506290.html","reference": "MCC-S-76681-7","title": "FMarina View | Vacant Soon | Spacious","description": "Property Highlights:\n\n- Built-Up Area: 750 sq. ft.\n- 1 Bedroom, 2 Bathrooms\n- Unfurnished\n- Marina View\n- Vacant Soon\n- Built-in Wardrobes\n- Built-in Kitchen Appliances\n- Balcony\n- Covered Parking\n- Cash Buyers Only","country": "ae","purpose": "buy","offeringType": "Residential for Sale","propertyType": "Apartment","price": 1600000,"currency": "AED","pricePeriod": null,"isPriceHidden": false,"pricePerArea": 2133,"bedrooms": 1,"isStudio": false,"bathrooms": 2,"size": 750,"sizeUnit": "sqft","sizeSqm": 69.68,"furnished": "NO","completionStatus": "completed","amenities": ["Built in Wardrobes","Kitchen Appliances","Balcony","Shared Pool"],"location": "Marina View Tower B, Marina View, Dubai Marina, Dubai","city": "Dubai","community": "Dubai Marina","subCommunity": "Marina View","tower": "Marina View Tower B","locationId": "3160","latitude": 25.07938575744629,"longitude": 55.14193344116211,"agentName": "Agent Name","agentLanguages": ["English"],"agentIsSuperAgent": true,"brokerName": "McCone Properties","brokerEmail": "info@mcconeproperties.com","brokerPhone": "+97143806683","phone": "+97143806683","whatsapp": "+9714XXXXXXX","isVerified": true,"isFeatured": false,"isPremium": false,"isExclusive": false,"isNewConstruction": false,"isDirectFromDeveloper": false,"listingLevel": "standard","publishedAt": "2026-09-24T01:01:07.000Z","images": ["https://static.shared.propertyfinder.ae/media/images/listing/XMP3DDXVS1H6G1VG8SDDER59N8/45bc0565-dac2-4504-9a62-dd5a14b46922/1312x894.jpg?v=d37d8e948991d92bbeb6c4bb640a8eb9","https://static.shared.propertyfinder.ae/media/images/listing/XMP3DDXVS1H6G1VG8SDDER59N8/cd09d9db-d8ee-4de0-9f6c-fe0e50e49d56/1312x894.jpg?v=637bc83e616782a9342ea68fa91c58ed"],"imageCount": 13,"hasView360": false,"permitNumber": null,"permitValidationUrl": "https://trakheesi.dubailand.gov.ae/rev/madmoun/listing/validation?khevJujtDig=jlskgld2acvqis7p4bsb2e5blj316hbmuyl6bloxpukhvwqak","dldListingGuid": "jlskgld2acvqis7p4bsb2e5blj316hbmuyl6bloxpukhvwqak","brokerLicenseNumber": "12065","agentLicenseNumber": "76468","zoneName": "Marsa Dubai","agentPosition": "Property Consultant","agentYearsOfExperience": 4,"agentRating": 4.9,"dldStatus": "found","dldPermitNumber": "171260","dldPermitStatus": "Auto Approval","dldPermitType": "Sell","dldPermitStartDate": "2026-06-23","dldPermitEndDate": "2026-11-30","dldBrokerageName": "MCCONE PROPERTIES","dldBrokerageLicense": "684748","dldOfficeNumber": "12065","dldBuildingName": "MARINA VIEW TOWERS B","dldZone": "Marsa Dubai","dldPropertyType": "Unit","dldSizeSqm": 69.71,"dldRoomType": "1 B/R","dldValue": 1600000,"dldAgentName": "AGENT FULL NAME","dldAgentCardNumber": "00000","dldAgentMobile": "+9715XXXXXXXX","dldAgentEmail": "agent@agency.example","searchUrl": "https://www.propertyfinder.ae/en/search?l=50&c=1&fu=0&ob=nd&page=1","scrapedAt": "2026-09-24T05:21:05.132Z"}
You can download the dataset in various formats such as JSON, HTML, CSV or Excel.
All 148 fields
| Fields | What you get |
|---|---|
id, url, reference, title, description | Listing: the site's id, link, the agency's reference, title, full text |
country, purpose, offeringType, propertyType | ae, buy or rent, the site's offering type, Apartment |
price, currency, pricePeriod, isPriceHidden, pricePerArea | Price: 2950000, AED, yearly (rentals; null on sales), hidden price flag, price per sqft (per m² outside the Emirates) |
bedrooms, isStudio, bathrooms | Property: 2 (0 = studio), true / false, 3 |
size, sizeUnit, sizeSqm, plotSize | 1432, sqft, 133.04, plot size of villas and land |
furnished, completionStatus, amenities, numberOfCheques | YES / NO / PARTLY, completed / off_plan (or …_primary), amenity names, cheques (rentals) |
location, city, community, subCommunity, tower | Location: Marina Gate 1, Marina Gate, Dubai Marina, Dubai and each level |
locationId, latitude, longitude | the site's id of the most precise place (usable as a Location), GPS |
agentId, agentName, agentImage, agentLanguages, agentIsSuperAgent, agentProfileUrl | Agent: id, name, photo, languages, SuperAgent badge, profile page |
agentPosition, agentYearsOfExperience, agentTotalProperties, agentReviewCount, agentRating | agent profile (detail) |
brokerId, brokerName, brokerEmail, brokerPhone, brokerAddress, brokerLogo | Agency: id, name, e-mail, phone, address, logo |
phone, whatsapp | the listing's call number (often a tracking number of the agency) and WhatsApp |
isVerified, isFeatured, isPremium, isExclusive, isNewConstruction, isDirectFromDeveloper, listingLevel | Badges and paid visibility level |
publishedAt, lastRefreshedAt, availableFrom | Dates: listed (ISO, what the date filters read), last refresh, available from (rentals, detail) |
imageUrl, images, imageCount, videoUrl, hasView360 | Photos: cover, every photo (full set with details), count, video, 360° tour |
permitNumber, permitValidationUrl, dldListingGuid, adrecPermitNumber | Permit (detail): number (Abu Dhabi; empty in Dubai, where the register gives it), official register page, the listing's key in the Dubai register, Abu Dhabi permit |
brokerLicenseNumber, agentLicenseNumber, zoneName, regulatory | brokerage and agent licence numbers, zone, every regulatory line of the page (detail) |
dldStatus | Dubai Land Department: found, not_found (the register does not know it), rejected (the register rejected its permit), no_permit (no Dubai permit on the listing), failed (no answer, or a register link the Actor cannot read — the log says so); null without the option |
dldPermitNumber, dldPermitStatus, dldPermitType, dldPermitStartDate, dldPermitEndDate | official permit: number, status, Sell or Rent, validity dates |
dldBrokerageName, dldBrokerageLicense, dldOfficeNumber | registered brokerage, trade licence, office number |
dldProjectName, dldBuildingName, dldZone, dldPropertyType, dldSizeSqm, dldRooms, dldRoomType, dldValue | registered property: project, building, zone, type, size in m², rooms, declared value (AED) |
dldAgentName, dldAgentCardNumber, dldAgentMobile, dldAgentEmail | agent as registered with the DLD — sale permits only |
unitDetailsStatus | unit details: found (unit and building details, with the Bayut / Dubizzle links), dubizzle_only (only its Dubizzle id), not_found, no_permit (no Dubai permit on the listing), failed (no answer — the log says so); null without the option |
bayutListingId, bayutUrl, dubizzleListingId | the same listing on Bayut (id, link) and on Dubizzle (id) |
unitSizeSqm, unitBalconySqm, unitParkingSpaces, unitFreehold, unitDeveloper | the unit as registered with the Dubai Land Department: exact size in m², balcony size, parking spaces, freehold, developer |
buildingName, buildingFloors, buildingParkingSpaces, buildingElevators, buildingSwimmingPools, buildingCompletionDate | the building: DLD name, floors, parking spaces, elevators, pools, completion date, as registered with the Dubai Land Department (an unknown count is null, never 0) |
registerStatus, registerName | Registers (Abu Dhabi, Saudi Arabia, Bahrain): found, not_found (the register does not know it), expired (Abu Dhabi: the permit or its agency's licence expired), no_permit (no permit of these registers on the listing: Dubai, the northern emirates, Qatar, Egypt), failed (no answer); the register asked: ADREC, ADGM, REGA or RERA — null without the option |
registerPermitNumber, registerPermitStatus, registerPermitType, registerPermitStartDate, registerPermitEndDate, registerExclusive | the permit (Abu Dhabi), the advertising licence (Saudi Arabia) or the agency's licence (Bahrain): number, status, Rent / Sell (or the licence type), validity dates, exclusive to the agency (Abu Dhabi) |
registerAgencyName, registerAgencyLicense, registerAgencyCrNumber | the agency as registered: name, licence with the regulator, trade licence / commercial registration (Saudi unified number: with registerFullRecord) |
registerContactName, registerContactMobile, registerContactEmail | who the register names, with + and the country code: the agency (Abu Dhabi), the licence holder (Bahrain), the responsible employee (Saudi Arabia, no e-mail; with registerFullRecord) |
registerCity, registerDistrict, registerCommunity, registerPlotNumber | official municipality or city, district, community (Abu Dhabi), plot id or land number |
registerDeedNumber, registerDeedType, registerNationalAddress, registerBorders, registerRestrictions, registerLandUse, registerOtherListings | Saudi Arabia: title deed number, national address, mortgaged / constrained; with registerFullRecord also the deed type, the plot's four sides, halted / testament, land use (Arabic), the same licence on Aqar, Bayut.sa, Wasalt, Deal… with its URL |
registerAnswer | the register's whole answer, as it gives it (Saudi Arabia: with registerFullRecord) |
registerAgentStatus, registerAgentMatch | Bahrain agent (RERA): found, uncertain (no contact given), not_found, no_agent (no person's name on the listing), no_register (not a Bahrain listing), failed (no answer); how the name matched: full_name, partial_name, or why it is not sure: several_names, common_name, short_name — null without the option |
registerAgentName, registerAgentLicense, registerAgentLicenseType, registerAgentLicenseStatus, registerAgentLicenseEndDate, registerAgentMobile, registerAgentEmail | the agent's licence as RERA has it: full name, number, Sales Agents (or Real Estate Brokers for an agency's licence holder), status, expiry date, mobile with +973; the e-mail for an agency's licence holder only |
searchUrl, scrapedAt | the search the listing was found by (null for a pasted listing URL), ISO timestamp |
💡 Tips
How to get more results
Set maxItems to 0 and search a whole city (Dubai) or country (no location). Property Finder shows at most 50 pages (1,250 listings) per search: the Actor cuts a bigger search into price bands by itself, up to 40 bands, and each band is read in full. A search sorted by price (price_asc, price_desc) is not cut: it is read in price order and goes on from the price of the last listing read, so with maxItems you get exactly the cheapest (or dearest) listings.
How to reduce costs
The price is per listing, so the levers are maxItems, maxItemsPerQuery, the filters (a filtered-out listing is free) and onlyNew for recurring runs (you never pay twice for the same listing). Turn extractDetails off when the search-card fields are enough: $0.09 instead of $0.28 per 1,000. The register lookup is the dear option: narrow the search (a building, a price range, sale listings) before you turn it on.
Several searches in one run
Fill searchQueries and / or locations: the Actor runs one search per keyword × location (3 keywords × 4 communities = 12 searches, up to 500 per run). The single query and location fields still work and are added to the lists. A listing found by several searches is saved — and charged — once. Set maxItemsPerQuery to give every search its own cap: without it the first searches can use up the whole maxItems budget. You can also paste several search URLs into startUrls: each one is a search of its own, with the same cap.
Monitoring: only the new listings
Tick Only new listings (onlyNew) and schedule the Actor. The first run returns everything; each later run skips the listings already delivered: they are not saved, not charged, and their page is not even opened. The memory lives in a named key-value store of your account (propertyfinder-listings-scraper-seen, up to 150,000 listings per key) and is only updated with listings that really reached the dataset, so a failed run never hides anything. Give each schedule its own stateKey (two schedules sharing a key would hide each other's listings), and tick resetState once to start over. Keep the default sort (newest first): a search then stops once it meets 50 listings in a row you already have.
Filter by listed date
postedAfter and postedBefore take a date (2026-09-01, the whole day is included, Dubai time) or a period before now (7 days, 2 weeks, 1 month; via the API also 24 hours or a full ISO date-time). The filter reads publishedAt; a listing without a listed date is dropped as soon as a date bound is set. Filtered-out listings are never charged and do not count in maxItems; the run summary tells how many were filtered. With postedAfter and the default sort, a search stops at the first page that is entirely too old.
The Dubai Land Department lookup
Every Dubai listing carries a permit link to the Land Department register; the Actor asks the register about it, one listing after the other (about a second each). What it gives depends on the permit: a sale permit names the agent with the mobile and e-mail registered with the DLD; a rental permit gives the permit, the brokerage and the property, but no agent (the register does not return one). New off-plan sales advertised by a developer may come back without an agent too. Listings outside Dubai (Abu Dhabi has its own permits, the other countries have no DLD) are marked no_permit and never charged. The register does not give the unit (apartment) number. The register is asked through a browser: a run with this option gets 1 GB of memory by default (512 MB without it), and a memory set by hand below 1 GB is refused before the run starts.
Unit and building details (Dubai)
Tick Unit & building details (Dubai) (enrichUnitDetails) and each Dubai listing gets its unit and building as registered with the Dubai Land Department: the unit's exact size, balcony, parking, freehold and developer, the building's floors, parking spaces, elevators, pools and completion date — and the same listing's links on Bayut and Dubizzle, matched by the Dubai advertising permit every portal shows. About 6 to 7 Dubai listings in 10 get them; a listing only on Dubizzle gets its Dubizzle id, marked dubizzle_only, and is not charged. The unit's data is given only when its size agrees with the listing's (within 5 %): another unit of the same permit is never passed off as this one. A listing put online in the last day may not be found yet (not_found, not charged). The unit (apartment) number and its floor are not given. The option needs no extra memory (512 MB).
The registers of Abu Dhabi, Saudi Arabia and Bahrain
Tick Official register lookup (enrichRegister) and each listing is looked up in the register of its own country, with the key its page shows:
- Abu Dhabi: the permit number (Madhmoun) goes to ADREC; a 15-digit number (Al Reem and Al Maryah islands) to ADGM. You get the permit's status, dates and exclusivity, the agency's licence, its registered mobile and e-mail (often not on the listing), the plot id, district and community. Not the agent, the value or the unit number: the register does not give them.
- Saudi Arabia: the advertising licence (REGA) gives the licence's status and dates, the agency's FAL licence, the title deed number, the plot, the national address, mortgage and seizure. Tick Saudi Arabia: full register record (
registerFullRecord) for the rest of the record: the deed type, the plot's borders (neighbours, streets, lengths), halt and inheritance, land use, the agency's unified number, the responsible employee's name and mobile — and the same licence on the other Saudi portals, with their URLs. In Arabic, as the register writes it. - Bahrain: the listing's QR code is the agency's RERA licence: you get the licence holder's name, mobile and e-mail, the CR number and the licence's status. One agency's licence is asked once per run, whatever the number of its listings. Some listings still carry an old QR code the register no longer answers: the Actor finds the agency in RERA's directory by the licence number the listing shows, then by the agency's name —
not_foundwhen neither is sure.
Dubai listings, the northern emirates, Qatar and Egypt have no permit of these registers: marked no_permit, never charged. Abu Dhabi and Bahrain need no extra memory (512 MB). Saudi Arabia's register is asked through a browser: a run with this option on propertyfinder.sa (or with pasted URLs) gets 1 GB of memory by default, and a memory set by hand below 1 GB is refused for Saudi listings before the run starts.
The Bahrain agent's registered mobile
Property Finder gives no contact of a Bahrain agent of its own (the call and WhatsApp buttons reach the agency or a relay number). Tick Bahrain: agent's registered mobile (registerAgentContact) and the Actor looks the agent's name up in the licence directory of RERA, Bahrain's real estate regulator — sales agents and the holders of an agency's licence — and reads the licence page of the agent found: licence number, type, status, expiry date and the mobile registered with RERA. The match is strict: every word of the name the listing shows must be in the holder's name, one holder only, and one of the words must be uncommon in the directory. A name made only of common words (Ahmed Ali), shared by several holders, or of one word gives no contact (registerAgentStatus: uncertain, the reason in registerAgentMatch), and is not charged; a name with no holder is not_found. Each agent is looked up once per run, whatever the number of their listings. The agent's photo is never read.
🔌 Integrations and API
Call the Actor via the Apify API, the JavaScript or Python clients, or connect it with integrations and webhooks (Make, Zapier, n8n, Google Sheets, Slack, Airtable…). The dataset can be fetched as JSON or CSV from any tool.
❓ FAQ
Is it legal to scrape Property Finder?
The Actor only reads what Property Finder and other property portals show publicly to any anonymous visitor, and what the public registers (the Dubai Land Department; ADREC and ADGM in Abu Dhabi; REGA in Saudi Arabia; RERA in Bahrain) show to anyone who checks the permit or licence of a listing. It logs in to nothing. Results contain personal data of real-estate professionals — agent names, phone numbers, WhatsApp numbers and e-mail addresses — which is protected by data-protection law (the UAE's PDPL, Saudi Arabia's and Bahrain's PDPL, GDPR for EU residents): do not store it without a legitimate reason, and do not use it for unsolicited marketing. You are responsible for using the data in compliance with Property Finder's Terms of Use, the register's terms and applicable law. This Actor is not affiliated with Property Finder, Bayut, Dubizzle, the Dubai Land Department or any of these registers.
Does it need a login or a proxy?
No login. The proxy is included in the price: leave the default setting (the residential proxy is not available). A request the site turns away is retried at once on a new proxy session (without a proxy, after a pause of 5 seconds, doubled at each retry up to 150 seconds).
Is the data safe to open in Excel or to show on a web page?
Titles and descriptions are the agents' own words, copied as they are (2 descriptions in 318, read on the 5 sites, begin with -). Every phone number is written with + and the country code (+971…, +20…), as the site's call button writes it — the agency phones the site writes 01… or 05… and the register's mobiles included; only a short service number (Qatar 800…) stays as the site writes it: Excel and Google Sheets may read such a cell of a CSV file as a number or a formula. The Actor leaves the text as it is, so that the JSON and the API give the real value: when you open a CSV, import these columns as text. Every URL field (url, imageUrl, images, videoUrl, agentImage, agentProfileUrl, brokerLogo, permitValidationUrl, searchUrl, and the link lines of regulatory) holds a whole http(s) URL or null — never javascript: or data:. On a web page, escape every other field like any text written by a stranger.
Known limitations
- Property Finder shows at most 1,250 listings per search: a bigger search is cut into price bands (up to 40, cut again when a band is still too big); a search whose listings share one single price cannot be cut, and its first 1,250 are read. With
maxItemsover 1,250 and a sort other than price, the bands are read side by side: you get the first listings of each band (the newest of each price range, fornewest), not the first of the whole search. - Unit & building details cover Dubai listings (they need their Dubai permit), are found for about 6 to 7 in 10, and may miss a listing put online in the last day.
- The Dubai Land Department lookup covers Dubai only, gives the agent's contacts on sale permits only, and never the unit number.
- The registers of Abu Dhabi and Bahrain give the agency's (or licence holder's) contact — the Bahrain agent's own mobile comes with Bahrain: agent's registered mobile, only when the name matches one licence holder surely; Saudi Arabia's gives the responsible employee's mobile (with the full record), no e-mail. None gives the unit number.
- Site filters that are not in the input can still be used by pasting a filtered search URL into
startUrls. - Fields marked detail are
nullwhenextractDetailsis off; fields marked DLD arenullwhenenrichDldis off, fields marked unit details whenenrichUnitDetailsis off, fields marked register whenenrichRegisteris off, fields marked RERA whenregisterAgentContactis off. onlyNewremembers listing ids, not their content: a listing whose price changed is not returned again.- Two runs sharing the same
stateKeyat the same time may both return the same new listing.
A run the platform stops without warning (out of memory, run timeout)
- Resurrect it: it goes on from where it stood at most a minute before the stop. What it had read since is read again, and the listings already saved are skipped: none is delivered or charged twice, and
maxItemsstill counts them. - With
onlyNew, the memory is saved once a minute: resurrect the stopped run and the listings it had saved meanwhile join the memory; leave it stopped for good, and the next run may return up to a minute of them once more.
Something doesn't work?
The last line of the log counts the listings saved, filtered out and no longer on Property Finder (removed while the run was reading them), and the requests that failed after every retry. Those requests and the removed listings are listed, with the reason, in the FAILED_REQUESTS record of the run's key-value store. A run that saved nothing and had failed requests fails, and its last message gives the cause (a search URL or a location that does not exist says so, instead of "run it again"). A run that saved some listings fails too when at least as many requests failed for good as were read (page 1 read, the next pages refused): a green run with a short dataset would hide the outage. One failed request among many is only a warning.
If Property Finder changes its pages, you are told instead of paying for blank rows. A results page that counts listings but gives none the Actor can read is an error (listed in FAILED_REQUESTS), never a quiet "No listings found". If the first 20 listings read all lack their title, listed date, price, agency or GPS — or, with extractDetails, their regulatory block — the run saves nothing more, stops and fails, and its last message names the missing field: at most those first listings are charged. A listing that postedAfter / postedBefore drops because it has no date at all counts among those 20.
If the Dubai Land Department register refuses 6 listings in a row (3 before it has answered once) — or answers them without a permit number and without saying it does not know them (it changed its answers) — the lookup is switched off for the rest of the run and the run's last message says so: the listings are still saved, marked failed, and the lookup is not charged. The same goes for each register of Official register lookup. Unit & building details the same way: 5 listings in a row without an answer, or an answer in a form the Actor does not know, and the option is switched off for the rest of the run, said in the last message, and never charged for those listings.
🛟 Support
Open an issue in the Issues tab with a link to your run: the run log and the FAILED_REQUESTS record of the key-value store show exactly which URLs failed and why.