Property Finder Home Scraper avatar

Property Finder Home Scraper

Pricing

from $0.74 / 1,000 results

Go to Apify Store
Property Finder Home Scraper

Property Finder Home Scraper

Extract property records from public Property Finder UAE searches, including price, location, property type, bedrooms, size, agent and broker details, and images. Supports filtered search URLs and deduplicates repeated property IDs.

Pricing

from $0.74 / 1,000 results

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Propertyfinder Listing Scraper

Returns: one row per property with title, listingType, propertyType, price, location, bedrooms, sizeSqft, and agentName. Input: {"startUrls":[{"url":"https://www.propertyfinder.ae/en/search?c=1&t=1&fu=0&ob=mr"}],"maxItems":30} Best for: UAE property market research, listing comparisons, and monitoring advertised sale or rental inventory.

{
"id": "154608004",
"title": "Full Fountain View | Fully Upgraded | Vacant",
"listingType": "buy",
"propertyType": "Apartment",
"price": 5999999,
"location": "Burj Khalifa, Burj Khalifa Area, Downtown Dubai, Dubai",
"bedrooms": "2",
"sizeSqft": 1716
}

Propertyfinder Listing Scraper collects public UAE property listings from Property Finder search pages. It uses the search page's embedded listing data to return a structured dataset. You can supply a filtered search URL or build a search with sale or rental mode, property type, location, price, and bedrooms. Each result has a stable property ID and the URL of the search page that supplied it. This Property Finder scraper is useful when a Property Finder API style dataset is needed for analysis, without opening individual listing detail pages.

What does Propertyfinder Listing Scraper do?

The Actor visits public Property Finder UAE search result pages and extracts the property listings embedded in those pages. Search results can mix properties with project advertisements, so the output contains property records only. It follows the search pagination until it reaches your maxItems limit, runs out of results, or encounters a page it cannot read. Promoted property listings can reappear on later pages; the Actor uses the property's stable ID to keep one record per property within a run.

The search page includes the property headline, type, price, full location, coordinates, bedroom and bathroom labels, size, agent and broker details, images, reference, listed date, and description. The Actor also reads amenity codes, furnishing and completion status, the site's verification flag, published RERA permit, image count, and a phone contact when present in the same search record. It also returns published agent, broker and location IDs, the location ID path, readable amenity names, listing tier, and the advertised price per area with its unit. These values come from the same search response. It does not infer missing values. If a field is absent, the corresponding output field is null; image and amenity arrays are empty when not supplied.

No login is required. The Actor uses Apify Proxy by default with a residential UAE connection. Property Finder may block individual requests; the Actor retries blocked responses with increasing delays and fresh proxy sessions. It sends at most one search request per second and processes pages sequentially.

What data can you get?

Each dataset row represents one public property listing. The field table below describes the exact output keys. The values come from the embedded search listing, so the search page is also preserved as sourceUrl. The detail url is supplied by the same listing data and is provided as a reference; the Actor does not visit it.

FieldMeaning
idStable Property Finder property ID used to remove duplicates.
sourceUrlSearch result page that contained this property.
urlPublic detail URL supplied in the search listing.
titleProperty listing headline.
listingTypebuy or rent, based on the listing price period and search.
propertyTypeAdvertised type such as Apartment.
priceNumeric advertised amount.
currencyPrice currency, such as AED.
pricePeriodSite period, such as sell, yearly, or monthly.
locationFull location name as shown by Property Finder.
latitudeLatitude from the location data, if present.
longitudeLongitude from the location data, if present.
bedroomsBedroom label, including studio where applicable.
bathroomsBathroom label.
sizeSqftAdvertised area when the size unit is square feet.
agentNameName of the listing agent.
brokerNameBroker company name.
brokerPhonePublic phone number in the broker record.
agentIdPublished agent identifier for grouping listings.
brokerIdPublished broker identifier for grouping listings.
locationIdPublished listing location identifier; distinct from the input search location.
locationPathDot-separated location IDs copied from the source hierarchy.
amenityNamesReadable amenity labels published with the listing; null when absent.
listingLevelSource promotional listing tier, such as premium; not a quality assessment.
pricePerAreaAdvertised price per area copied from the source, without calculation or rental annualization.
pricePerAreaUnitSource area unit paired with pricePerArea, such as sqft.
imagesImage URL array from the search listing.
referenceBroker or listing reference.
listedDateListing date returned by the site.
descriptionProperty description in the search listing.
amenitiesAmenity codes published in the search listing; an empty array when unavailable.
furnishedFurnishing status as supplied by Property Finder.
completionStatusPublished completion status, such as off_plan.
verifiedProperty Finder's listing verification flag.
reraPublished RERA permit number when provided.
imageCountPublished number of listing images; this can exceed the image URLs exposed in search results.
agentPhonePublic phone entry in the listing's contact options, when supplied.

