Dubizzle Property Scraper with Agents & Features avatar

Dubizzle Property Scraper with Agents & Features

Pricing

from $0.70 / 1,000 property lisitngs

Go to Apify Store
Dubizzle Property Scraper with Agents & Features

Dubizzle Property Scraper with Agents & Features

Extract Dubizzle UAE property listings with asking prices, descriptions, photos, amenities, locations, coordinates, and agent or agency details. Get pipeline-ready JSON, run summaries, and an interactive map for market research, inventory monitoring, CRM enrichment, and analytics.

Pricing

from $0.70 / 1,000 property lisitngs

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Dubizzle UAE Property Listings Scraper

Slug: fatihtahta/dubizzle-property-scraper-apify

Overview

Dubizzle UAE Property Listings Scraper collects structured public property listings with listing identity, asking prices, locations, property attributes, media, and available agent or agency relationships. Dubizzle UAE is a widely used public marketplace whose real estate listings can support property discovery, inventory monitoring, and market-segment research across the United Arab Emirates. Use the actor to turn repeatable UAE location searches into consistent JSON records. The grouped record format is suitable for comparing listings, enriching internal catalogs, monitoring public inventory, and preparing analyst review queues. Results are delivered through an Apify dataset for review, export, ETL pipelines, BI dashboards, AI-agent workflows, and downstream processing. Each run also produces machine-readable and human-readable summaries plus an interactive listing map. The actor is designed for recurring public-data acquisition while remaining explicit about point-in-time availability and optional source fields.

What Makes This Actor Different

  • Pipeline-ready property records: Each listing uses documented source_context, entity, listing, pricing, location, property, media, contact_details, relationships, and attributes groups instead of an unstructured flat payload.
  • Stable upsert guidance: record_id is the recommended idempotency key, with listing.listing_id, property.property_id, entity.external_ids, url, and source_context.fingerprint available as supporting identifiers.
  • Location-led collection: Search by a UAE city, community, neighborhood, market, or development for repeatable geographic segments.
  • Operational run receipts: RUN-SUMMARY and RUN-SUMMARY.html expose saved counts, duration, input scope, deal types, locations, property types, enrichment status, warnings, and map statistics without requiring users to inspect every row.
  • Map-ready review: Standard listing records can contain latitude and longitude. The results-map artifact plots valid coordinates and clearly reports listings that could not be mapped.
  • Field-preserving organization: Meaningful Dubizzle-specific property, classification, regulatory, availability, and stay-rule values remain under documented nested groups when they do not fit a stronger canonical field.
  • Agentic usability: Clear input recipes, a stable field reference, structured examples, and summary artifacts make the output practical for Claude, Codex, internal copilots, search indexes, vector stores, and workflow automation.
  • Optional connector handoff: Apify-authorized MCP connectors can receive a concise run summary and artifact links after the authoritative dataset and run artifacts are saved. The full listing dataset is not sent through MCP by default.

Who Should Use This Actor

  • Real estate investors and analysts: Build repeatable public listing snapshots for neighborhood, asking-price, property-type, and inventory research.
  • Brokerages and agencies: Monitor public listings, review agency and agent visibility, and enrich internal property or lead records when source details are available.
  • Market research teams: Create consistent datasets for supply analysis, category comparisons, location breakdowns, and recurring market reports.
  • Proptech and data engineering teams: Feed normalized listing records into warehouses, search products, CRM systems, enrichment pipelines, and internal applications.
  • Property operations teams: Maintain review queues for active public listings, map locations, and compare point-in-time status or price changes.
  • AI agents and workflow builders: Acquire a scoped property dataset, validate the run receipt, summarize results, and route selected records into downstream actions.
  • BI and reporting teams: Schedule repeatable collection for dashboards, alerts, geographic views, and historical listing analysis.

