PropertyFinder Scraper | Contacts & History
Pricing
from $0.70 / 1,000 property listings
PropertyFinder Scraper | Contacts & History
Extract Property Finder UAE listings and transaction history with rich property detail, agent and broker contacts, media, pricing, amenities, and market filters. Built for enterprise-grade UAE real estate intelligence, lead enrichment, and automated analytics pipelines.
Pricing
from $0.70 / 1,000 property listings
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
1
Bookmarked
31
Total users
2
Monthly active users
12 days ago
Last modified
Categories
Share
Slug: fatihtahta/propertyfinder-scraper-all-in-one
Overview
PropertyFinder Scraper | Contacts & History collects structured Property Finder UAE data for two related workflows: current property listings and Dubai transaction-history records. Active listing records can include property details, asking prices, locations, amenities, agent and broker contacts, media information, publication signals, quality flags, and source context; transaction-history records can include recorded rent or sale amounts, property size, transaction dates, contract dates, location context, and comparable property attributes. Property Finder UAE is one of the region's key real estate marketplaces, making its public listing and transaction data valuable for market intelligence, lead workflows, pricing analysis, competitive tracking, and operational reporting. The actor turns repeatable inputs into structured JSON records that can be reviewed directly in Apify or loaded into CRMs, spreadsheets, BI dashboards, warehouses, enrichment systems, and downstream APIs. It is designed for dependable recurring data acquisition with clear input boundaries, predictable output shapes, and transparent handling of optional fields, without making unsupported claims about completeness, uptime, or target-side availability.
Why Use This Actor
- Market research and analytics teams: build normalized datasets for UAE supply analysis, asking-price movement, active inventory, transaction benchmarks, bedroom mix, location depth, and market intelligence reporting.
- Product and content teams: enrich internal property pages, comparison tools, editorial datasets, regional catalogs, or neighborhood guides with structured listing, location, media, amenity, and broker attributes.
- Developers and data engineering teams: feed downstream systems with automation-ready JSON records, stable identifiers, nested entities, source context, and a repeatable input contract that is suitable for scheduled ingestion.
- Lead generation and enrichment teams: collect public agent, broker, phone, email, WhatsApp, and listing context for compliant enrichment pipelines, territory planning, account research, and CRM updates.
- Monitoring and competitive tracking teams: schedule recurring runs to observe new listings, pricing movement, premium inventory, broker activity, location coverage, transaction records, and changes in available public data.
- Operations and reporting teams: create repeatable datasets for weekly market notes, executive summaries, branch performance reviews, inventory snapshots, and data quality checks.
Common Use Cases
- Market intelligence: monitor active supply, asking prices, recorded transactions, availability, property types, bedroom mix, size bands, amenities, media availability, and location movement.
- Lead generation: build targeted prospect lists from public listings, agents, brokers, phone numbers, email addresses, WhatsApp contact options, and property references.
- Competitive monitoring: track new inventory, featured or premium listings, broker activity, pricing bands, media-rich listings, and comparable property segments across locations.
- Catalog and directory building: populate internal property, broker, location, contact, media, and transaction databases with structured public records.
- Data enrichment: add current public listing attributes, transaction attributes, contacts, and location metadata to existing CRM, BI, analytics, underwriting, or valuation datasets.
- Recurring reporting: schedule periodic runs for dashboards, alerts, market snapshots, pricing reviews, acquisition reports, and internal trend analysis.
- Transaction-history analysis: compare recorded rental and sale transactions by Dubai location, building, property type, bedroom count, size range, timeframe, and price band.
Quick Start
- Choose
search_typefirst. Useactive_listingswhen you need live sale or rent ads, and usetransaction_historywhen you need recorded Dubai rent or sold transaction data. - Define the search scope. For active listings, set
deal_type,property_type, and optionallocation; for transaction history, sethistoric_deal_typeand any relevanthistoric_*filters. - Start with a small
limit, such as10or25, so you can validate the first records quickly before running a larger collection. - Run the actor in Apify Console and wait for the dataset to be created.
- Open the dataset and inspect several records, especially identifiers, pricing, location fields, contacts, dates, and source context.
- Increase the limit, refine filters, keep
maximize_coverageenabled for broad listing or transaction-history discovery when appropriate, or schedule the actor after the output shape is verified.
Input Parameters
Configure either active listings or transaction-history collection; each filter belongs to one of those two modes.
| Parameter | Type | Description | Default |
|---|---|---|---|
search_type | string | Chooses the dataset family to collect. Use active_listings for current sale/rent listings and contacts. Use transaction_history for Dubai rent or sold transaction records. Allowed values: active_listings, transaction_history. | active_listings |
deal_type | string | Active listings only. Chooses whether active listing records should represent current rental ads or current sale ads. Allowed values: rent, buy. | buy |
property_type | string | Active listings only. Defines the active listing category. Use residential_all or commercial_all for broad discovery, or choose a specific subtype when you need a focused dataset. Allowed values: residential_all, commercial_all, residential_apartment, residential_villa, residential_townhouse, residential_penthouse, residential_compound, residential_duplex, residential_full_floor, residential_half_floor, residential_whole_building, residential_land, residential_bulk_unit, residential_bungalow, residential_hotel_and_hotel_apartment, commercial_office_space, commercial_retail, commercial_warehouse, commercial_shop, commercial_villa, commercial_show_room, commercial_full_floor, commercial_half_floor, commercial_whole_building, commercial_land, commercial_bulk_unit, commercial_factory, commercial_labor_camp, commercial_staff_accommodation, commercial_business_centre, commercial_co_working_space, commercial_farm. | residential_all |
location | string | Active listings only. Narrows active listing collection to a UAE city, community, neighborhood, subcommunity, or building name, such as Dubai, Business Bay, or Dubai Marina. Leave empty for active listings without a location filter. | - |
completion | string | Active buy listings only. Narrows sale listings by completion status. This is useful when separating off-plan project inventory from ready/completed resale inventory. Allowed values: off_plan, ready. | - |
furnishing | string | Active listings only. Narrows active records by furnishing status when that distinction matters for pricing, lead routing, or customer segmentation. Allowed values: furnished, unfurnished, partially_furnished. | - |
bedroom_count | array of strings | Active listings only. Multi-select bedroom filter for matching one or more bedroom counts. Use studio for studios and 7_plus for 7+ bedrooms. Allowed values: studio, 1, 2, 3, 4, 5, 6, 7, 7_plus. | - |
bathroom | array of strings | Active listings only. Multi-select bathroom filter for matching one or more bathroom counts. Use 7_plus for 7+ bathrooms. Allowed values: 1, 2, 3, 4, 5, 6, 7, 7_plus. | - |
amenities | array of strings | Active residential listings only. Narrows results to listings that match selected amenity signals. Useful for lifestyle filters, premium inventory, family-friendly inventory, parking analysis, and amenity-based segmentation. Allowed values: central_a_c, maids_room, balcony, shared_pool, shared_spa, shared_gym, concierge_service, covered_parking, view_of_water, view_of_landmark, pets_allowed, study, private_garden, private_pool, private_gym, private_jacuzzi, built_in_wardrobes, walk_in_closet, built_in_kitchen_appliances, maid_service, childrens_play_area, childrens_pool, barbecue_area. | - |
keyword | string | Active listings only. Adds a free-text phrase to the active listing search, such as beach, sea view, brand new, or chiller free. Use specific phrases for cleaner results. | - |
multimedia | string | Active listings only. Restricts active listings to records with a selected media signal. Useful when your workflow requires richer listing media. Allowed values: 360_tours, video. | - |
sort_by | string | Active listings only. Controls which active listings are collected first. featured follows the default ordering, newest supports monitoring workflows, and price sorting supports price-band sampling. Allowed values: featured, newest, lowest_price, highest_price. | featured |
min_price | integer | Active listings only. Minimum asking price in AED. Use with max_price for a bounded price band, or alone for open-ended high-value searches. | - |
max_price | integer | Active listings only. Maximum asking price in AED. Use with min_price for a bounded price band, or alone when collecting under a budget ceiling. | - |
min_property_area | integer | Active listings only. Minimum property size in square feet. Useful for filtering out smaller units or focusing on larger inventory. | - |
max_property_area | integer | Active listings only. Maximum property size in square feet. Useful for excluding very large records from a focused comparable set. | - |
maximize_coverage | boolean | Enabled by default for broad active listing or transaction-history searches, especially no-location, city-wide, Dubai-wide, or high-limit runs. The actor keeps the same criteria while collecting through smaller price ranges when target pagination caps would otherwise hide matching records. Turn it off for small, focused searches. | true |
historic_deal_type | string | Transaction history only. Chooses the historic transaction family. Use rent for rental contracts and buy for sold transaction records. Allowed values: rent, buy. | - |
historic_location | string | Transaction history only. Narrows transaction history to a Dubai community, neighborhood, or building, such as Business Bay or Dubai Creek Harbour. Leave empty for Dubai-wide transaction records. | - |
historic_timeframe | string | Transaction history only. Selects the historical window. Short windows support recent movement checks; longer windows support broader comparisons. Allowed values: ytd, 1w, 1m, 3m, 6m, 1y, 3y. | 1y |
historic_property_type | string | Transaction history only. Narrows transaction records by property type. Use all for a complete market view or a specific type for like-for-like comparison. Allowed values: all, apartment, villa, hotel_and_hotel_apartment. | all |
historic_bedroom_count | string | Transaction history only. Single bedroom-count filter for historic records. Use it when comparing transactions for a specific unit size. Allowed values: studio, 1, 2, 3, 4, 5, 6, 7, 7_plus. | - |
historic_min_price | integer | Transaction history only. Minimum recorded transaction price in AED. Use it to remove lower-value transactions from a historic dataset. | - |
historic_max_price | integer | Transaction history only. Maximum recorded transaction price in AED. Use it to focus on a valuation band or budget segment. | - |
historic_min_property_area | integer | Transaction history only. Minimum recorded property size in square feet. Use it for larger-unit or villa comparisons. | - |
historic_max_property_area | integer | Transaction history only. Maximum recorded property size in square feet. Use it to remove unusually large units from a comparable set. | - |
historic_completion | string | Sold transaction history only. Narrows sold transaction records by completion status. This filter is not relevant to rental contract history. Allowed values: off_plan, ready. | - |
limit | integer | Maximum number of records to save. Minimum value: 1. Use a small value for validation, then increase it once the dataset shape and scope are confirmed. | - |
The schema intentionally separates active listing controls from transaction-history controls. Active listing fields such as deal_type, property_type, furnishing, amenities, keyword, and active price or area bounds apply to live listings. Historic fields such as historic_deal_type, historic_timeframe, historic_property_type, and historic price or area bounds apply to transaction-history records.
If a field is optional, leaving it empty usually broadens the result set. This is useful for discovery, market scans, and initial research. Add optional filters when you need cleaner segmentation, smaller comparable groups, or repeatable monitoring for a narrow business question.
Choosing Inputs
Use active_listings when you need current sale or rent ads with listing attributes, contacts, media, availability-style flags, and publication details. This mode is usually the right choice for lead generation, live inventory monitoring, broker intelligence, catalog building, and recurring active-market reports.
Use transaction_history when you need Dubai rent or sold transaction records with transaction dates, recorded prices, property size, bedroom count, location context, and contract dates when available. This mode is usually the right choice for pricing research, valuation support, market comparison, rent movement analysis, and historical reporting.
For active listings, begin with deal_type, property_type, and location. Add min_price, max_price, min_property_area, max_property_area, bedroom_count, bathroom, furnishing, amenities, keyword, and multimedia only when they represent real business requirements. Use sort_by: "newest" for monitoring new supply, lowest_price or highest_price for price-band sampling, and featured when you want the default marketplace ordering.
For transaction history, begin with historic_deal_type, historic_location, and historic_timeframe. Add historic_property_type, historic_bedroom_count, historic price bounds, historic area bounds, and historic_completion when you need a tighter comparable set. Historic location is Dubai-focused; leave it empty for Dubai-wide transaction records, or enter a Dubai community, neighborhood, or building for a narrower market.
Use limit as a validation and cost-control tool. A small limit helps confirm that the dataset contains the right record type and fields; a larger limit is appropriate after the input strategy is proven. maximize_coverage is enabled by default for broader active listing or transaction-history runs where you want more complete collection within the same criteria.
Example Inputs
The examples below are intentionally small and practical. Use them as starting points, then adjust location, property type, price, timeframe, and limit values for your own workflow.
Example: Targeted active sale listings in Dubai Marina
Use this when you want a focused sale-listing sample for a specific residential segment. It collects one- and two-bedroom apartment listings in Dubai Marina under an asking-price ceiling, which is useful for validating pricing, location, and contact fields before increasing coverage.
{"search_type": "active_listings","deal_type": "buy","property_type": "residential_apartment","location": "Dubai Marina","bedroom_count": ["1", "2"],"max_price": 2500000,"limit": 25}
Example: Newest furnished rentals in Business Bay
Use this for active rental monitoring. The newest sort is useful when the operational question is "what appeared recently?" rather than "what is the broadest available sample?"
{"search_type": "active_listings","deal_type": "rent","property_type": "residential_all","location": "Business Bay","sort_by": "newest","furnishing": "furnished","limit": 50}
Example: Recent Dubai Creek Harbour rental transactions
Use this when the goal is historical rent analysis rather than live listing collection. The example narrows records to recent two-bedroom apartment rental transactions in Dubai Creek Harbour.
{"search_type": "transaction_history","historic_deal_type": "rent","historic_location": "Dubai Creek Harbour","historic_timeframe": "1m","historic_property_type": "apartment","historic_bedroom_count": "2","limit": 100}
Output
Output destination
The actor writes results to an Apify dataset as JSON records. Records use a normalized real estate envelope so active listings, project/development rows, and transaction-history rows can be loaded into ETL jobs, BI tools, CRMs, warehouses, and AI workflows without first untangling a large flat object.
Every saved row includes record_type, record_id, source_context, and fingerprint. Use record_type to branch between record families and record_id as the primary idempotency key. Keep fingerprint as a secondary change-tracking and duplicate-detection key.
The main record families are:
property_listing: current public sale or rent listing rows.development: public new-project or development rows returned in active listing search results.transaction: Dubai transaction-history rows for recorded rent or sold transactions.source_record: rare fallback rows preserved from public structured data when the page does not expose a stronger Property Finder record shape.
Examples
Example: Property listing
{"record_type": "property_listing","record_id": "92245796","entity": {"id": "92245796","listing_id": "D3HP32PEQVR0THR08S6AKPQ18R","title": "Ultra-Luxury 6-Bedrooms Villa in Cavalli Estates","url": "https://www.propertyfinder.ae/en/plp/buy/villa-for-sale-dubai-damac-hills-cavalli-estates-92245796.html","external_ids": {"property_id": "92245796","listing_id": "D3HP32PEQVR0THR08S6AKPQ18R","reference": "HGRE-2976"}},"listing": {"type": "property","property_type": "Villa","offering_type": "Residential for Sale","reference": "HGRE-2976","description": "Sample public listing description.","publication": {"listed_date": "2026-05-21T07:02:51Z","listing_level": "premium","listing_level_label": "premium"}},"pricing": {"amount": 19487000,"currency": "AED","period": "sell","is_hidden": false,"price_per_area": {"price": 2472,"unit": "sqft"}},"location": {"id": "11776","full_name": "CAVALLI ESTATES, Damac Hills, Dubai","area_name": "CAVALLI ESTATES","city": "Dubai","coordinates": {"lat": 25.024019241333008,"lon": 55.24744415283203},"hierarchy": [{"id": "1","name": "Dubai","type": "CITY","slug": "dubai","level": "0"}]},"property": {"category_id": 1,"property_type_id": 35,"bedrooms": "6","bedrooms_value": 6,"bathrooms": "7+","bathrooms_value": 9,"size": {"value": 7880,"unit": "sqft"},"completion_status": "off_plan","furnished": "NO","rera": "69792572927","amenities": ["Balcony","Covered Parking","Private Pool"]},"availability": {"is_available": true},"media": {"images": [{"small": "https://static.shared.propertyfinder.ae/media/images/listing/example/416x272.jpg","medium": "https://static.shared.propertyfinder.ae/media/images/listing/example/668x452.jpg"}],"image_count": 29,"video_url": "https://youtu.be/example","has_360_view": false},"contact_details": {"primary_phone": "+971501234567","primary_email": "omar.haddad@example-realestate.ae","options": [{"type": "email","value": "omar.haddad@example-realestate.ae","link": "mailto:omar.haddad@example-realestate.ae","is_did": false},{"type": "phone","value": "+971501234567","link": "tel:+971501234567","is_did": false}]},"relationships": {"agent": {"id": "900001","user_id": 120045,"name": "Omar Haddad","email": "omar.haddad@example-realestate.ae","languages": ["English","Arabic"],"slug": "omar-haddad","is_super_agent": true},"broker": {"id": "7001","name": "Harbor Gate Real Estate L.L.C.","email": "office@example-realestate.ae","phone": "+971501112233","slug": "harbor-gate-real-estate-5955"}},"metrics": {"lead_value": 100,"rank_score": 99.4216079711914,"quality_score": 100},"attributes": {"flags": {"is_verified": true,"is_available": true,"is_premium": true,"is_super_agent": true},"source_specific": {"rental_payment_management": {"enabled": false}}},"source_context": {"source_name": "Property Finder UAE","source_domain": "www.propertyfinder.ae","source_url": "https://www.propertyfinder.ae/search/_next/data/example/en/search.json?c=1&fu=0&l=1&ob=mr","listing_url": "https://www.propertyfinder.ae/en/plp/buy/villa-for-sale-dubai-damac-hills-cavalli-estates-92245796.html","seed_type": "search","seed_id": "650aa263fecdc9ded325","search_location": "Dubai","deal_type": "buy","page_index": 1,"position": 4,"aggregated_position": 4,"details_path": "/en/plp/buy/villa-for-sale-dubai-damac-hills-cavalli-estates-92245796.html"},"fingerprint": "ff4501c98872029f456b"}
Example: Development
{"record_type": "development","record_id": "a0b2ba1b-d641-478e-9f9b-3ebb3e0bf18a","entity": {"id": "a0b2ba1b-d641-478e-9f9b-3ebb3e0bf18a","title": "Tara Park 2 by Modon","url": "https://www.propertyfinder.ae/en/new-projects/modon-properties/tara-park-2-by-modon","external_ids": {"project_id": "a0b2ba1b-d641-478e-9f9b-3ebb3e0bf18a"}},"listing": {"type": "project","property_type": "apartment"},"pricing": {"price_from": 1680000,"down_payment_percentage": 5,"effective_price": 1680000,"payment_plans": [{"title": "Standard"}]},"location": {"full_name": "Abu Dhabi,Al Reem Island,Tamouh,Tara Park","area_name": "Abu Dhabi,Al Reem Island,Tamouh,Tara Park","city": "Abu Dhabi","hierarchy": [{"id": "18199","name": "Tara Park","type": "TOWER"}]},"project": {"slug": "modon-properties/tara-park-2-by-modon","bedrooms": [1,2,3],"delivery_date": "2030-04-01T13:08:44Z","construction_phase": "under_construction","stock_availability": "available","min_size": {"value": 80.9,"unit": "sqm"},"max_size": {"value": 237.9,"unit": "sqm"}},"availability": {"stock_availability": "available"},"relationships": {"developer": {"id": "595398","name": "Modon Properties","logo": "https://example.com/logo.png"}},"contact_details": {"options": [{"type": "whatsapp","value": "971543434369"}]},"attributes": {"flags": {"is_sponsored": false},"source_specific": {"campaign_type": "project"}},"source_context": {"source_name": "Property Finder UAE","source_domain": "www.propertyfinder.ae","source_url": "https://www.propertyfinder.ae/search/_next/data/example/en/search.json?c=1&fu=0&l=1&ob=mr","listing_url": "https://www.propertyfinder.ae/en/new-projects/modon-properties/tara-park-2-by-modon","seed_type": "search","page_index": 1,"position": 1},"fingerprint": "f991fd38912158bd44ac"}
Example: Transaction history
{"record_type": "transaction","record_id": "0055170aa3d68ad297310b9f9e27e43b","entity": {"id": "0055170aa3d68ad297310b9f9e27e43b","external_ids": {"transaction_id": "0055170aa3d68ad297310b9f9e27e43b"}},"transaction": {"type": "rented","dates": {"transaction_date": "2026-05-21","contract_start_date": "2026-05-22","contract_end_date": "2027-05-21","status": "New"}},"location": {"area": "Dubai Creek Harbour (The Lagoons)","name": "Creek Rise Tower 1","location_id": "11931","url": "https://www.propertyfinder.ae/en/transactions/rent/dubai/dubai-creek-harbour-the-lagoons-creek-rise-creek-rise-tower-1","show_link": true},"property": {"property_type": "Apartment","bedrooms": "2","bedrooms_value": 2,"size": {"value": 1255.931852,"unit": "sqft"},"property_number": "101"},"pricing": {"amount": 130000,"currency": "AED","price_per_area": {"price": 8.625733407494895,"unit": "sqft"}},"source_context": {"source_name": "Property Finder UAE","source_domain": "www.propertyfinder.ae","source_url": "https://www.propertyfinder.ae/dataguru/_next/data/example/en/transactions/rent/dubai/dubai-creek-harbour-the-lagoons.json?category=rent&period=1m","seed_type": "search","seed_id": "904d5da676f1131f8ead","search_location": "Dubai Creek Harbour","deal_type": "rented_properties","historic_deal_type": "rent","historic_timeframe": "1m","historic_property_type": "apartment","page_index": 1,"position": 1},"fingerprint": "0eb52f65e72533971e50"}
Field Reference
Fields marked optional may be absent, empty, or null depending on the public record, listing family, transaction family, location, selected filters, and source availability.
Shared Envelope
- record_type (string, required): Public record family. Typical values are
property_listing,development,transaction, and raresource_recordfallback rows. - record_id (string, required): Stable source identifier for deduplication and upserts. Identifiers stay strings even when they look numeric.
- entity (object, optional): Primary entity identity, display title, public URL, and source identifiers.
- source_context (object, required): Source name, source domain, source URL, listing URL when available, seed details, search location, page, position, and run-scope context.
- fingerprint (string, required): Stable record signature for duplicate detection and change tracking.
Property Listing Records
- listing: Listing type, property type, offering type, reference, description, and publication details.
- pricing: Asking amount, currency, period, hidden-price status, and price-per-area details.
- location: Location IDs, full name, area and city labels, coordinates, slug/path values, and hierarchy.
- property: Category IDs, bedroom and bathroom labels, numeric room values, size, plot or built-up area, completion, furnishing, RERA, payment, utility, and amenity fields.
- availability: Normalized availability signals such as
is_available. - media: Image objects, image count, videos, 360-view fields, and floor plans.
- contact_details: Primary public phone/email and available public contact methods.
- relationships: Related public agent and broker profile details.
- metrics: Ranking, quality, lead, cashback, or marketplace metrics when available.
- attributes: Source-specific flags and auxiliary public attributes that do not fit the stronger normalized groups.
Development Records
- listing: Project listing type and source property type.
- project: Slug, bedroom range, delivery date, construction phase, stock availability, and size range.
- pricing: Starting price, down-payment percentage, effective price, and payment plans.
- relationships.developer: Public developer identity, name, and logo when available.
- contact_details: Public project contact methods when available.
- attributes: Sponsored flags, campaign type, and other source-specific project attributes.
Transaction-History Records
- transaction.type: Transaction category such as
rentedorsold. - transaction.dates: Transaction date, contract start/end dates, and status when available.
- location: Transaction area, location name, location ID, public transaction-location URL, and link availability.
- property: Property type, bedroom label and value, recorded size, and property/unit number.
- pricing: Recorded amount, currency, and price-per-area details.
- source_context: Historic search context, including requested historic deal type, timeframe, property type, and location.
Data Quality, Guarantees, And Handling
- Structured records: results are normalized into predictable JSON objects for downstream use. Active listings and transaction-history records are documented separately so pipelines can map each shape intentionally.
- Best-effort extraction: fields may vary by region, session, availability, public page format, or target-side experiments. The actor preserves available public values, but sparse listings or historic records may naturally contain fewer fields.
- Optional fields: null-check optional values in downstream code, especially
contact_details,relationships,media,metrics,attributes, listing publication data, and transaction dates. Do not assume every listing has all contact methods, all media types, or every quality signal. - Deduplication: use
record_idas the primary stable key, withrecord_typeandfingerprintfor mixed datasets and change tracking. This is especially important for scheduled runs and warehouse upserts. - Freshness: results reflect the publicly available data at run time. Re-run the actor when you need a fresh view of active inventory, newly visible contacts, or recent transaction-history records.
- Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, search indexes, enrichment systems, or internal reporting tables.
- Schema evolution: target-side public data can change over time. Keep downstream ingestion tolerant of new optional fields, missing optional fields, and minor changes in display labels.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. This helps confirm that you selected the correct mode and that records contain the fields your workflow needs. - Use one geography, property type, or market segment per run when you need cleaner segmentation. Separate runs are easier to compare than one broad mixed dataset.
- Leave optional filters empty when the goal is broad discovery. Add filters only when you want to reduce noise or isolate a specific comparable group.
- Add filters gradually to understand how each field changes coverage and result quality. For example, validate location first, then property type, then price or bedroom filters.
- Use
sort_by: "newest"for active-listing monitoring workflows where recent listings matter more than default marketplace order. - Use
historic_timeframedeliberately. Short windows such as1wor1mare better for recent movement, while1yor3ysupports broader historical analysis. - Keep
maximize_coverageenabled for broad active-listing or transaction-history collection when you want more complete coverage within the same criteria, especially for city-wide, Dubai-wide, or no-location runs. - Use stable identifiers for deduplication when storing results over time. A reliable upsert strategy makes scheduled runs much easier to operate.
How to Run on Apify
- Open the Actor in Apify Console.
- Configure the available input fields for the target scope. Choose active listings or transaction history first, then fill only the fields that apply to that mode.
- Set the maximum number of outputs to collect with
limit. For first runs, use a small number so review is fast. - Click Start and wait for the run to finish.
- Open the dataset and review the first records. Confirm that
record_type,record_id, location, pricing, transaction dates,contact_details, andrelationshipsmatch your use case. - Download results in JSON, CSV, Excel, or other supported formats, or connect the dataset to your downstream workflow.
Scheduling & Automation
Scheduling
Automated Data Collection
Schedule runs to keep active listing, contact, and transaction-history datasets current for recurring reporting or monitoring workflows. Use consistent inputs across scheduled runs to make comparisons easier over time, and store records with stable identifiers so downstream systems can upsert rather than duplicate data.
- Navigate to Schedules in Apify Console.
- Create a new schedule, such as daily, weekly, or custom cron.
- Configure input parameters.
- Enable notifications for run completion.
- Add webhooks for automated processing.
Integration Options
- CRM enrichment: sync public listing, agent, broker, and contact attributes into account or lead records.
- BI dashboards: monitor pricing, active inventory, transaction movement, location coverage, and broker activity over time.
- Google Sheets or Airtable: review smaller market samples, lead lists, and QA datasets with non-technical stakeholders.
- Webhooks: trigger validation, notification, or ingestion workflows after each completed run.
- Data enrichment pipelines: append current public property and transaction attributes to existing CRM, BI, or valuation datasets.
- Warehouse and ETL workflows: load JSON records into analytical stores for historical reporting and repeatable market analysis.
Export Formats And Downstream Use
Apify datasets can be exported or consumed by downstream systems for reporting, enrichment, monitoring, and operational analysis. Choose the format based on who will use the data and how automated the workflow needs to be.
- JSON: for APIs, applications, and data pipelines that need nested records, stable identifiers, and full source context.
- CSV or Excel: for spreadsheet workflows, manual review, quick analysis, lead review, and stakeholder sharing.
- API access: for automated ingestion into internal systems, enrichment processes, QA workflows, and scheduled sync jobs.
- BI and warehouses: for reporting, dashboards, historical analysis, market snapshots, and recurring operational metrics.
Performance
Estimated run times:
- Small runs (< 1,000 outputs): ~3-5 minutes.
- Medium runs (1,000-5,000 outputs): ~5-15 minutes.
- Large runs (5,000+ outputs): ~15-30 minutes.
Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.
For recurring workflows, measure a representative small run first, then scale gradually. Broad active-listing discovery, media-rich listings, and large transaction-history scopes can produce more data and therefore require more time to complete.
Limitations
- Availability depends on what Property Finder UAE publicly exposes at run time. If a listing, contact method, media item, or transaction is not publicly visible, it may not appear in the dataset.
- Some optional fields may be missing on sparse records, older transaction records, commercial records, or listings with limited public details.
- Very broad active-listing searches may take longer or require higher limits, especially when collecting across large cities, broad property categories, or no-location searches.
- Target-side changes can affect field availability, labels, naming, or which optional attributes are present.
- Regional, account, or availability differences may change visible results.
- Transaction-history inputs are designed for Dubai transaction records; non-Dubai historic locations are not part of this mode.
limitcontrols the maximum number of saved records. It does not guarantee that the target scope contains that many matching public records.
Troubleshooting
- No results returned: check
search_type, filter combinations, location spelling, property type, and whether Property Finder has matching public records for that exact scope. For transaction history, confirm that you are usinghistoric_*fields rather than active listing fields. - Fewer results than expected: broaden filters, raise
limit, remove highly restrictive fields, or verify that the selected location and category contain enough matching public records. - Some fields are empty: optional fields depend on what each listing or transaction publicly provides.
contact_details,relationships, media, attributes, metrics, publication data, and contract dates can vary by record. - Run takes longer than expected: reduce scope, lower
limitfor validation, split broad collection into smaller location or price segments, or use more targeted filters. - Unexpected active listing results: confirm
deal_type,property_type,location, price bounds, area bounds,sort_by, and whether optional filters such asamenities,keyword, ormultimediaare narrowing the dataset too aggressively. - Unexpected transaction-history results: confirm
historic_deal_type,historic_location,historic_timeframe,historic_property_type, bedroom count, price bounds, area bounds, and completion status. - Output changed: compare the current output with the field reference and report a small sample if support is needed.
FAQ
What data does this actor collect?
It collects active Property Finder UAE listing records, new-project/development rows, and Dubai transaction-history records. Active listings can include property details, asking prices, locations, public contact methods, agent and broker relationships, media, attributes, metrics, publication data, and source context. Transaction records can include transaction type, location, property details, recorded amount, price per area, transaction dates, contract dates, source context, and stable identifiers.
Can I filter by location, category, date, price, or other criteria?
Yes. Active listings support location, deal type, property type, completion, furnishing, bedrooms, bathrooms, amenities, keyword, multimedia, sort, price, area, and coverage controls. Transaction history supports historic location, historic deal type, timeframe, property type, bedroom count, price, area, and completion filters.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. The actor can only save records that match the selected filters and are publicly available during the run. If a scope is narrow, the available public result count may be lower than your requested limit.
Can I schedule recurring runs?
Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cron schedule with the same input configuration. Recurring runs are useful for monitoring new active listings, refreshing contact datasets, and maintaining transaction-history snapshots.
How do I avoid duplicates across runs?
Use record_id as the primary idempotency key. For mixed datasets, combine record_type with record_id, and keep fingerprint for change tracking or duplicate checks. When loading into a database, upsert records rather than appending every scheduled run blindly.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets support JSON, CSV, Excel, and other export formats from the run dataset. JSON is best when you need the full nested structure; CSV and Excel are useful for review and spreadsheet-based workflows.
Does this actor collect private data?
No. The actor is intended to collect publicly available information from Property Finder UAE. Some public listings may include agent or broker contact information, and users are responsible for using that information lawfully, responsibly, and in line with applicable rules.
What should I include when reporting an issue?
Include the input used, with any sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample if it helps explain the issue. For field-related issues, include one active listing or transaction record that demonstrates the problem.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available property listing, contact, and transaction-history information from https://www.propertyfinder.ae for legitimate business purposes, including:
- Real estate research and market analysis.
- Lead enrichment and broker intelligence.
- Competitive monitoring and recurring operational reporting.
Users are responsible for ensuring that their use of the data complies with applicable laws, regulations, and the target site's terms. This includes responsible handling of public contact information, reasonable collection practices, and appropriate downstream use. This section is informational and not legal advice.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site's terms.
- Respect individual privacy and personal information.
- Use data responsibly and avoid disruptive or excessive collection.
- Do not use this actor for spamming, harassment, or other harmful purposes.
- Follow relevant data protection requirements where applicable, such as GDPR and CCPA.
Support
For help, use the Issues tab or the actor page on Apify. Include the input used with sensitive values redacted, the run ID, the expected versus actual behavior, and a small output sample when it helps clarify the problem. For best results, also mention whether the run used active_listings or transaction_history, and include the specific location, property type, timeframe, or filters involved.