Skip to content

Immoweb Scraper – Belgian Real Estate Listings

Try for free

Scrape Immoweb.be, Belgium's largest real estate portal: houses, apartments, land and commercial property for sale or rent. Paste search URLs or use filters and get price, bedrooms, surface, EPC, address, GPS, photos and agency contacts, plus the full listing record.

🏡 Immoweb Scraper – Belgian Real Estate Listings

Scrape Immoweb.be, Belgium's largest real estate portal. Paste any search URL (or pick filters) and get clean rows for houses, apartments, land, garages and commercial property, for sale or rent: price, bedrooms, living and land area, EPC score, full address, GPS, photos and the agency with phone and email. Every row also carries the complete Immoweb listing record. No login, no browser.

✨ Why use Immoweb Scraper?

  • ⚡ Fast — reads Immoweb's own search JSON (30 listings per request) and opens listing pages in parallel.
  • 🔎 Any search works — paste a /search/ URL in English, French or Dutch with your filters and every filter is kept. Or use the built-in filters (postal codes, provinces, price, bedrooms, surface, EPC) without visiting the site.
  • 📈 Past the 9,990 cap — Immoweb shows at most 333 pages per search; when you ask for more, the scraper splits the search into price bands so you still get them.
  • 📇 Agency contacts — full details add the agency phone, email and website, the full description (in all languages), rooms, surfaces, building, energy and every photo.
  • 📊 Spreadsheet-ready — flat columns (priceEur, bedrooms, postalCode, epcScore…) up front, the full nested record after them.
  • 💸 Cheap — pay per listing, datacenter proxy, no browser costs. Turn details off for an even cheaper search-card mode.

🎯 Use cases

  • 🏙️ Market research — track asking prices and €/m² across Brussels, Antwerp, Ghent, Liège or any postal code.
  • 💰 Investment analysis — compare rents and sale prices, spot price drops and newly listed properties.
  • 📞 Lead generation — collect real estate agencies active in a region with phone, email and website.
  • 🔔 Monitoring — schedule a daily run on a search sorted by newest and get new listings first.
  • 🗺️ Mapping and data products — GPS coordinates, EPC scores and energy data on every detailed row.

🚀 How to use

  1. Run a search on immoweb.be with your filters and copy the URL, e.g. https://www.immoweb.be/en/search/house/for-sale/brussels/district?countries=BE. Paste one or more URLs into Immoweb URLs. Listing URLs (/en/classified/...) work too. (Or leave it empty and use the Filters section.)
  2. Set Maximum listings (0 = no limit).
  3. Keep Include full listing details on for contacts, descriptions and all fields, or turn it off for search-card data only.
  4. Click Start and export the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldDescription
startUrlsImmoweb search or listing URLs (EN/FR/NL).
maxItemsMaximum listings in total (default 20, 0 = no limit).
transactionType, propertyTypeFilters mode: for-sale / for-rent, and house, apartment, land, garage, office, business, industry…
postalCodes, provincesWhere to search (filters mode).
minPrice … maxSurface, epcScores, sortByPrice, bedrooms, living and land area, EPC and sort order.
includeDetailsOpen every listing page for the full record (default on).
proxyConfigurationDatacenter proxy by default.
{
  "startUrls": ["https://www.immoweb.be/en/search/house/for-sale/brussels/district?countries=BE&orderBy=newest"],
  "maxItems": 20,
  "includeDetails": true
}

Filters example:

{
  "transactionType": "for-rent",
  "propertyType": "apartment",
  "postalCodes": ["1050", "9000"],
  "minPrice": 800,
  "maxPrice": 1500,
  "minBedrooms": 2,
  "maxItems": 100
}

📤 Output

FieldDescription
id, urlImmoweb listing id and page
title, propertyType, propertySubtype, transactionTypeWhat is offered
priceEur, priceText, monthlyCostsPrice (monthly rent for rentals)
bedrooms, bathrooms, livingAreaSqm, landAreaSqmSize
epcScore, primaryEnergyKwhPerSqmEnergy performance
street, houseNumber, postalCode, locality, district, province, region, latitude, longitudeLocation
agencyName, agencyPhone, agencyEmail, agencyWebsiteAdvertiser
mainImage, imageCount, description, createdAt, updatedAtMedia, text, dates
customers, property, transaction, price, media, flags, publication, statistics, …The complete Immoweb listing record, nested as on the site
detailFetched, original_request_urlWhether the listing page was read; the input it came from

Example (fictional data, trimmed):

{
  "id": 21900001,
  "url": "https://www.immoweb.be/en/classified/house/for-sale/uccle/1180/21900001",
  "title": "Bright family house with garden",
  "propertyType": "HOUSE",
  "propertySubtype": "HOUSE",
  "transactionType": "FOR_SALE",
  "priceEur": 695000,
  "priceText": "€695,000",
  "bedrooms": 4,
  "bathrooms": 2,
  "livingAreaSqm": 210,
  "landAreaSqm": 420,
  "epcScore": "C",
  "street": "Avenue de l'Exemple",
  "houseNumber": "12",
  "postalCode": "1180",
  "locality": "Uccle",
  "province": "Brussels",
  "latitude": 50.80,
  "longitude": 4.36,
  "agencyName": "Example Immo",
  "agencyPhone": "+3220000000",
  "agencyEmail": "info@example-immo.be",
  "mainImage": "https://media-resize.immowebstatic.be/classifieds/.../736x736/photo.jpg",
  "imageCount": 24,
  "createdAt": "2026-10-01T09:00:00.000Z",
  "detailFetched": true,
  "property": { "type": "HOUSE", "bedroomCount": 4, "netHabitableSurface": 210, "land": { "surface": 420 }, "...": "..." },
  "transaction": { "type": "FOR_SALE", "certificates": { "epcScore": "C" }, "sale": { "price": 695000 } },
  "original_request_url": "https://www.immoweb.be/en/search/house/for-sale/brussels/district?countries=BE"
}

💰 Pricing

You pay per listing saved: $1 per 1,000 listings for search-card data, plus $2 per 1,000 for listings opened with full details. So 1,000 detailed listings cost about $3 in event fees. Platform usage (compute and proxy traffic) is billed separately and is small for this actor.

❓ FAQ

Is it legal? The scraper only reads public listing pages that anyone can open without an account. Respect Immoweb's terms and privacy law (GDPR) when you store or use agency contact data.

Do I need a login or a proxy? No login. The default datacenter proxy works; switch to residential only if you see many refused requests.

How many results can I get? Immoweb serves up to 333 pages (about 9,990 listings) per search. Ask for more and the scraper splits the search into price bands; listings without a public price can only be reached inside the first 9,990.

Why is a field empty? Advertisers fill different fields. Agency phone/email, description and dates need Include full listing details.

Can I schedule it or use the API? Yes. Schedule daily runs (sorted by newest) and read results through the API or integrations.

⚠️ Limits

  • Belgium only (Immoweb's own search scope); listings abroad on Immoweb are not covered.
  • Private sellers' contact details are hidden behind Immoweb's contact form and are not scraped.
  • Search-card mode (details off) has no description, agency phone/email or creation date.
  • Prices hidden by the advertiser stay empty.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.