Common Use Cases

  • Market intelligence: Monitor displayed asking prices, listing status, property mix, location coverage, and public inventory over time.
  • Comparable-listing research: Collect structured attributes for a selected city, community, neighborhood, development, search page, or known property set.
  • Competitive monitoring: Compare public agency, agent, property-type, building, and neighborhood visibility across repeated runs.
  • Property catalog building: Populate an internal listing directory with stable IDs, URLs, titles, locations, media, and property attributes.
  • CRM enrichment: Add public property, agency, agent, and contact-channel details to existing account, lead, or opportunity records.
  • Recurring reporting: Schedule consistent inputs for inventory snapshots, dashboard refreshes, operational reports, and alerts.
  • Geographic review: Use coordinate fields and the interactive map to inspect where valid listing locations are distributed.
  • Agentic research: Let a workflow agent select a scoped input, run collection, inspect summary artifacts, and prepare a human-review or analysis step.

Real-World Questions This Data Can Answer

  • Which public Dubizzle property listings are visible for a selected UAE city, community, neighborhood, or development?
  • What asking prices, property types, bedrooms, bathrooms, floor areas, and furnishing signals appear in the collected segment?
  • Which neighborhoods, buildings, agencies, or agents are most visible in a repeated listing snapshot?
  • Which records have valid coordinates and can be reviewed on the interactive map?
  • Which listing prices, statuses, or key attributes changed when compared with a previous internal snapshot?
  • Which listings have sufficient media, contact-channel, agency, or agent information for enrichment and review workflows?
  • How many listing records were saved, mapped, skipped for coordinates, or marked lightweight versus enriched in a run?

Quick Start

  1. Choose a UAE location such as Dubai Marina, Downtown Dubai, Sharjah, or Abu Dhabi.
  2. Set a small limit, such as 5 or 20, for the first validation run.
  3. Optionally select an authorized mcpConnectors destination for the post-run summary handoff.
  4. Start the actor in Apify Console.
  5. Inspect the first dataset records, RUN-SUMMARY, and map before increasing the limit or scheduling recurring collection.

Input Parameters

The public input supports location discovery, a result cap, and optional summary delivery.

ParameterTypeDescriptionDefault
locationstringUAE city, community, neighborhood, market, or development recognized by Dubizzle, such as Dubai Marina or Downtown Dubai. Creates a location-based search path.
limitinteger, minimum 1Maximum number of property listing records to save across the run. Leave empty when you do not want to impose a user-defined cap.
mcpConnectorsarray of connector resourcesOptional Apify-authorized connectors that can accept a concise post-run summary through a compatible send, post, write, create, insert, upsert, add, or append tool. The full dataset is not delivered.[]

Choosing Inputs

Use location for discovery when the market area is known. A focused community such as Dubai Marina generally produces a cleaner comparison segment than a whole-emirate location.

Start with a small limit to validate field availability, nested objects, map coverage, and downstream imports. Increase it only after confirming the saved row shape. For cleaner recurring comparisons, segment separate runs by location and retain the input configuration alongside each dataset export.

Choose mcpConnectors only when a compatible authorized destination should receive the run summary. Connector delivery is a convenience handoff; the Apify dataset and key-value-store artifacts remain the authoritative outputs.

Input Recipes

  • Validation run: Set location to one community such as Dubai Marina and limit to 5. Review the first rows and artifacts before expanding the run.
  • Broad city discovery: Set location to Dubai or Abu Dhabi with a sensible limit. Use the resulting dataset as a discovery snapshot rather than a claim of complete market inventory.
  • City monitoring: Keep one city location and limit unchanged, then schedule repeated runs for point-in-time comparison.
  • Community monitoring: Use a focused community or development location for a more targeted recurring segment.
  • Segmented analysis: Run locations such as Dubai Marina, Downtown Dubai, and Jumeirah Village Circle separately so exports can be compared without mixing geographic scope.
  • Summary handoff: Combine any supported collection path with mcpConnectors when a compatible destination should receive counts, timing, map status, and links after the run.

Example Inputs

Location validation run

{
"location": "Dubai Marina",
"limit": 10
}

Broad city discovery

