Immoweb Scraper: Belgian Property Listings, EPC & Agents avatar

Immoweb Scraper: Belgian Property Listings, EPC & Agents

Pricing

from $0.70 / 1,000 listings

Go to Apify Store
Immoweb Scraper: Belgian Property Listings, EPC & Agents

Immoweb Scraper: Belgian Property Listings, EPC & Agents

Every Immoweb.be listing in Belgium, for sale or rent, as a clean spreadsheet: price, address, GPS, living area, bedrooms, EPC score, cadastral income, photos and agency contacts. Type a postal code or paste a search. For investors, agencies and market research.

Pricing

from $0.70 / 1,000 listings

Rating

0.0

(0)

Developer

Kamil Ertekin

Kamil Ertekin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Get property listings from Immoweb.be, Belgium's main property portal, as one clean row per home: price, address, GPS, living area, bedrooms, EPC energy score, cadastral income, photos and the listing agency. Type a postal code like 9000 and you get every house and apartment for sale in Ghent, ready for Excel, Google Sheets or your CRM.

It's built for investors and analysts pricing a town, agencies watching new listings in their area, relocation teams building shortlists, and researchers who need the whole market rather than a sample.

What you get

Every row has the listing basics. Switch on Include full listing details and each row grows from 50 to 122 columns.

FieldExampleNotes
urlhttps://www.immoweb.be/en/classified/apartment/for-sale/gent/9000/21918861Link to the listing
transactionTypeFOR_SALEFOR_SALE or FOR_RENT
propertyType, propertySubtypeAPARTMENT, PENTHOUSEHouse, apartment, villa, land, office...
titleBright apartment with 2 bedrooms...As written by the agency. Immoweb cuts most titles at about 60 characters
price449000EUR. Monthly rent for rentals. Projects show their lowest unit price
pricePerSqm4490EUR per m² of living area (per month for rentals)
bedroomCount, netHabitableSurface, landSurface2, 100, nullLiving area and plot in m²
street, streetNumber, postalCode, locality, provinceHenri Dunantlaan, 22, 9000, Gent, East FlandersNumber always in its own column
latitude, longitude51.0513346, 3.6994978Missing when the agency hides the address
agencyNameKleyoThe advertiser
pictures, pictureCount4 preview photosEvery photo with full details
lastModificationDate2026-10-16T06:02:01.770ZISO 8601, UTC
epcScore, primaryEnergyConsumptionPerSqmB, 101Full details. Energy label A++ to G, kWh/m² per year
constructionYear, buildingCondition, facadeCount2013, AS_NEW, 3Full details. 4 facades means detached
cadastralIncome, floodZoneType, monthlyCosts1086, NON_FLOOD_ZONE, nullFull details
bathroomCount, heatingType, kitchenType1, GAS, INSTALLEDFull details
hasLift, hasTerrace, hasGarden and 22 moretrueFull details. null means the agency didn't say
agencyPhone, agencyEmail, agencyWebsite, agencyIpiNumber+3292252524, info@agency.beFull details. agencyEmail is only ever the agency's own address
agencyLeadEmail200484@secure.fortissimmo.netFull details. Lead-form inbox, kept apart from the agency's own email
description, creationDate, viewCountfull text, 2026-10-16T06:01:57.821Z, 624Full details
daysOnMarket13Full details. Whole days since the listing went online
floorPlanUrls, virtualTourUrlPDF links, https://youtu.be/…Full details. Only when the agency added them. Floor plans are rare: 1 listing in 17 in our check
monitorStatus, changedFieldschanged, ["price"]Daily feed only. new, changed or removed, and which columns changed
isProject, projectName, priceMin, priceMax, bedroomRangetrue, Dungelpark, 287500, 691500, 1 - 3New-build developments. Unit counts with full details

How often fields are filled, measured on real runs: street and GPS 98%, bedrooms 96%, EPC score 96%, construction year 90%, agency phone 88%, flood zone 87%, cadastral income 53%.

How to use it

  1. Type one or more places into Places to search: a postal code (9000), a province (Antwerp) or a larger town (Leuven). Or paste a search link from immoweb.be into Immoweb links.
  2. Pick For sale or for rent, a Property type, and set Maximum results. That number also caps what you pay.
  3. Click Start. A 100-row run finishes in under 10 seconds. Download the results as CSV, Excel or JSON.

This input works as-is:

{
"locations": ["9000"],
"listingType": "forSale",
"propertyType": "apartment",
"maxPrice": 400000,
"maxItems": 100
}

Postal codes for the big cities

CityPostal codeCityPostal code
Brussels centre1000Ghent9000
Ixelles1050Leuven3000
Uccle1180Bruges8000
Antwerp city2000Liège city4000
Mechelen2800Namur city5000
Hasselt3500Charleroi6000

Typing "Antwerp", "Liège" or "Namur" searches the whole province. Use the postal code for the city only.

Input reference

