PropertyFinder Scraper & New-Listing Monitor - Dubai & UAE avatar

PropertyFinder Scraper & New-Listing Monitor - Dubai & UAE

Pricing

from $0.73 / 1,000 property returneds

Go to Apify Store
PropertyFinder Scraper & New-Listing Monitor - Dubai & UAE

PropertyFinder Scraper & New-Listing Monitor - Dubai & UAE

Turn monitoring on and every later run returns only the listings it has not returned before, so you are never charged for the same property twice. Every PropertyFinder listing as clean JSON: price with its meaning, bedrooms, bathrooms, area, community, furnishing, coordinates. Unofficial.

Pricing

from $0.73 / 1,000 property returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

PropertyFinder Scraper - Real Estate Data for Dubai and the UAE

Pull property listings from PropertyFinder.ae — the UAE's largest property portal — as clean JSON: the price as a number with the period it belongs to, the size in sqft, bedrooms, bathrooms, furnishing, amenities, map coordinates, the brokerage and the date it was listed.

Unofficial. This Actor is not affiliated with, endorsed by, or sponsored by Property Finder. All product names are trademarks of their respective owners.

No API key. Reads the same public pages a visitor sees.


Run it tomorrow and you only get what is new

Schedule this Actor with monitoringMode: true and each run returns only the listings it has not returned before. Not "here is everything again, please de-duplicate it yourself" — the Actor remembers what it already gave you, so a daily feed costs you the handful of new homes, not the whole board every morning. You are never charged for the same property twice.

Listings your filters removed are remembered too, so widening a filter later does not resurrect them as false "new" listings. Listings that did not fit under your limit are not remembered, so they are still waiting on the next run instead of being silently lost.


Why this one is different

The filters run here, because PropertyFinder's robots.txt says they must

robots.txt (read on 2026-09-04) disallows every filter parameter — ?price=, ?bedrooms=, ?furnished=, ?location=, ?category=, ?built_up_area= and more — and disallows a page number combined with anything else (*?*page=*&*, *&*page=*). It allows exactly one thing:

# Allow pagination when standalone
Allow: *?page=*

So this Actor requests only the plain SEO addresses and ?page=N on its own, and applies every filter to rows it has already fetched. Nothing extra is requested from PropertyFinder, nothing extra is charged, and if you paste a search URL with filter parameters in it, those parameters are stripped before the request is made.

A price is useless without its period — so both are always there

A sale price is a total. A rent on PropertyFinder is per year. Selling you a bare number would let a 90,000 rent sit in the same column as a 2,950,000 sale, so every row carries price, priceCurrency and pricePeriod (sell or yearly) together, plus pricePerArea when PropertyFinder computed one.

Nothing is guessed to fill a gap: a property whose price is withheld comes back with price: null and isPriceHidden: true — never a zero.

Broker and agent phone numbers and emails are removed, on purpose

PropertyFinder's own page data carries the brokerage's phone number on 104 of 111 properties measured, and 65 distinct email addresses across the same sample, with more written into the advert text.

This Actor does not output those fields at all, and it removes email addresses and UAE phone numbers from the description text as well. You get the brokerage name, the agent name and a link to the brokerage's page. Property data, not a contact list. If you need contact data, use a tool that says so.

One request, 20 to 28 complete properties

PropertyFinder ships the full property — description, price, size, bedrooms, amenities, coordinates, brokerage — inside the listing page itself. This Actor reads all of them from that single page and never opens individual property pages. 200 properties costs about 10 requests, not 210.

The page also carries new-project adverts in the same slots; those are not counted or charged as properties.

"studio" is a word, not a number — and it is kept as both

PropertyFinder writes bedrooms: "studio". That comes back as bedrooms: "studio" and bedroomsValue: 0, so you can read it and sort by it.

Values we cannot confirm are not invented

furnishing is passed through exactly as PropertyFinder publishes it — NO on 76, YES on 27 and PARTLY on 8 of the 111 properties measured, so roughly a quarter come furnished. completionStatus is published on sale listings only; on rentals it comes back null rather than an empty string pretending to be an answer. Currency and size unit are taken from the page rather than assumed, even though every property measured was AED and sqft.

An empty search is an answer, not a silent fallback

A city and property type PropertyFinder does not have returns one no-results row saying so, and it is not charged — it never quietly falls back to every property in the country. A page that could not be read at all is a different row (unreadable) carrying the HTTP status. And if your filters removed everything, that is a third kind of row (no-filter-match) which states how many properties were actually read — so "my filter was too tight" is never confused with "the portal is empty".


Input

Either paste a search URL, or build one from three fields.