{
"location": "Abu Dhabi",
"limit": 25
}

Community monitoring run

{
"location": "Jumeirah Village Circle",
"limit": 50
}

Output

Output destination

The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, AI agents, and downstream APIs with minimal post-processing.

The current public dataset contains one record family: property_listing. Run summaries, reports, and maps are separate key-value-store artifacts rather than additional dataset record types.

Record envelope and stable identifiers

Use record_id as the recommended idempotency key for deduplication and upserts. Supporting identifiers include listing.listing_id, property.property_id, values in entity.external_ids, the public url, and source_context.fingerprint.

For repeated runs, upsert on record_id and compare selected business fields such as pricing.price, listing.status, listing.posted_at, and important property attributes. Stable identifiers make records easier to merge, synchronize, deduplicate, and compare across datasets, CRMs, search indexes, and warehouses.

source_context records collection provenance: source identity, source URL, seed value, page and position, collection timestamp, fingerprint, and enrichment status when available.

Example: property listing record

The following example is synthetic but preserves the documented public structure and value types. Optional groups and fields vary by listing.

{
"record_type": "property_listing",
"record_id": "sample-17631284",
"url": "https://dubai.dubizzle.com/property-for-sale/residential/apartment/sample-marina-home/",
"source_context": {
"source_id": "dubizzle_property_scraper",
"source_domain": "uae.dubizzle.com",
"source_url": "https://dubai.dubizzle.com/property-for-sale/residential/apartment/sample-marina-home/",
"canonical_url": "https://dubai.dubizzle.com/property-for-sale/residential/apartment/sample-marina-home/",
"seed_value": "Dubai Marina",
"page_number": 1,
"position": 1,
"scraped_at": "2026-07-11T09:55:12+00:00",
"language": "en-AE",
"country": "AE",
"fingerprint": "sample-fingerprint-17631284",
"enrichment_status": "lightweight"
},
"entity": {
"title": "Corner Apartment | Marina View | Vacant",
"description": "Sample two-bedroom waterfront apartment with marina views.",
"url": "https://dubai.dubizzle.com/property-for-sale/residential/apartment/sample-marina-home/",
"alternate_urls": [
"https://dubizzle.com/s/sample-home"
],
"external_ids": {
"dubizzle_id": "sample-17631284",
"uuid": "sample-uuid-17631284",
"object_id": "item:sample:17631284",
"property_reference": "SAMPLE-REF-2026-001"
}
},
"listing": {
"listing_id": "sample-17631284",
"deal_type": "sale",
"status": "completed",
"listed_by": "Agent",
"is_verified": true,
"is_premium": false,
"posted_at": "2026-07-11T09:25:01+00:00"
},
"pricing": {
"price": 2450000,
"currency": "AED"
},
"location": {
"city": "Dubai",
"neighborhood": "Dubai Marina",
"address": "Sample Marina Tower, Dubai Marina, Dubai",
"country": "United Arab Emirates",
"latitude": 25.083,
"longitude": 55.145
},
"property": {
"property_id": "sample-17631284",
"property_type": "Apartment",
"bedrooms": 2,
"bathrooms": 2,
"floor_area": 1380,
"area_unit": "sqft",
"furnished": true,
"completion_status": "completed",
"building": "Sample Marina Tower",
"category_path": [
"property-for-sale/residential/apartment",
"property-for-sale/residential"
],
"amenities": [
{
"id": "sample-amenity-1",
"name": "Balcony",
"slug": "balcony"
}
]
},
"media": {
"main_image_url": "https://dbz-images.dubizzle.com/images/sample/property-main.jpg",
"image_urls": [
"https://dbz-images.dubizzle.com/images/sample/property-main.jpg",
"https://dbz-images.dubizzle.com/images/sample/property-living-room.jpg"
],
"photo_count": 12,
"has_video": false,
"has_virtual_tour": false
},
"contact_details": {
"has_sms": true,
"has_whatsapp": true,
"can_chat": true
},
"relationships": {
"agency": {
"id": "sample-agency-101",
"name": "Sample Marina Properties",
"slug": "sample-marina-properties"
},
"agent": {
"id": "sample-agent-202",
"name": "Sample Property Advisor",
"slug": "sample-property-advisor",
"profile_completed": true
}
},
"attributes": {
"property_info": {
"property_type": "Apartment",
"purpose": "Sale",
"furnished": "Furnished",
"completion_status": "Ready"
}
}
}

