ParseForge Scrapers

Real Estate Global Listings Scraper

parseforge/real-estate-global-listings-scraper

BusinessReal estateTravel

Scrapes real estate listings from six international portals: MagicBricks, Otodom, Hemnet, Imovirtual, Property24, and Aqarmap. Returns each listing as a flat row with price, location, and property details.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
42
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

Real Estate Global Listings Scraper

Scrape real estate listings from MagicBricks, Otodom, Hemnet, Imovirtual, Property24, and Aqarmap in one run. Every listing returns price, location, size, and source-specific details in a flat row. Export to CSV, JSON, Excel, or XML.

Real estate portals in India, Poland, Sweden, Portugal, South Africa, and Egypt each have their own filters, slugs, and pagination. This Actor queries MagicBricks, Otodom, Hemnet, Imovirtual, Property24, and Aqarmap in parallel, applies each portal's native filters, and returns every match in one fixed schema. No API keys or per-portal scrapers to maintain.

Who uses it What they scrape Real Estate Global Listings for
Market researchers Compare asking prices and inventory across six countries in one dataset
Real estate investors Find undervalued properties in emerging markets like India and Egypt
Property portals and aggregators Monitor competitor listings and pricing strategies
Data analysts Build cross-country housing market indices from raw listing data
Relocation services Curate rental options for clients moving to Poland, Sweden, or Portugal

What it does

This Actor collects real estate listings from six international portals and returns each listing as a flat row with source, price, location, and property details.

  • 🌍 Six portals, one schema: MagicBricks, Otodom, Hemnet, Imovirtual, Property24, and Aqarmap, normalized into a single flat row.
  • 🔍 Native filters per source: city, transaction type, property type, location slug, and sort order, applied exactly as each portal expects.
  • Parallel scraping: all selected sources are queried at once, so a six-country run finishes in the time of one.
  • 📊 Flat output: every listing is one row with source, price, location, size, and property details, ready for CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Real Estate Global Listings data

📈 Compare asking prices across countries.

A market researcher runs the Actor with all six sources and the default filters, then pivots the flat dataset by city and property type to spot pricing trends.

🏠 Find rental inventory for relocation clients.

A relocation service sets Otodom to wynajem, Imovirtual to arrendar, and Hemnet to NEWEST, then filters the results to apartments under a target rent.

🔎 Monitor new listings in a specific city.

An investor sets MagicBricks to Mumbai, Property24 to Cape Town, and Aqarmap to Cairo, then schedules the Actor daily to catch fresh for-sale listings.

📊 Build a cross-country housing index.

A data analyst collects monthly snapshots from all six portals and computes median price per square meter by city and property type.

🏢 Track competitor inventory for a portal.

A property portal product manager scrapes Otodom and Imovirtual weekly to compare listing volumes and price distributions in Warsaw and Lisbon.

Why choose this scraper

What you get
Six portals, one schema No need to build and maintain six separate scrapers
Native filters Use each portal's own slugs and enums, not brittle free-text search
Parallel execution All selected sources are scraped simultaneously for speed
Flat rows Every listing is one row, ready for analysis or export

How it compares

This Actor focuses on six international real estate portals, while the competitors below target job listings or generic web scraping.

Feature ParseForge Google Jobs Scraper
Scrapes real estate listings Yes Not listed
Supports MagicBricks, Otodom, Hemnet, Imovirtual, Property24, Aqarmap Yes Not listed
Native filters per portal (city, transaction, property type) Yes Not listed
Parallel scraping of multiple sources Yes Not listed
Flat row output for each listing Yes Not listed

Configure the run

Drive the Actor from the sources array and per-source filters like city, transaction, property type, and location slug. Filters run as each listing is read, so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Real Estate Global Listings Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Real Estate Global Listings through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/real-estate-global-listings-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. A common cause is a location slug that does not match the portal's current slugs. Try clearing the location field or using the default value, and make sure the transaction and property type enums are valid for that source.

