Immoweb Scraper — Belgian Real Estate Listings
Pricing
$10.00 / 1,000 listing scrapeds
Immoweb Scraper — Belgian Real Estate Listings
Scrape Immoweb.be property listings: price, surface, bedrooms, location, photos. Clean normalized output, no personal data. Pay only for listings delivered.
Pricing
$10.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
EstateLab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract property listings from Immoweb.be, Belgium's largest real estate portal: asking price, habitable surface, bedrooms, locality, postal code, province, photos and publication dates — in a clean, stable JSON schema.
You pay only for listings actually delivered. No start fee, no charge for empty runs.
What you get
Houses and apartments for sale or for rent, with a normalized output that stays identical from run to run — so your spreadsheet, database or dashboard never breaks. Plus two things other Immoweb scrapers don't give you: price per m² on every listing, and a market summary of median €/m² by locality.
Typical uses: market and price analysis, comparable-property research, investment screening, competitor monitoring for agencies, feeding a valuation model, tracking new listings in a given area.
Input
The easy way — paste your search URL. Build the search you want on
Immoweb itself, with any filters the site offers (price, surface, EPC rating,
build year, garden, terrace…), then paste the address into searchUrl. The
Actor paginates through it. No need to rebuild your filters in a form.
{"searchUrl": "https://www.immoweb.be/en/search/house/for-sale?countries=BE&maxPrice=400000&minBedroomCount=3","maxPages": 10}
Or use the simple filters, if you'd rather not touch a URL:
| Field | What it does | Default |
|---|---|---|
searchUrl | Immoweb search URL to paginate. Overrides the filters below | — |
propertyType | house, apartment, land, building, garage, office, commercial | house |
transactionType | sale or rent | sale |
postalCodes | Restrict to specific Belgian postal codes; empty covers the country | [] |
maxPages | Each page yields up to 30 listings | 5 |
maxListings | Hard cap on delivered listings, 0 for none | 0 |
language | fr, nl or en — all three fully supported | fr |
marketSummary | Write the median €/m² summary to the key-value store | true |
requestDelaySeconds | Pause between page requests | 1 |
{"propertyType": "apartment","transactionType": "sale","postalCodes": ["1000", "2000"],"maxPages": 10}
Output
One row per listing:
{"portal": "immoweb","listingId": "21773122","url": "https://www.immoweb.be/fr/annonce/maison/a-vendre/woluwe-saint-lambert/1200/21773122","transactionType": "sale","propertyType": "HOUSE","propertySubtype": "HOUSE","title": "Maison avec jardin et beau potentiel","price": 649000,"priceMin": null,"priceMax": null,"priceDisplay": "649 000 €","currency": "EUR","habitableSurface": 180,"landSurface": null,"bedrooms": 4,"rooms": null,"pricePerSqm": 3606,"country": "Belgique","region": "Bruxelles","province": "Bruxelles","locality": "Woluwe-Saint-Lambert","postalCode": "1200","images": ["https://media-resize.immowebstatic.be/..."],"flags": ["new"],"agency": "ABITA IMMO","publishedAt": null,"updatedAt": "2026-08-20T10:04:48.571Z","scrapedAt": "2026-08-20T18:22:10.004Z"}
New-development projects are sold as a range rather than a single figure: for
those, price is null and priceMin / priceMax carry the bracket, while
priceDisplay always holds the human-readable value.
Market summary
At the end of each run, a MARKET_SUMMARY entry is written to the run's
key-value store: median, minimum and maximum price per m² for every locality
with at least three comparable listings.
[{ "locality": "Liège", "transactionType": "sale", "propertyType": "HOUSE","listings": 4, "medianPricePerSqm": 1548,"minPricePerSqm": 1063, "maxPricePerSqm": 1878 }]
Sales and rentals are grouped separately, as are property types — mixing them
would produce a meaningless median, since a rent per m² is monthly. Set
marketSummary to false to skip it.
No personal data
This Actor describes properties, not people. It never collects seller names, phone numbers, email addresses or any contact details.
The agency field is filled only when the advertiser's name carries a
recognised company legal form (NV, BV, SA, SPRL, GmbH, Ltd…), which identifies
a legal entity. Any name that could belong to a private individual is dropped
rather than published. That keeps the output outside the scope of personal data
processing under the GDPR.
Reliability
- A page that fails is retried up to three times, then recorded in the
FAILED_PAGESkey of the run's key-value store. A single bad page never aborts the run — you always know exactly what was and wasn't collected. - Listings are deduplicated by ID across pages.
- No headless browser is used, which makes runs fast and cheap: one HTTP request returns thirty listings.
Pricing
Pay-per-event, charged per listing delivered to the dataset. A run that returns nothing costs nothing.
Terms of use
You are responsible for how you use the data this Actor returns. Review Immoweb's terms of service and your local regulations before running it, especially if you intend to redistribute or publish the collected data. Keep request volumes reasonable — the default delay between pages exists for that purpose. This Actor is not affiliated with, endorsed by, or connected to Immoweb.
Roadmap
Same schema, other European portals: Idealista (ES), Rightmove (UK), Funda (NL), ImmoScout24 (DE), Immobiliare (IT), SeLoger (FR), Zoopla (UK). Swap the Actor, keep your pipeline.