Run Summary, Map, and artifacts

Every completed run—and a saved-progress partial run when applicable—writes three stable key-value-store artifacts:

  • RUN-SUMMARY: Machine-readable JSON with timestamps, duration, public input scope, saved listing count, deal types, cities, property types, currencies, enrichment states, top agencies, warnings, and map statistics.
  • RUN-SUMMARY.html: Human-readable report presenting core totals, run status, timing, deal types, and map-marker coverage.
  • results-map: Interactive map for records with valid latitude and longitude. It reports mapped and skipped-coordinate counts and still provides a zero-marker report when no valid coordinates are available.

Treat these artifacts as run receipts. Operators and agents can use them to verify completion, compare recurring run counts, confirm coordinate coverage, inspect partial-run notes, decide whether follow-up is needed, and attach a concise report to downstream work. They do not replace the dataset records.

Field Reference

Record envelope

  • record_type (string, required): Record family; normal rows use property_listing.
  • record_id (string, required): Primary stable key for upserts and deduplication.
  • url (string URI, required): Public Dubizzle listing URL and audit link.

Source context

  • source_context (object, required): Collection provenance and source identity.
  • source_context.source_id / source_context.source_domain (string, optional): Stable source name and public domain.
  • source_context.source_url / source_context.canonical_url (string URI, optional): Source and canonical audit URLs.
  • source_context.seed_type / source_context.seed_value (string, optional): Collection path and initiating location or source value.
  • source_context.search_query (string, optional): Search text when a query was used.
  • source_context.page_number / source_context.position (integer, optional): One-based result page and position.
  • source_context.scraped_at (date-time string, optional): UTC record collection timestamp.
  • source_context.language / source_context.country (string, optional): Source language and country codes.
  • source_context.fingerprint (string, optional): Supporting deterministic identity value.
  • source_context.enrichment_status (string, optional): lightweight or enriched based on available detail data.

Entity

  • entity (object, required): Listing identity, content, URLs, and source IDs.
  • entity.title (string, optional): Source listing headline.
  • entity.description (string, optional): Cleaned public listing description.
  • entity.url (string URI, optional): Entity-level public URL.
  • entity.alternate_urls (array of URI strings, optional): Distinct public short or alternate URLs.
  • entity.external_ids (object, optional): Dubizzle ID, UUID, object ID, external ID, unique key, feed ID, encoded ID, or property reference when exposed.

Listing

  • listing (object, required): Listing mode, lifecycle, verification, and promotion signals.
  • listing.listing_id (string, optional): Dubizzle listing identifier.
  • listing.deal_type (string, optional): Normalized mode such as sale or rent.
  • listing.status (string, optional): Public listing or completion state.
  • listing.listed_by (string, optional): Poster category such as Agent, Landlord, or Developer.
  • listing.is_verified / listing.is_verified_user (boolean, optional): Source verification signals; these are not ownership or legal verification.
  • listing.is_premium / listing.is_featured / listing.is_highlighted / listing.is_promoted (boolean, optional): Public visibility or promotion signals.
  • listing.is_developer_listing / listing.is_price_hidden / listing.has_dld_history (boolean, optional): Source-specific listing flags.
  • listing.posted_at (date-time string, optional): Normalized source listing timestamp.
  • listing.sale_type / listing.sale_type_details / listing.handover_date (optional): Source sale, transfer, or handover details when available.