FieldWhat it does
Places to search (locations)Postal codes, provinces or larger towns. All searches the whole of Belgium.
Immoweb links (startUrls)Search or listing links from immoweb.be, in English, French or Dutch. Filters in the link are kept.
For sale or for rent (listingType)forSale or forRent. Used for places; a link keeps its own choice.
Property type (propertyType)House and apartment, house, apartment, villa, kot, land, office and more.
Maximum results (maxItems)Stops the run after this many listings. 0 means no limit. API callers can send limit or maxResults instead.
Include full listing details (scrapeDetails)Adds EPC, condition, cadastral income, agency contacts and every photo.
FiltersPrice, bedrooms, living area, plot size, construction year, EPC labels, condition, sub-types and must-haves like a garden or a lift.
Published or updated within (modifiedWithinDays)Only listings put online or updated in the last this many days. A new listing always counts.
Only new or changed listings (onlyNewSinceLastRun)For scheduled runs. Returns only what's new or changed since the last run, says what changed, and lists listings that have left your search.

Output example

One row with full details, trimmed:

{
"id": 21918861,
"url": "https://www.immoweb.be/en/classified/apartment/for-sale/gent/9000/21918861",
"transactionType": "FOR_SALE",
"propertyType": "APARTMENT",
"title": "Bright apartment with 2 bedrooms and 2 parking spaces for sale in Gent",
"price": 449000,
"pricePerSqm": 4490,
"bedroomCount": 2,
"bathroomCount": 1,
"netHabitableSurface": 100,
"street": "Henri Dunantlaan",
"streetNumber": "22",
"postalCode": "9000",
"locality": "Gent",
"province": "East Flanders",
"latitude": 51.0513346,
"longitude": 3.6994978,
"epcScore": "B",
"primaryEnergyConsumptionPerSqm": 101,
"constructionYear": 2013,
"buildingCondition": "AS_NEW",
"cadastralIncome": 1086,
"floodZoneType": "NON_FLOOD_ZONE",
"hasLift": true,
"agencyName": "Kleyo",
"agencyEmail": null,
"agencyLeadEmail": "inbound-automation@kleyo.be",
"agencyIpiNumber": "800115",
"pictureCount": 25,
"creationDate": "2026-10-16T06:01:57.821Z",
"viewCount": 624
}

Pricing

You pay per listing delivered. There's no start fee.

Apify planListing / 1,000Listing with full details / 1,000
Free$1.00$1.80
Starter (Bronze)$0.90$1.60
Scale (Silver)$0.80$1.40
Business (Gold) and higher$0.70$1.20

A row with full details is charged once, at the full-details price, not on top of the listing price.

Example: all 1,162 houses and apartments for sale in Ghent (9000) with full details cost about $2.09 on the Free plan, or about $1.39 on the Business plan. The same search without details costs about $1.16.

Not charged: duplicates, listings that were removed, places Immoweb doesn't know, listings outside your date window, and in a daily feed, unchanged listings and the rows that report a removed listing.

FAQ

How fresh is the data? Every run reads Immoweb live, so you get what's online at that moment. Schedule the run daily or hourly to keep a sheet up to date.

Can I get the newest listings first? Results come in Immoweb's own order, which isn't by date. To get only recent listings, set Published or updated within, for example to 7 days. For a running list of what's new, schedule a daily feed with Only new or changed listings.

How does the daily feed show what changed? Each row has monitorStatus: new for a listing the feed hasn't seen before, changed when its price, title, bedrooms, surface or project sales moved, with the changed columns named in changedFields (for example ["price"]). A listing that has left your search (sold, withdrawn, or no longer matching your filters) comes back once as a removed row with its link, free of charge. Removed listings are reported when the run reads the whole search, so set Maximum results above the number of matches, or to 0. They show up from the second run on.

Why do I get fewer rows than Immoweb shows? The same home is often listed by several agencies. Those copies are merged into one row so you don't pay five times for one villa. Turn off Merge duplicate listings under More options to get every listing.

Can I get more than 10,000 results? Yes. Immoweb shows at most about 10,000 results per search, but this scraper still returns every match. All of Belgium for sale is over 86,000 listings.

Why is agencyEmail empty when the agency clearly has an inbox? Many agencies publish a lead-form address first. That one goes into agencyLeadEmail, so agencyEmail only ever holds the agency's own address. For a full list of agencies with their own emails, VAT and IPI numbers, use the companion Immoweb Agency Scraper.

What do EPC, cadastral income and IPI mean? EPC (PEB in Brussels and Wallonia) is the energy label, A++ best to G worst. Cadastral income (KI or RC) is the notional rent used for property tax. IPI (BIV in Dutch) is the Belgian estate-agent licence number.

Can I run it on a schedule or connect it to other tools? Yes. Use Apify schedules for a daily feed, and Apify's integrations to send results to Google Sheets, Make, Zapier, n8n, Slack or a webhook. You can also fetch results from your own code through the Apify API.

Limits

  • Belgian listings on Immoweb only, for sale or for rent. Immoweb doesn't publish sold prices.
  • Some agencies hide the exact address. Those rows have the postal code and town but no street or GPS.
  • Titles are cut by Immoweb itself at about 60 characters. The full text is in description (full details).
  • A town name alone works for the larger towns listed in the input help. For anywhere else, use the 4-digit postal code.
  • New-build projects have a price range (priceMin to priceMax) rather than one price. Switch on One row per new-build unit for a row per flat.
  • Private sellers' personal contact details are not included. You're responsible for using agency contact data in line with GDPR.

Missing a field? Open an issue on the Issues tab.