The overview table highlights title, listing type, price, location, bedrooms, size, furnishing, verification, agent, and listing URL. The full dataset includes the fields above. Null means the source did not supply a usable value.

The additional identifiers help join records without relying on agent or agency name spelling. locationId describes the listing's own location, while the input locationId selects a search area. locationPath preserves the site's dot-separated hierarchy; it is not a postal address. amenityNames contains the readable labels supplied alongside the existing amenities codes, and remains null when that array is missing. listingLevel reports a promotional tier such as premium, rather than an independent judgment of property quality. pricePerArea and pricePerAreaUnit preserve the source's advertised amount and unit. They are not calculated by dividing price by size, and rental values are not converted to annual amounts. Compare matching price periods and units before using them in a market report.

How to use

Open the Actor input form and paste one or more Property Finder UAE search URLs into startUrls. Set maxItems to the number of unique property listings you want. A URL can already contain the site's sale or rental mode, property type, location, and price filters. The Actor preserves those filters while changing the page parameter to read later results.

For a search without a pasted URL, leave startUrls empty. Choose mode as buy or rent, then optionally set propertyTypeId, locationId, minPrice, maxPrice, or bedrooms. The Actor builds a Property Finder search URL from these values. Location and property type IDs are the site's numeric identifiers; copy them from a working search URL if you do not know them. For example, a URL with t=1 requests apartments. A location parameter uses l.

Empty or blocked targets complete successfully without placeholder rows. The final empty-result message suggests broader filters or residential AE proxy settings; logs identify failed targets. Later URLs still run, and collected rows remain. Invalid URLs fail with a corrective input message. maxItems is shared across every target.

Input

The input fields are optional so either a pasted search URL or search options can start a run. The default search is public UAE sale listings. The proxy option is exposed because a residential UAE connection is important for this site. The schema prefill demonstrates a filtered apartment search; it is an example in the editor, not a requirement for API calls.

Input fieldUse
startUrlsArray of URL objects, e.g. [{"url":"https://www.propertyfinder.ae/en/search?c=1"}]. Accepts HTTPS UAE /en/search pages, not detail URLs or plain strings. Nonempty URLs override all search filters below.
modebuy or rent for a generated search; default buy.
propertyTypeIdProperty type ID for a generated search; 1 is an apartment example.
locationIdLocation ID from a Property Finder search URL for a generated search.
minPriceMinimum advertised price for a generated search.
maxPriceMaximum advertised price for a generated search.
bedroomsArray of bedroom labels for a generated search.
maxItemsMaximum number of unique property records; default 50.
proxyConfigurationApify Proxy settings; default residential UAE.

For a reproducible apartment sale search, use:

{
"startUrls": [
{"url": "https://www.propertyfinder.ae/en/search?c=1&t=1&fu=0&ob=mr"}
],
"maxItems": 30,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "AE"
}
}

To collect rental listings, use a rental search URL with c=2 or omit startUrls and choose "mode":"rent". The site can show yearly and monthly rental prices. Read pricePeriod alongside price before comparing rental amounts. A sale price with pricePeriod set to sell has a different meaning from a rent price with a periodic label.

Output

The following shortened record is from a local run on October 14, 2026, of the apartment sale search shown above. The full dataset record also contained latitude, longitude, bathrooms, broker phone, images, reference, listed date, and description. Live listings can change between runs.

{
"id": "154608004",
"sourceUrl": "https://www.propertyfinder.ae/en/search?c=1&t=1&fu=0&ob=mr&page=1",
"url": "https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-downtown-dubai-burj-khalifa-area-burj-khalifa-154608004.html",
"title": "Full Fountain View | Fully Upgraded | Vacant",
"listingType": "buy",
"propertyType": "Apartment",
"price": 5999999,
"currency": "AED",
"pricePeriod": "sell",
"location": "Burj Khalifa, Burj Khalifa Area, Downtown Dubai, Dubai",
"bedrooms": "2",
"sizeSqft": 1716,
"agentName": "Yana Yavorska",
"brokerName": "Metropolitan Premium Properties",
"amenities": [
"AC",
"BW",
"SE",
"CP",
"PA",
"SP"
],
"furnished": "YES",
"completionStatus": "completed",
"verified": true,
"imageCount": 23,
"agentPhone": "+97144286124"
}