Pricing

  • pricing (object, optional): Displayed asking price and payment information.
  • pricing.price / pricing.original_price (number, optional): Current and original displayed amounts; these are not valuations.
  • pricing.currency (string, optional): Currency label, normally AED.
  • pricing.billing_period (string, optional): Rental payment frequency when provided.
  • pricing.amount_paid / pricing.payment_plan (optional): Source payment-plan details.
  • pricing.nightly_price / pricing.weekend_price / pricing.rent_payment_terms (optional): Short-stay or rental terms when applicable.

Location

  • location (object, optional): Public geography, address labels, and coordinates.
  • location.city / location.neighborhood (string, optional): City and most specific public area label.
  • location.address (string, optional): Best available building-and-area description; it may not be an exact postal address.
  • location.country (string, optional): Normalized country name.
  • location.latitude / location.longitude (number, optional): Source coordinates used for mapping when valid.
  • location.location_path (array of strings, optional): Ordered public location hierarchy when available.

Property

  • property (object, optional): Core property attributes and source categories.
  • property.property_id (string, optional): Supporting property identifier.
  • property.property_type (string, optional): Category such as Apartment or Villa.
  • property.bedrooms / property.bathrooms (number, optional): Room counts; studio listings may use zero bedrooms.
  • property.floor_area / property.land_area (number, optional): Displayed floor and plot measurements.
  • property.area_unit (string, optional): Unit for area values, such as sqft.
  • property.furnished (boolean, optional): Normalized furnishing signal when unambiguous.
  • property.property_age / property.completion_status (string, optional): Source age and completion labels.
  • property.building (string, optional): Building or development name.
  • property.category_path (array of strings, optional): Source property-category hierarchy.
  • property.categories (object, optional): Category IDs, names, slugs, and paths.
  • property.amenities / property.special_amenities (array of objects, optional): Source amenity IDs, names, slugs, and choices; order is not a ranking.
  • property.project / property.room_type / property.occupancy / property.zoned_for (optional): Project, room, occupancy, or zoning information when applicable.

Media

  • media (object, optional): Images, photo variants, and richer media signals.
  • media.main_image_url (string URI, optional): Preferred display image.
  • media.image_urls (array of URI strings, optional): Ordered listing images.
  • media.photos (array of objects, optional): Source image variants such as main and thumbnail URLs.
  • media.photo_count (integer, optional): Source-reported photo count.
  • media.has_video / media.has_virtual_tour (boolean, optional): Availability signals.
  • media.video_urls / media.virtual_tours (array, optional): Video or tour links when exposed.

Relationships and contacts

  • relationships (object, optional): Related agency, agent, host, or poster details.
  • relationships.agency (object, optional): Agency ID, name, slug, logo, profile details, and regulatory identifiers when available.
  • relationships.agent (object, optional): Agent ID, name, slug, profile picture, and public profile signals.
  • relationships.host / relationships.poster (object, optional): Short-stay host or listing-poster details when applicable.
  • contact_details (object, optional): Public contact channels and lead options.
  • contact_details.has_sms / contact_details.has_whatsapp / contact_details.can_chat / contact_details.chat_enabled (boolean, optional): Channel-availability flags.
  • contact_details.contacts / contact_details.lead_channels (array or object, optional): Public contact or lead options when detail data provides them.

Source-specific attributes

  • attributes (object, optional): Distinct Dubizzle values that do not fit a stronger canonical group.
  • attributes.property_info (object, optional): Property purpose, source furnishing label, completion, project, payment, and update details.
  • attributes.source_identifiers / attributes.source_classification (object, optional): Additional source IDs and classification values.
  • attributes.description_html / attributes.stay_rules_html (string, optional): Meaningful source HTML retained alongside cleaned text when available.
  • attributes.availability / attributes.regulatory / attributes.summary (object, optional): Availability, RERA/regulatory, and source summary fields.
  • attributes.stay_rules (string, optional): Cleaned public stay rules for applicable short-stay listings.

