Immoweb Scraper

Extract Immoweb.be property listings as clean JSON with zero personal data - euro prices, surfaces, EPC scores, municipality-level locations, agency-vs-private flag. Sale & rent, newest-first monitoring, pay per result. Built for market research and AI pipelines.

$1.99 / 1,000 · 100.0% success over 18 public runs in the last 30 days.

Run it on Apify → Free to try - runs bill per result on your own account.

What you give it

Every field is optional unless marked; sensible defaults do the rest.

FieldTypeWhat it doesDefault
propertyType string What kind of property to search: houses and apartments together (default), or one category. house-and-apartment
transaction string Search properties for sale or for rent. sale
postalCodes string Comma-separated Belgian postal codes to search in, e.g. "1000,1050". Leave empty to search all of Belgium. -
priceMinEur integer Only include listings priced at least this many euros. For rentals this is euros per month. -
priceMaxEur integer Only include listings priced at most this many euros. For rentals this is euros per month. -
bedroomsMin integer Only include properties with at least this many bedrooms. -
sortBy string Order of results: newest (best for monitoring), cheapest, most_expensive, or relevance. newest
maxItems integer Stop after this many listings. Free-plan runs are capped at 25 items. 1000

What you get back

One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.

FieldTypeMeaning
listingId string Immoweb listing ID.
url string Direct link to the listing.
title string Listing title as posted.
propertyType ['string', 'null'] Main property category, e.g. HOUSE, APARTMENT.
propertySubtype ['string', 'null'] Property subtype, e.g. VILLA, FLAT_STUDIO, MIXED_USE_BUILDING.
transaction ['string', 'null'] sale or rent.
priceEur ['integer', 'null'] Price in euros; for rentals per month. Null when the listing hides its price.
oldPriceEur ['integer', 'null'] Previous price in euros when the listing was reduced.
displayPrice ['string', 'null'] Price as the site displays it.
currency string Always EUR.
bedrooms ['integer', 'null'] Number of bedrooms; 0 for studios.
habitableSurfaceM2 ['number', 'null'] Net habitable surface in square meters.
landSurfaceM2 ['number', 'null'] Land surface in square meters.
region ['string', 'null'] Belgian region, e.g. Brussels, Flanders, Wallonia.
province ['string', 'null'] Province.
locality ['string', 'null'] Municipality. Locality-level only - street, house number and exact coordinates are never collected.
postalCode ['string', 'null'] Belgian postal code.
epcScore ['string', 'null'] Energy performance certificate score when reported, e.g. A, B, C.
publicSale boolean True for public (auction) sales.
flag ['string', 'null'] The site's listing flag, e.g. new.
sellerType string agency or private. Private sellers are anonymous on the site itself.
agencyName ['string', 'null'] Estate agency business name; null for private sellers.
createdAt ['string', 'null'] When the listing was created (ISO timestamp), when reported.
updatedAt ['string', 'null'] When the listing was last modified (ISO timestamp).
imageUrls array Listing photo URLs (up to 8).

Health

100.0% success over 18 public runs in the last 30 days. Live record, failures included: status page.

Full documentation, examples and the AI-assistant prompt live on the store page.