Download the dataset or use the Apify API. Join runs by id; sourceUrl identifies the search page. listedDate comes from the listing. Images are URL links, not downloaded files.

How much does it cost?

This Actor is charged per result pushed to the dataset. Each unique property row is charged once. Rows skipped because they are project ads or duplicate property IDs are not charged as results. The current rate and billing details are shown in the Actor's Pricing tab. Set maxItems to control the upper bound on returned rows.

The Actor fetches search pages through the proxy selected in proxyConfiguration. Search pages can be large, so a wider search or a larger maxItems may require more page requests. The output count, not the number of images or optional fields in a record, determines the result event count. Review the Pricing tab for the current terms before scheduling frequent runs.

Use with AI agents (MCP)

An AI agent can call this Actor through Apify MCP when it needs structured UAE property listings. Configure the Apify MCP server with the Actor tool path:

https://mcp.apify.com?tools=axiomworks/propertyfinder-listings-scraper

Give the agent a Property Finder search URL or a clear set of search options and a maxItems bound. Ask it to compare prices using the currency and pricePeriod fields, or to group listings by location and propertyType. Because listings change, include the run date in any saved analysis and retain the sourceUrl and url fields for review.

Example prompts for an MCP client:

  • “Collect 20 apartment sale listings from this Property Finder search URL and show title, price, location, bedrooms, sizeSqft, and url.”
  • “Get 30 rental property records from my search URL and compare price by pricePeriod, propertyType, and location.”
  • “Find repeated property IDs across my saved datasets, then show the sourceUrl and reference for each match.”

Agents should treat null fields as unavailable source data. A missing brokerPhone or sizeSqft does not mean the property has no broker contact or size; it means the embedded listing did not provide a usable value to this Actor.

Integrations and API

You can call the Actor from an Apify integration, a script, or an API client. Set your Apify token in the APIFY_TOKEN environment variable. The examples use the Actor's Store path and request a bounded set of results. They do not require a Property Finder login.

Python:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("axiomworks/propertyfinder-listings-scraper").call(
run_input={"mode": "rent", "maxItems": 20}
)
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(len(items))

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('axiomworks/propertyfinder-listings-scraper')
.call({ mode: 'buy', propertyTypeId: 1, maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
process.stdout.write(String(items.length));

cURL:

curl -X POST "https://api.apify.com/v2/acts/axiomworks~propertyfinder-listings-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"buy","propertyTypeId":1,"maxItems":20}'

For scheduled monitoring, compare records by id and retain sourceUrl; changing search order can move listings between pages.

FAQ

Can I use a URL with filters already applied? Yes. Paste a public /en/search URL into startUrls. Its query parameters determine the search. The Actor changes only the page number as it paginates. This is often the easiest way to target an emirate, neighborhood, or a particular property type.

Why are there fewer results than maxItems? The search may have fewer property listings, or some entries may be project advertisements. Duplicate property IDs across pages are removed. A blocked or changed search response can also stop pagination early; the run log records that condition.

Does it visit property pages? No. The details in a row are taken from the embedded search result record. This keeps the request rate modest and ensures sourceUrl points to the page that supplied the values. Some detail-page-only information is outside this Actor's output.

How are sale and rental prices represented? The numeric amount is price, while currency and pricePeriod explain its unit and interval. The listingType field groups sale as buy and rental as rent. Compare these fields together.

Why is a field null? Property Finder may omit it from the embedded listing, or its value may not be in the expected type. The Actor keeps the row and leaves that field null. The images field is always an array and may be empty.

This Actor accesses public search pages without logging in. You are responsible for deciding whether your intended use complies with applicable law and Property Finder's terms. Respect rights in listing descriptions and images, protect any personal data you retain, and use the data in a way that fits your purpose. This Actor is an independent tool and is not affiliated with or endorsed by Property Finder.

Feedback

If a field becomes empty unexpectedly, share the search URL, the affected field name, and the run log through the Actor's feedback channel. If pagination stops early, include the last sourceUrl and the requested maxItems. Those details help distinguish a site layout change from a search with no more property rows.