Egyptian Real Estate Scraper
Pricing
from $5.00 / 1,000 results
Egyptian Real Estate Scraper
Scrapes property listings from Dubizzle, Aqarmap, and PropertyFinder Egypt. Extracts prices, areas, bedrooms, GPS coordinates, payment plans, agent info, and amenities into normalized structured data.
Pricing
from $5.00 / 1,000 results
Rating
5.0
(1)
Developer
Omar Eldeeb
Maintained by CommunityActor stats
2
Bookmarked
51
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
What does Egyptian Real Estate Scraper do?
Egyptian Real Estate Scraper extracts property listings from the three largest Egyptian real estate platforms — Dubizzle, Aqarmap, and PropertyFinder — into a single, normalized dataset. It captures prices, areas, bedrooms, GPS coordinates, compound names, payment plans, agent contacts, amenities, and more.
Whether you're an investor tracking the Egyptian property market, a real estate agency benchmarking competitors, or a data analyst building market reports, this actor gives you structured data from 600,000+ combined listings across all major platforms.
Why use Egyptian Real Estate Scraper?
- Multi-platform coverage — Scrape Dubizzle (168K+ listings), Aqarmap (450K+ properties), and PropertyFinder (93K+ listings) in a single run
- Normalized data — Consistent output schema across all platforms, ready for analysis
- Rich property data — Prices, price per sqm, GPS coordinates, compound names, amenities, agent info, payment plans
- Residential & commercial — Apartments, villas, studios, duplexes, penthouses, shops, offices, and more
- Sale & rental — Track both purchase and rental markets
- Change detection — Monitor price changes, new listings, and removed properties between runs
- Smart fingerprinting — Detects re-posted listings using GPS, photo hashes, and property fingerprints
- AI fallback — Automatic AI-powered extraction when standard methods fail
What data can this scraper extract?
| Field | Description |
|---|---|
priceEGP | Price in Egyptian Pounds |
pricePerSqm | Calculated price per square meter |
areaSqm | Property area in square meters |
bedrooms / bathrooms | Room counts (studios are 0 bedrooms) |
furnished | true = furnished or partly furnished, false = unfurnished, null = not stated by the portal (PropertyFinder) |
city / district / compound | Full location hierarchy |
latitude / longitude | GPS coordinates (PropertyFinder) |
amenities | Pool, gym, security, parking, etc. |
sellerName / sellerPhone | Agent contact details (phone available for all 3 platforms with enrichListings: true) |
agencyName / brokerLicense | Broker information |
downPayment / installmentYears | Payment plan details |
isVerified | Platform verification status |
listingDate | When the listing was posted |
hasChanges / changes | Price change tracking (compared with the last run of the same search) |
searchKey | Identifies the search (filters) that produced the row; change detection compares only rows of the same search |
How to scrape Egyptian real estate data
- Select platforms — Choose Dubizzle, Aqarmap, PropertyFinder, or all three
- Set filters — Pick location (Cairo, New Cairo, Alexandria, etc.), property type (apartment, villa), and listing type (sale/rent)
- Configure limits — Set max listings per platform and optional price/area filters
- Optional: Enable "Enrich with Full Details" to get agent phone numbers, GPS coordinates, and full descriptions from every listing's detail page (no extra charge; runs take longer)
- Click Start — The actor scrapes all selected platforms and outputs normalized data
- Download results — Access your data in JSON, CSV, or Excel format from the Output tab
How to get phone numbers for every listing
Agent contact info (phone numbers, agency, agent name) is delivered differently per platform:
| Platform | Phone Coverage | How |
|---|---|---|
| PropertyFinder | 100% out of the box | Phones are in the search-page data — no extra work needed |
| Aqarmap | 100% with enrichListings: true | Two-pass strategy: fast HTTP fetch extracts phone+GPS from detail page HTML, Playwright fallback clicks "Show Phone" for the rare listings that hide it |
| Dubizzle | Best-effort with enrichListings: true | Playwright visits each detail page; many phones are revealed only after a button click |
To pull phone numbers, toggle "Enrich with Full Details" in the actor input. This adds:
- No extra charge: enriched listings cost the same per-listing price as any other result
- ~0.2 seconds per Aqarmap listing (HTTP, parallel)
- ~5-10 seconds per Dubizzle listing (browser, sequential)
For a 50-listing run with enrichment on all 3 platforms, expect:
- Cost: the normal per-listing price (no enrichment surcharge)
- Runtime: ~3-5 minutes
Output
{"sourcePlatform": "propertyfinder","title": "Apartment in Swan Lake Residence","priceEGP": 12425000,"pricePerSqm": 96317,"areaSqm": 129,"bedrooms": 2,"bathrooms": 3,"city": "Cairo","district": "New Cairo City","compound": "Swan Lake Residence","latitude": 30.0739,"longitude": 31.4655,"amenities": ["Balcony", "Security", "Shared Pool"],"sellerName": "Ahmed Safwat","agencyName": "New Avenue Real Estate","downPayment": 9000000,"isVerified": false,"listingDate": "2026-04-07T10:02:58Z","extractionConfidence": "high"}
How much does it cost?
- Run start: $0.01 per GB of run memory (Apify's
apify-actor-startevent: one per GB, minimum one). At the default 4 GB that is $0.04 per run; at 1 GB it is $0.01. - $0.005 per listing saved
- $0.03 once per run only when the AI vision fallback finds at least one listing matching your filters and those listings are delivered (a one-time event: at most once per run; at most 2 AI page reads per run). Never charged for block/captcha pages (they are not sent to the AI), for 0 listings, or when the AI service errors
- Listing enrichment (phones, GPS, full descriptions) has no extra charge
Example costs (default 4 GB memory, so $0.04 per run start):
- 100 listings from all platforms = $0.54
- 1,000 listings for market analysis = $5.04
- 100 listings with phone numbers + GPS (enriched) = $0.54 (enrichment adds run time, not cost)
- Monthly monitoring of 500 listings = $2.54/month
- Add $0.03 to any run where the AI fallback runs
How to scrape large datasets (1,000+ listings)
The actor can extract up to 5,000 listings per platform (15,000 total across all three). Here's how to optimize for large runs:
Speed by platform:
| Platform | Speed | 1,000 listings | 5,000 listings |
|---|---|---|---|
| Aqarmap | ~4s/page (20/page) | ~3 min | ~17 min |
| PropertyFinder | ~1s/page (25/page) | ~1 min | ~4 min |
| Dubizzle | ~30s/page (46/page, Playwright) | ~12 min | ~55 min |
Tips for large runs:
- Set
maxListingsPerPlatformup to 5,000 for comprehensive market coverage - Use 4096 MB memory for best Playwright performance
- For fastest results, scrape Aqarmap + PropertyFinder only (no browser needed)
- Dubizzle paginates automatically through multiple search pages — each page yields ~46 listings
- When using "Both" (sale + rent), the quota splits evenly — set 2x your target per type
- Cost estimate: 5,000 listings = ~$25. Monthly monitoring of 1,000 listings = $5/month
Platform inventory (approximate):
- Aqarmap: 450K+ properties (108K apartments in Cairo alone)
- PropertyFinder: 93K+ listings (richest data — GPS, amenities, agent info)
- Dubizzle: 168K+ listings (44K apartments in Cairo)
Tips and advanced options
- PropertyFinder has the richest data — GPS coordinates, amenities, and payment plans are available directly from search results without needing to visit individual listings
- Enable "Enrich with Full Details" to follow listing URLs for complete data (GPS, agent phone, photos) — slower but much more valuable
- All filters are enforced in code — price, area, and bedroom filters are applied after extraction for accuracy, since some platforms ignore URL-based filters
- Dubizzle requires browser rendering — it's a JavaScript-rendered site, so runs take longer for Dubizzle compared to Aqarmap/PropertyFinder
- Schedule monthly runs with a named dataset to automatically track price changes and new listings
- Sort options: Newest first, lowest/highest price, smallest/largest area (Aqarmap supports all; PropertyFinder uses platform defaults)
FAQ and support
Is it legal to scrape Egyptian real estate websites? Property listings are publicly accessible information intended for buyers and renters. This actor only accesses publicly available data. Always review each platform's Terms of Service.
Why are some Dubizzle listings missing area/bathrooms? Dubizzle titles are marketing text and rarely include area or bathroom counts. Bedrooms, price, and compound name are usually available. Enable "Enrich with Full Details" to visit individual listing pages for complete data.
How do I get agent phone numbers? Toggle "Enrich with Full Details" in the actor input. PropertyFinder phones come for free. Aqarmap gives 100% coverage via enrichment (a fast HTTP fetch reads the agent phone from each detail page, falling back to a browser click for the few that hide it). Dubizzle phones are best-effort — many listings hide the number until clicked.
Can I track price changes? Yes — enable "Detect Listing Changes" (optionally with a named dataset to keep every run's results together). Each run is compared with the last run of the same search (same filters), using a 4-layer fingerprinting system (ID, GPS, photo hashes, property fingerprint) to match listings even when IDs change. The first run of a search records the baseline and reports no changes. A listing is reported removed only when its platform was scanned to the last page (not when the listing cap stopped the scan early), and at most "Max Listings per Platform" removed listings are reported per platform per run (any others on the next run). Each platform keeps its own history, so a task that searches different platforms with the same filters does not disturb it. Two tasks that run the same search on the same platform into the same dataset (or both without a dataset) share that history: whichever finished last is what the next run of either compares with. Give such tasks different named datasets if they must be tracked separately.
Need help? Open an issue in the Issues tab or reach out for a custom solution.
Changelog
- October 2026: The AI vision fallback now uses Google Gemini 3.5 Flash Lite, because the provider retires Gemini 2.5 Flash on 2026-10-20. AI calls are retried on temporary errors and on incomplete answers. The one-time AI Extraction event is still charged only once per run, and only after a complete AI answer whose listings were delivered. If the AI provider rejects the key or runs out of credit, the run stops using AI, says so in its status message, and still delivers the listings it found without AI. No output field was added, removed or renamed. Rows from the AI fallback (
extractionMethod: "ai-vision") are now read by the new model.