FieldTypeDefaultDescription
searchUrlstringe.g. https://www.propertyfinder.ae/en/buy/dubai/villas-for-sale.html. Query parameters are stripped
offeringTypestringbuybuy, rent, commercial-buy, commercial-rent
citystringdubaidubai, abu-dhabi, sharjah, ajman, ras-al-khaimah, fujairah, umm-al-quwain, al-ain. Empty = the whole UAE
propertyTypestringapartmentsproperties (all), apartments, villas, townhouses, penthouses, offices, shops, warehouses
maxListingsinteger201-1000. One property = one row = one charged event
maxPagesinteger0Hard cap on requests; 0 = decide from maxListings
includeDescriptionbooleantrueFull advert text, HTML stripped, contacts removed
useProxybooleanfalseOff by default — PropertyFinder answers Apify's network directly. Switches on by itself if blocked
keywordsarrayKeep only properties containing one of these words
keywordMatchstringanyany or all
excludeKeywordsarrayDrop properties containing one of these
brokerNamesarrayKeep only these brokerages (partial match)
minPrice / maxPriceinteger0AED. A property with no published price is kept
requirePricebooleanfalseDrop properties whose price is withheld
minBedrooms / maxBedroomsinteger-1-1 = off. 0 keeps studios and up
minBathroomsinteger-1-1 = off
minAreaSqft / maxAreaSqftinteger00 = off
furnishingstringanyYES, NO, PARTLY
verifiedOnlybooleanfalseOnly listings PropertyFinder has verified (105 of 111 measured)
completionStatusstringanycompleted or off_plan. Sale listings only
listedWithinDaysinteger00 = no limit. An unreadable date is kept
monitoringModebooleanfalseReturn only properties not returned on a previous run
resetMonitoringStatebooleanfalseOne-shot: forget what was already returned
{ "offeringType": "buy", "city": "dubai", "propertyType": "apartments", "maxListings": 100,
"keywords": ["downtown", "marina"], "minPrice": 1000000, "maxPrice": 4000000,
"minBedrooms": 2, "furnishing": "YES", "verifiedOnly": true }

Filters are applied before you are charged

A property that does not match is never delivered and never charged. Three of the filters refuse to guess: a property with no published price is kept by minPrice and maxPrice (an unknown price is not a low one), a property with an unreadable listing date is kept by listedWithinDays, and a property whose furnishing or completion status PropertyFinder did not publish is kept rather than dropped. Turn on requirePrice if you want the unknowns dropped.

Monitoring mode turns this into a daily feed

Schedule it and set monitoringMode: true: each run returns only the properties it has not returned before. The first run returns everything and remembers it. Properties that were read but removed by your filters are remembered too, so a later change of filters does not resurrect them as false "new" listings. Properties that were read but did not fit under maxListings are not remembered, so they are still waiting for you on the next run rather than being silently lost. You pay for new stock, not for the same page every morning.

Measured on 2026-09-04: 188,682 properties for sale across the UAE, 111,191 for sale and 122,336 for rent in Dubai alone.


Output

One row per property:

{
"source": "propertyfinder.ae",
"status": "ok",
"listingId": "139221316",
"referenceNumber": "BH-S-230009-3",
"title": "Burj View | High Floor | Vacant",
"url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-downtown-dubai-boulevard-central-towers-boulevard-central-tower-1-139221316.html",
"offeringType": "Residential for Sale",
"propertyType": "Apartment",
"completionStatus": "completed",
"price": 2950000,
"priceCurrency": "AED",
"pricePeriod": "sell",
"isPriceHidden": false,
"pricePerArea": 2538,
"pricePerAreaUnit": "sqft",
"bedrooms": "2",
"bedroomsValue": 2,
"bathrooms": "2",
"bathroomsValue": 2,
"sizeValue": 1162,
"sizeUnit": "sqft",
"furnishing": "NO",
"locationName": "Boulevard Central Tower 1",
"locationFullName": "Boulevard Central Tower 1, Boulevard Central Towers, Downtown Dubai, Dubai",
"locationBreadcrumb": "Dubai, Downtown Dubai, Boulevard Central Towers",
"latitude": 25.191404342651367,
"longitude": 55.273895263671875,
"amenities": ["Balcony", "Built in Wardrobes", "Covered Parking", "Security"],
"brokerName": "betterhomes - Business Bay",
"brokerUrl": "https://www.propertyfinder.ae/en/broker/betterhomes-business-bay-2593",
"agentName": "Mamoun Hemora",
"agentLanguages": ["English"],
"isVerified": true,
"isNewConstruction": false,
"imagesCount": 18,
"listedAt": "2026-09-02T10:41:37Z",
"description": "…",
"scrapedAt": "2026-09-04T18:30:05.658Z"
}

Fill rates measured across 111 live properties on 2026-09-04: price, size, bedrooms, bathrooms, property type, location with coordinates, brokerage and listing date on 100%; amenities on 101 of 111; price per area and completion status on 100% of sale listings (PropertyFinder does not publish either on rentals).

Rows that are never charged

statuswhen
no-resultsPropertyFinder has no listings for this search. That is its answer, not a failure
no-such-searchPropertyFinder has no page at that address - a mistyped emirate or property type. Not a claim that there is nothing there
no-filter-matchListings were read, but your filters removed all of them. The row says how many were read
no-new-listingsMonitoring mode: nothing new since the previous run
unreadableThe page could not be read, or its embedded data was missing

A page is reported as unreadable, never as "no listings" when its embedded data is missing or when the page states a total above zero while yielding no properties — the count PropertyFinder prints on the page is compared against what was actually read. So a redesign on PropertyFinder's side, or a bot check that empties the list, shows up as an error rather than as a quiet, permanent "there is nothing for sale".


Pricing

Pay per property returned. Rows that report an empty search, a filter that matched nothing, or a page that could not be read are not charged. A property that appears twice is dropped before delivery, so it is never charged twice.


Notes

  • robots.txt was read in full on 2026-09-04. The User-agent: * section disallows filter parameters and *?*page=*&*, and allows standalone pagination (Allow: *?page=*). This Actor requests only the public SEO listing addresses plus ?page=N on its own.
  • Only public pages are read. No login, no API key.