Why are some sources returning fewer listings than expected?

Each portal may cap the number of pages it serves. Also, if you set maxItems low, the Actor stops early. Increase maxItems and ensure your filters are not too restrictive.

Why did the run fail with a timeout?

Scraping six portals in parallel can take a few minutes. If you hit a timeout, try selecting fewer sources or increasing the run timeout in the Actor's settings.

Why are prices missing or in different currencies?

Prices are returned as shown on the portal, including the currency. Some listings may not display a price, especially rentals that say 'price on request'. The price field will be empty in those cases.

Why do I see duplicate listings?

The same property can be listed on multiple portals, or a portal may show the same listing in different categories. The Actor does not deduplicate across sources. Use the source field to filter or deduplicate in your own pipeline.

FAQ

Question Answer
Which real estate portals does this Actor support? It supports MagicBricks (India), Otodom (Poland), Hemnet (Sweden), Imovirtual (Portugal), Property24 (South Africa), and Aqarmap (Egypt). You can select any subset or leave the sources array empty to query all six.
Do I need API keys or logins for any of these portals? No. The Actor reads the public listing pages directly, so no API registration, OAuth, or portal account is required.
How do I filter listings by city or property type? Each source has its own filter fields in the input. For example, MagicBricks has mb_city and mb_transaction, Otodom has ot_location and ot_estate, and Aqarmap has aq_city and aq_propertyType. Set the ones you need and leave others at their defaults.
Can I scrape both sale and rental listings in one run? Yes, but each source has a single transaction field. To get both sale and rental from the same source, run the Actor twice with different transaction values, or use two separate runs and merge the datasets.
What is the maximum number of listings I can scrape? Free users are limited to 10 items as a preview. Paid users can set maxItems up to 1,000,000 per run.
How are the results structured? Every listing is returned as one flat row with fields like source, price, location, size, and property details. The exact fields are shown in the sample output below.
Can I schedule this Actor to run daily or weekly? Yes, you can schedule it from the Apify console or API. Many users run it daily to track new listings or weekly for market snapshots.
What export formats are supported? You can export the dataset to CSV, JSON, Excel, or XML directly from the Apify platform, or use the API to pull the data into your own pipeline.
Does this Actor handle pagination automatically? Yes, it follows each portal's pagination until it reaches maxItems or the end of the results.
What if a portal changes its layout? The Actor is maintained and updated when a portal changes. If you notice a break, report it and a fix is usually shipped quickly.

Related actors

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Real Estate Global Listings. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
query string Optional free-text keyword (some sources accept it as a free-text filter; many use the structured filters below instead). not set
sources array Which underlying sources to query. Leave empty to query all sources in parallel. ["magicbricks","otodom","hemnet","imovir
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
mb_city string (10 options) City ID for MagicBricks (India). 4320
mb_transaction string (2 options) Sale or Rent listings on MagicBricks. S
ot_transaction string (2 options) Sale or rent on Otodom (Polish slug). sprzedaz
ot_estate string (5 options) Estate type slug (Polish). mieszkanie
ot_location string Otodom location slug (e.g. cala-polska, mazowieckie/warszawa). cala-polska
hm_sort string (4 options) Sort order for Hemnet results. NEWEST
im_transaction string (2 options) Buy or rent on Imovirtual (Portuguese slug). comprar
im_propertyType string (5 options) Property type slug (Portuguese). apartamento
im_location string Imovirtual location slug (e.g. lisboa, porto, faro). lisboa
p24_transaction string (2 options) For-sale or to-rent on Property24. for-sale
p24_location string Property24 location slug (e.g. cape-town/western-cape/432). cape-town/western-cape/432
aq_city string (5 options) Egyptian city slug. cairo
aq_transaction string (2 options) For-sale or for-rent on Aqarmap. for-sale
aq_propertyType string (6 options) Aqarmap property type slug. apartment

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST · run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~real-estate-global-listings-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Real Estate Global Listings Scraper on Apify All scrapers