Data Model Notes

  • Identity: Use record_id for primary matching and upserts; retain supporting IDs to reconcile source variants or provider references.
  • Provenance: source_context traces a record to its source URL, initiating seed, collection position, timestamp, and enrichment state.
  • Business fields: listing, pricing, location, property, media, and relationships hold the principal user-facing values.
  • Point-in-time values: Asking prices, status, availability, descriptions, and promotion signals reflect what was publicly visible at collection time.
  • Nested objects: Related fields remain grouped so JSON-first systems can preserve meaning and analysts can inspect records without a huge flat schema.
  • Optionality: Source visibility, listing type, geography, and enrichment status affect which optional values appear. Downstream systems should tolerate absent groups and fields.
  • Repeated runs: Compare record_id plus selected business fields and retain Apify run metadata externally when building a historical change log.

Data Quality, Guarantees, and Handling

  • Structured records: Results are normalized into predictable JSON objects for downstream use.
  • Field preservation: Meaningful schema-supported listing and property values are kept in stable public fields or grouped objects; optional values may be absent when the source does not expose them.
  • Best-effort extraction: Fields may vary by region, availability, account visibility, listing type, source experiments, or source-side changes.
  • Optional fields: Null-check or presence-check optional fields in downstream code and dashboards.
  • Deduplication: Use record_id as the primary stable key, with listing, property, URL, fingerprint, and external IDs as supporting values.
  • Freshness: Results reflect publicly available information at run time.
  • Repeated runs: Use record_id when syncing into warehouses, CRMs, search indexes, vector stores, and monitoring systems.
  • Schema awareness: Rely on documented fields while allowing optional fields to become newly absent or available.
  • Run receipts: Use summary and map artifacts to audit saved counts, enrichment state, coordinate coverage, warnings, and export readiness without treating artifacts as listing rows.

Tips for Best Results

  • Start with limit set to 5–20 before scaling a recurring workflow.
  • Use one city, community, neighborhood, or development per run when clean comparisons matter.
  • Keep the same input configuration for repeated monitoring snapshots.
  • Use record_id for upserts instead of comparing titles or addresses alone.
  • Review required IDs, price coverage, coordinate coverage, and important optional-field fill rates before production imports.
  • Keep nested JSON for full fidelity even if a spreadsheet workflow also needs flattened columns.
  • Inspect RUN-SUMMARY and results-map before routing records into CRM, BI, research, or agentic workflows.
  • Treat asking prices and public status labels as point-in-time source signals that may need independent verification.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure a UAE city, community, neighborhood, market, or development.
  3. Set the maximum number of listings to save.
  4. Optionally select an authorized MCP connector for summary delivery.
  5. Click Start, then inspect the first dataset records and run artifacts.
  6. Export the dataset as JSON, CSV, Excel, or another Apify-supported format.

Agentic and API-First Usage

The actor can serve as a structured public property-data acquisition step inside a larger automated workflow. Its explicit input surface, grouped record contract, stable IDs, and run receipts allow an agent to validate collection before triggering analysis or downstream writes.

Agent workflow pattern

  1. Generate or select a scoped input using only location, limit, and optional mcpConnectors.
  2. Run the actor manually, on a schedule, or through Apify platform automation.
  3. Wait for completion and read the dataset records.
  4. Validate required fields and relevant optional groups against the Field Reference.
  5. Read RUN-SUMMARY and results-map to verify counts, timing, warnings, enrichment state, coordinates, and export readiness.
  6. Upsert records into the downstream system using record_id.
  7. Trigger market analysis, alerts, BI refreshes, search/vector indexing, CRM enrichment, lead review, or human verification.

For agentic use, keep prompts grounded in the documented input parameters and start with small validation runs. Provide downstream AI steps with the Field Reference and one representative output example rather than asking them to infer missing fields. Treat optional values as nullable or absent, and never infer private contact, ownership, valuation, or legal conclusions. Store the Apify run ID, input configuration, and export metadata outside the listing record when building audit trails. When context is limited, pass Claude, Codex, or internal agents the input schema, idempotency key, required fields, relevant optional groups, and run receipt.

Scheduling and Automation

Scheduling

Automated Data Collection

Schedule repeated runs to refresh public listing snapshots for monitoring, reporting, and enrichment workflows.

  1. Navigate to Schedules in Apify Console.
  2. Create a daily, weekly, or custom cron schedule.
  3. Configure and save the input parameters.
  4. Enable notifications for run completion.
  5. Add webhooks when completed runs should trigger automated processing.

Integration Options

  • CRM enrichment: Sync public listing, agency, agent, location, and contact-channel fields into account or lead records.
  • BI dashboards: Track asking-price ranges, property mix, location distribution, map coverage, and public inventory snapshots.
  • Warehouses and ETL: Upsert grouped JSON records by record_id and retain historical business-field changes.
  • Webhooks: Trigger validation, ingestion, alerting, or review workflows after each run.
  • Google Sheets or Airtable: Review smaller listing sets, prepare operational queues, or share curated subsets with stakeholders.
  • Search and vector indexes: Build property discovery, retrieval, semantic search, and AI-agent context layers.
  • MCP connectors: Authorize a compatible connector in Apify, select it in the actor input, and receive the concise listing-run summary plus available dataset/report/map links.

Export Formats and Downstream Use

Apify datasets can be exported for both interactive review and automated consumption.

  • JSON: Preserve nested objects, arrays, booleans, and numeric values for applications, APIs, AI agents, and data pipelines.
  • CSV or Excel: Support spreadsheet review, stakeholder sharing, and lightweight analysis after deliberate flattening.
  • API access: Read dataset records from automated ingestion and orchestration workflows.
  • BI and warehouses: Build reports, dashboards, historical comparisons, and monitoring models.
  • Search or vector indexes: Power listing discovery, semantic retrieval, internal search, and agent context.

Downstream Pipeline Guide

  • Idempotency: Use record_id as the primary upsert key and retain source identifiers for reconciliation.
  • Null handling: Treat optional fields and entire optional groups as nullable or absent.
  • Type handling: Preserve numeric prices, coordinates, and areas; boolean flags; arrays; and nested objects in JSON-first systems.
  • Flattening: Flatten nested groups deliberately for CSV or Excel, while retaining the original JSON export for full fidelity.
  • Partitioning: Store run date, input location, workflow name, and Apify run ID alongside records for analysis and audits.
  • Change detection: Compare repeated records by record_id and selected fields such as pricing.price, listing.status, listing.posted_at, and relevant property attributes.
  • Quality checks: Monitor record counts, duplicate keys, required identifiers, price availability, coordinate coverage, and important optional-field fill rates.
  • Human review: Route records with missing critical values, unusual prices, changed statuses, or high-value segments into an analyst queue.
  • Retention: Define separate retention policies for raw JSON exports, normalized warehouse tables, run summaries, and map/report artifacts.

Performance and Coverage Expectations

The following are example validation runs observed on July 11, 2026. They demonstrate bounded scopes and schema validation; they are not runtime or availability guarantees.

Run typeExample scopeListingsDurationCoverage notes
Filtered sale validationDubai Marina apartments, bounded price and bedrooms31.434 seconds3 unique, schema-valid records
Filtered rent validationDubai furnished villas with a price cap21.502 seconds2 unique, schema-valid records
Broad validationUAE commercial sale without a location10.622 seconds1 unique, schema-valid record
Standard bounded collectionDubai Marina sale, limit 20201.61 seconds20 unique records
Detail requested with fallbackDubai Marina sale, limit 20201.64 secondsStandard rows preserved; no records enriched in that environment
Multi-page boundaryDubai Marina sale, limit 4040Not recorded35 + 5 records, 40 unique, no cross-page duplicates

Execution time varies with result volume, target availability, response size, detail availability, coordinate/map artifact creation, and the amount of information exposed per listing. Highly focused runs can finish faster; broader location collections and detail-rich records may take longer. The measured detail-request example above remained fast because successful detail enrichment was unavailable in that validation environment, so it should not be used to estimate a genuinely enriched run.

Limitations

  • Results depend on what Dubizzle UAE publicly exposes at run time.
  • Optional pricing, media, coordinates, amenities, contacts, agent, agency, regulatory, project, availability, or stay fields may be absent on sparse listings.
  • Very broad locations can take longer and may require a higher limit to retain more visible matches.
  • Listing removal, regional visibility, account visibility, and source-side presentation changes can affect results.
  • Asking prices, status, availability, descriptions, and coordinates are point-in-time public signals and should be independently verified before operational decisions.
  • The actor provides structured public property information, not legal, financial, investment, valuation, appraisal, ownership, or brokerage advice.

Troubleshooting

  • No results returned: Check the location spelling and whether Dubizzle currently shows matching public property records.
  • Fewer results than expected: Raise limit, use a less narrow location, or verify that the selected market contains enough visible listings.
  • Some fields are empty: Optional values depend on what each listing and related public profile exposes.
  • Duplicate-looking records: Compare record_id and supporting source IDs; similar titles or units may still represent distinct listings.
  • Run takes longer than expected: Lower the validation limit or split broad locations into smaller community-level segments.
  • Output changed: Compare current records with the Field Reference and preserve a small sample for support.
  • Downstream import failed: Check nested objects, arrays, nullable fields, JSON types, and whether the destination requires flattened columns.
  • Connector summary was not delivered: Confirm that the connector is authorized in Apify and exposes a compatible output tool; the dataset and artifacts remain available even when delivery fails.

FAQ

What data does this actor collect?

Public Dubizzle UAE property listing records with identity, asking price, location, property attributes, media, source context, and available agent, agency, contact, project, amenity, availability, or regulatory details.

Can I filter by property type, price, bedrooms, or status?

The current public input form exposes a UAE location and result limit. Property type, price, bedroom, status, and keyword controls are not currently exposed as public actor inputs.

Why did I receive fewer results than my limit?

limit is a maximum, not a promised count. The public source may expose fewer matching or available listings for the chosen scope.

What is the best unique key?

Use record_id. Retain listing.listing_id, property.property_id, url, fingerprint, and external IDs as supporting reconciliation fields.

How should I choose a first-run limit?

Start with 5–20 listings, inspect the schema and run receipts, then increase the limit after validating your downstream workflow.

Where are the run summary and map?

Open the actor run’s Outputs or key-value store. RUN-SUMMARY, RUN-SUMMARY.html, and results-map are linked as stable run outputs.

Can I schedule recurring runs?

Yes. Use Apify Schedules with a saved location input and compare records by record_id over time.

Can MCP connectors receive the full listing dataset?

Not by default. This actor sends a concise run summary and available dataset/report/map links through compatible output tools. The dataset remains in Apify.

Can I use the output with AI agents?

Yes. Provide the agent with the input schema, Field Reference, record_id guidance, a representative record, and the run summary.

Can I export CSV, Excel, or JSON?

Yes. Apify datasets support these and other platform export formats. JSON best preserves the nested contract.

Does this actor provide MLS, private ownership, or appraisal data?

No. It collects publicly visible Dubizzle property information and does not provide official MLS completeness, private ownership verification, or appraisal-grade valuations.

Compliance and Ethics

Responsible Data Collection

This actor collects publicly available property listing information from Dubizzle UAE for legitimate business purposes, including real estate research and market analysis, property inventory monitoring, and operational data enrichment. Users are responsible for ensuring that their collection and downstream use comply with applicable requirements. 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, discrimination, unlawful housing practices, or other harmful purposes.
  • Follow relevant data protection, fair housing, consumer protection, and sector-specific requirements.
  • Review retention, access-control, and data-sharing policies before operationalizing the dataset.

Support

Use the actor page or its Issues section to request help. Include the redacted input, Apify run ID, expected versus actual behavior, and an optional small output sample. For export or pipeline problems, also identify the destination system and format, such as JSON, CSV, Excel, CRM, warehouse, or search index.