Immoweb Scraper avatar

Immoweb Scraper

Pricing

from $3.30 / 1,000 results

Go to Apify Store
Immoweb Scraper

Immoweb Scraper

Scrape Immoweb.be property listings from any search URL: price, address, surface, bedrooms, EPC score, construction year, garden, terrace, agency contact and photos. Export to CSV, JSON, Excel or XML.

Pricing

from $3.30 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

ParseForge Banner

๐Ÿ  Immoweb Scraper

๐Ÿš€ Export Immoweb property listings with the full record in seconds. Paste any Immoweb search URL, for sale or for rent, houses, apartments, new-build projects, garages, offices or land, and get 97 fields per listing back: price and price per square metre, exact address with coordinates, surfaces, bedrooms and bathrooms, EPC score and energy consumption, construction year, garden, terrace, parking, flood zone, cadastral income, the agency's phone, email and IPI number, and every photo. No login, no browser, no API key.

Immoweb is Belgium's largest property portal, with close to 10,000 houses and apartments for sale on any given day plus rentals, new-build projects, garages, offices and land. Its search page shows a card with a price, a locality and a photo. This Actor reads the same JSON that Immoweb's own search page loads, opens each listing for the full record the way a visitor would, and returns everything as one flat row per property, ready for a spreadsheet, a valuation model or a CRM.

Every row carries 97 fields with full details on, or 39 in the faster card-only mode. A search page brings 30 listings in one request and each listing page adds the full record in one more, so a five-listing run in the cloud finished in 8 seconds. Prices come back as clean numbers in EUR next to the label Immoweb shows, pricePerSqm is computed from price and living area, and the energy score, construction year and building condition arrive as plain values you can filter on.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Property investors and buyersScreen a whole city by price per square metre, EPC score and construction year in one export.
Valuation analysts and appraisersBuild comparable datasets with exact surfaces, cadastral income and coordinates.
Estate agencies and lead-gen teamsTrack competitors' new listings and price drops, and reach the agencies and private sellers behind them.
PropTech and data teamsFeed a Belgian property database from any search, on a schedule, with a fixed schema.

๐Ÿ“‹ What the Immoweb Scraper does

๐Ÿ’ก Why it matters: the listing page on Immoweb holds far more than the search card: the energy score and consumption, the construction year and building condition, the number of bathrooms and toilets, garden and terrace surfaces with their orientation, parking spaces, heating type, flood zone, cadastral income, VAT status, the agency's contact details and the complete photo set. This Actor puts all of that on one row per listing and pulls those rows for a whole search in one run.

  • ๐Ÿ”— Any Immoweb search URL. Apply your filters on immoweb.be, copy the URL and paste it. Property type, for sale or for rent, city or postal codes, price range, bedrooms, surface and sort order are all honoured because Immoweb applies them itself. English, French and Dutch URLs all work.
  • ๐Ÿข Listing URLs too. Paste one or more listing pages and get the same 97-field row for each. Mix searches and listings in one run.
  • ๐Ÿ’ถ Prices as data. price as a number in EUR, priceDisplay as Immoweb shows it (โ‚ฌ239,000, โ‚ฌ1,050 (+ โ‚ฌ40)), pricePerSqm computed per listing, the previous price after a drop, and the price range for new-build projects.
  • ๐Ÿ“ Full address. Street, number, box, floor, locality, postal code, district, province, region and coordinates whenever the seller publishes them.
  • โšก Energy and building. EPC score, primary energy consumption per mยฒ, EPC reference, renovation obligation, heating type, double glazing, heat pump, solar panels, construction year, condition, facades and floors.
  • ๐ŸŒฟ Outdoor and comfort. Garden and terrace with surface and orientation, balcony, swimming pool, attic, basement, lift, indoor and outdoor parking, kitchen type and surface, living-room surface, furnished, pets allowed on rentals.
  • ๐Ÿ› Legal and cost lines. Cadastral income, VAT status, monthly charges, flood-zone type and availability date.
  • ๐Ÿ“ž The seller on every row. Agency or private seller, name, phone, mobile, email, website, IPI licence number and logo.
  • ๐Ÿ“ธ All the photos. Every listing photo at 2560 px, plus the virtual-tour and video links when the listing has them.
  • ๐Ÿ“… Real dates and engagement. Publication and last-modified timestamps in ISO 8601, plus the listing's view and bookmark counts.
  • ๐Ÿ— New-build projects. Project name, percentage sold, bedroom and surface ranges, and the price range across units.
  • โšก Card-only mode. Switch full details off to export just the search cards, 30 listings per request, when price, location, surface and bedrooms are enough.
  • ๐Ÿ“ฆ One fixed schema. Columns never move, so your spreadsheet or database mapping never breaks.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

A short walkthrough video is in production and will land here.

๐Ÿ“Š Output

One row per listing, 97 fields, always in this order. With full details off the row stops after lastModifiedAt and carries 39 fields.

FieldTypeDescription
๐Ÿ–ผ imageUrlstringMain listing photo.
๐Ÿ“Œ titlestringReadable label, e.g. Apartment for sale in Liรจge (4000).
๐Ÿ”— urlstringThe listing page.
๐Ÿ†” idnumberImmoweb listing ID.
๐Ÿ” transactionTypestringFOR_SALE or FOR_RENT.
๐Ÿ  propertyTypestringHOUSE, APARTMENT, APARTMENT_GROUP, GARAGE, OFFICE, LAND and the other Immoweb types.
๐Ÿก propertySubtypestringVILLA, DUPLEX, PENTHOUSE, GROUND_FLOOR, FLAT_STUDIO, TOWN_HOUSE and more.
๐Ÿท listingFlagstringImmoweb's card flag, e.g. new.
๐Ÿ’ถ pricenumberAsking price or monthly rent in EUR.
๐Ÿ’ฑ currencystringAlways EUR.
๐Ÿ’ฌ priceDisplaystringThe price exactly as Immoweb shows it, charges included for rentals.
๐Ÿงพ priceTypestringresidential_sale, residential_monthly_rent, group_sale and similar.
๐Ÿ“‰ oldPricenumberPrevious price after a price change.
๐Ÿ”ฝ priceMinnumberLowest unit price in a new-build project. N/A for single listings.
๐Ÿ”ผ priceMaxnumberHighest unit price in a new-build project. N/A for single listings.
๐Ÿ“ pricePerSqmnumberPrice divided by living area, rounded to the euro.
๐Ÿ— projectNamestringNew-build project name. N/A for single listings.
๐Ÿ“Š projectSoldPercentnumberShare of project units already sold.
๐Ÿ› projectBedroomRangestringBedroom range across the project's units.
๐Ÿ“ projectSurfaceRangestringSurface range across the project's units.
๐Ÿ“ localitystringMunicipality as written on the listing.
๐Ÿ“ฎ postalCodestringBelgian postal code.
๐Ÿ—บ districtstringArrondissement.
๐Ÿ—บ provincestringProvince.
๐ŸŒ regionstringFlanders, Wallonia or Brussels.
๐Ÿ‡ง๐Ÿ‡ช countrystringCountry.
๐Ÿ›ฃ streetstringStreet name.
๐Ÿ”ข streetNumberstringHouse number.
๐Ÿ“ฆ boxstringBox or unit number.
๐Ÿข floornumberFloor of the unit.
๐Ÿงญ latitudenumberLatitude.
๐Ÿงญ longitudenumberLongitude.
๐Ÿ› bedroomCountnumberBedrooms.
๐Ÿšช roomCountnumberRooms, where Immoweb publishes it.
๐Ÿ“ netHabitableSurfacenumberLiving area in mยฒ.
๐ŸŒณ landSurfacenumberPlot area in mยฒ.
๐Ÿข agencyNamestringAgency or seller name.
๐Ÿ–ผ agencyLogoUrlstringAgency logo.
๐ŸŽฅ hasVirtualTourstringYes when a virtual tour is attached.
๐ŸŽฌ hasVideostringYes when a video is attached.
๐Ÿ”„ lastModifiedAtstringLast update of the listing, ISO 8601.
๐Ÿ”– externalReferencestringThe agency's own reference.
๐Ÿ“„ transactionSubtypestringBUY_REGULAR, RENT_REGULAR and the other Immoweb subtypes.
๐Ÿ’ธ monthlyChargesnumberMonthly charges in EUR.
๐Ÿ› cadastralIncomenumberCadastral income in EUR. Sales only.
๐Ÿงพ isSubjectToVatstringYes when the sale is subject to VAT.
๐Ÿ› bathroomCountnumberBathrooms.
๐Ÿšฟ showerRoomCountnumberShower rooms.
๐Ÿšฝ toiletCountnumberToilets.
๐Ÿ›‹ livingRoomSurfacenumberLiving-room area in mยฒ.
๐Ÿณ kitchenTypestringInstalled, Hyper equipped, Semi equipped and similar.
๐Ÿณ kitchenSurfacenumberKitchen area in mยฒ.
๐Ÿ— constructionYearnumberYear built.
๐Ÿ”ง buildingConditionstringGood, As new, To renovate, Just renovated and similar.
๐Ÿงฑ facadeCountnumberNumber of facades.
๐Ÿข floorCountnumberFloors in the building.
๐Ÿ›— hasLiftstringYes or No.
๐Ÿš hasAtticstringYes or No.
๐Ÿ•ณ hasBasementstringYes or No.
๐ŸŒฟ hasGardenstringYes or No.
๐ŸŒฟ gardenSurfacenumberGarden area in mยฒ.
๐Ÿงญ gardenOrientationstringGarden orientation.
โ˜€๏ธ hasTerracestringYes or No.
โ˜€๏ธ terraceSurfacenumberTerrace area in mยฒ.
๐Ÿงญ terraceOrientationstringTerrace orientation.
๐ŸชŸ hasBalconystringYes or No.
๐ŸŠ hasSwimmingPoolstringYes or No.
๐Ÿš— parkingIndoornumberIndoor parking spaces.
๐Ÿš— parkingOutdoornumberOutdoor parking spaces.
๐Ÿ›‹ isFurnishedstringYes or No.
๐Ÿพ petsAllowedstringYes or No on rentals, N/A on sales.
๐Ÿ”ฅ heatingTypestringGas, Electric, Pellet, Fueloil, Heat pump and similar.
๐ŸชŸ hasDoubleGlazingstringYes or No.
โ™จ๏ธ hasHeatPumpstringYes or No.
โ˜€๏ธ hasSolarPanelsstringYes or No.
โšก epcScorestringEPC label, A+ to G.
โšก primaryEnergyConsumptionPerSqmnumberPrimary energy consumption in kWh/mยฒ/year.
๐Ÿ”– epcReferencestringEPC certificate reference.
๐Ÿ›  renovationObligationstringYes when a Flemish renovation obligation applies.
๐ŸŒŠ floodZoneTypestringNon flood zone, Possible flood zone and similar.
๐Ÿ“… availabilityDatestringWhen the property becomes available.
๐Ÿข agencyTypestringAgency, Private seller, Notary or Developer.
๐Ÿ“ž agencyPhonestringAgency landline.
๐Ÿ“ฑ agencyMobilestringAgency mobile.
โœ‰๏ธ agencyEmailstringAgency email.
๐ŸŒ agencyWebsitestringAgency website.
๐Ÿชช agencyIpiNumberstringThe agency's IPI licence number.
๐Ÿ“ descriptionstringFull listing description.
๐Ÿ“… publishedAtstringWhen the listing was published, ISO 8601.
๐Ÿ‘ viewCountnumberViews Immoweb reports for the listing.
๐Ÿ”– bookmarkCountnumberTimes the listing was saved by visitors.
๐ŸŽฅ virtualTourUrlstringVirtual-tour link.
๐ŸŽฌ videoUrlstringVideo link.
๐Ÿ–ผ imageCountnumberNumber of photos.
๐Ÿ–ผ imageUrlsarrayEvery photo URL at 2560 px.
๐Ÿ•’ scrapedAtstringWhen this row was collected.
โŒ errorstring or nullError message for rows that could not be collected, otherwise null.

Sample records

{
"imageUrl": "https://media-resize.immowebstatic.be/classifieds/5eaf4184-94df-4cae-b54c-f64164e198ae/736x736/47c76e4e6ea6813963b872db8834eee3.jpg",
"title": "Apartment for sale in Liรจge (4000)",
"url": "https://www.immoweb.be/en/classified/apartment/for-sale/liege/4000/21821712",
"id": 21821712,
"transactionType": "FOR_SALE",
"propertyType": "APARTMENT",
"propertySubtype": "APARTMENT",
"listingFlag": "new",
"price": 179000,
"currency": "EUR",
"priceDisplay": "โ‚ฌ179,000",
"priceType": "residential_sale",
"pricePerSqm": 3140,
"locality": "Liรจge",
"postalCode": "4000",
"district": "Liรจge",
"province": "Liรจge",
"region": "Wallonie",
"country": "Belgium",
"street": "Rue Hors-Chรขteau",
"streetNumber": "54",
"floor": 0,
"latitude": 50.64700310000001,
"longitude": 5.5787361,
"bedroomCount": 1,
"netHabitableSurface": 57,
"agencyName": "JNP Immobilier",
"lastModifiedAt": "2026-09-07T14:50:17.247Z",
"externalReference": "7737211",
"transactionSubtype": "BUY_REGULAR",
"isSubjectToVat": "No",
"bathroomCount": 1,
"showerRoomCount": 1,
"toiletCount": 1,
"livingRoomSurface": 18,
"kitchenType": "Installed",
"kitchenSurface": 6,
"constructionYear": 1932,
"buildingCondition": "Good",
"floorCount": 3,
"hasLift": "No",
"hasBasement": "Yes",
"hasTerrace": "Yes",
"terraceOrientation": "South",
"hasSwimmingPool": "No",
"isFurnished": "No",
"hasDoubleGlazing": "Yes",
"epcScore": "C",
"primaryEnergyConsumptionPerSqm": 200,
"epcReference": "20250507030936",
"floodZoneType": "Non flood zone",
"agencyType": "Agency",
"agencyMobile": "+3243773310",
"agencyIpiNumber": "512594",
"publishedAt": "2026-09-07T14:49:26.895Z",
"imageCount": 20,
"imageUrls": [
"https://media-resize.immowebstatic.be/classifieds/5eaf4184-94df-4cae-b54c-f64164e198ae/2560x1440/47c76e4e6ea6813963b872db8834eee3.jpg",
"https://media-resize.immowebstatic.be/classifieds/5eaf4184-94df-4cae-b54c-f64164e198ae/2560x1440/f6d5ea0e1fe4cc9e9aad87aa051e2a57.jpg"
],
"scrapedAt": "2026-09-07T14:51:16.136Z",
"error": null
}
{
"imageUrl": "https://media-resize.immowebstatic.be/classifieds/8eada6d7-01e5-4c8f-a49a-91d9619b3d57/736x736/cc6d4696f9de79dd61428dc0b3d77193.jpg",
"title": "House for sale in Oisquercq (1480)",
"url": "https://www.immoweb.be/en/classified/house/for-sale/oisquercq/1480/21821711",
"id": 21821711,
"transactionType": "FOR_SALE",
"propertyType": "HOUSE",
"propertySubtype": "HOUSE",
"listingFlag": "new",
"price": 350000,
"currency": "EUR",
"priceDisplay": "โ‚ฌ350,000",
"pricePerSqm": 1842,
"locality": "OISQUERCQ",
"postalCode": "1480",
"district": "Nivelles",
"province": "Walloon Brabant",
"region": "Wallonie",
"country": "Belgium",
"bedroomCount": 5,
"netHabitableSurface": 190,
"landSurface": 278,
"agencyName": "Trevi Conseil Immo",
"hasVirtualTour": "Yes",
"externalReference": "7908 - 7501",
"cadastralIncome": 391,
"isSubjectToVat": "No",
"bathroomCount": 1,
"toiletCount": 2,
"livingRoomSurface": 18,
"kitchenType": "Installed",
"constructionYear": 1940,
"buildingCondition": "Good",
"facadeCount": 3,
"floorCount": 3,
"hasLift": "No",
"hasAttic": "Yes",
"hasBasement": "Yes",
"hasGarden": "Yes",
"gardenSurface": 200,
"hasTerrace": "Yes",
"terraceSurface": 15,
"parkingOutdoor": 1,
"heatingType": "Pellet",
"hasDoubleGlazing": "Yes",
"hasHeatPump": "No",
"epcScore": "D",
"primaryEnergyConsumptionPerSqm": 297,
"epcReference": "20260815010373",
"floodZoneType": "Non flood zone",
"agencyType": "Agency",
"agencyPhone": "+3223555055",
"agencyEmail": "trevi-conseilimmo@omniwebsites.be",
"agencyWebsite": "http://www.treviconseil.be",
"agencyIpiNumber": "506457",
"description": "Oisquercq, dans une jolie rue rรฉsidentielle apprรฉciรฉe pour son excellente situation au calme et ร  seulement 7 minutes de...",
"publishedAt": "2026-09-07T14:49:21.860Z",
"virtualTourUrl": "https://nodalview.com/s/0jH0qm7yTFuOOinLeZj1xn",
"imageCount": 30,
"scrapedAt": "2026-09-07T14:51:16.160Z",
"error": null
}
{
"imageUrl": "https://media-resize.immowebstatic.be/classifieds/e7db3f85-456a-406e-9b24-c04c5d7e2aa6/736x736/f7415904c1bc24d33714d97f975f88df.jpg",
"title": "House for sale in Orp-Jauche (1350)",
"url": "https://www.immoweb.be/en/classified/house/for-sale/orp-jauche/1350/21359179",
"id": 21359179,
"transactionType": "FOR_SALE",
"propertyType": "HOUSE",
"price": 445000,
"currency": "EUR",
"priceDisplay": "โ‚ฌ445,000",
"pricePerSqm": 2225,
"locality": "Orp-Jauche",
"postalCode": "1350",
"district": "Nivelles",
"province": "Walloon Brabant",
"region": "Wallonie",
"street": "Avenue Rodolphe Gossia",
"streetNumber": "2",
"latitude": 50.67968940000001,
"longitude": 4.9600507,
"bedroomCount": 4,
"netHabitableSurface": 200,
"landSurface": 436,
"agencyName": "SRL Immobiliรจre du Val",
"externalReference": "Maison 2",
"isSubjectToVat": "Yes",
"bathroomCount": 1,
"showerRoomCount": 1,
"toiletCount": 2,
"livingRoomSurface": 30,
"kitchenType": "Hyper equipped",
"kitchenSurface": 10,
"constructionYear": 2026,
"facadeCount": 3,
"floorCount": 2,
"hasGarden": "Yes",
"gardenSurface": 186,
"gardenOrientation": "South west",
"hasTerrace": "Yes",
"terraceSurface": 22,
"terraceOrientation": "South west",
"parkingIndoor": 1,
"parkingOutdoor": 1,
"heatingType": "Electric",
"hasDoubleGlazing": "Yes",
"hasHeatPump": "Yes",
"hasSolarPanels": "No",
"epcScore": "A+",
"floodZoneType": "Non flood zone",
"agencyType": "Agency",
"agencyMobile": "+32485940993",
"agencyIpiNumber": "502531",
"publishedAt": "2026-09-07T14:49:46.936Z",
"viewCount": 571,
"bookmarkCount": 5,
"imageCount": 5,
"scrapedAt": "2026-09-07T14:51:16.203Z",
"error": null
}

โœจ Why choose this Actor

  • Every Immoweb filter, applied by Immoweb. The search URL you paste carries the property type, transaction, location, price, bedrooms, surface and sort order, and Immoweb's own search applies them, so an export costs exactly the rows that match.
  • The full listing, not the card. 97 fields per row, including 58 that only exist on the listing page: EPC and consumption, construction year and condition, bathrooms, garden and terrace with orientation, parking, heating, flood zone, cadastral income, the seller's contact details and the whole photo set.
  • Prices you can sort on. A numeric price in EUR, the label Immoweb shows, the previous price after a drop, the project price range, and pricePerSqm computed on every row with a known living area.
  • The seller is a lead, not a name. Agency or private seller, phone, mobile, email, website and IPI licence number.
  • Real timestamps. Publication and last-modified times as ISO 8601, so a scheduled run can tell a new listing from a refreshed one.
  • Three languages, one schema. English, French and Dutch search and listing URLs are all accepted and return the same columns.
  • Honest about its limits. The comparison below states the 333-page ceiling Immoweb puts on a single search before you spend anything.
  • No nulls. Identical columns on every row, with Not Disclosed and N/A sentinels instead of blanks so CSV and Excel imports stay predictable.
  • No credentials and no start fee. No Immoweb login, no cookie, no token, and you pay per row only.
  • Fast and light. Plain HTTP requests through residential proxies, no browser. Five listings with full details in 8 seconds in the cloud.

๐Ÿ“ˆ How it compares to alternatives

This ActorTypical Immoweb scrapers
Fields per listing97, with energy, building, outdoor, legal, seller contact and photos15 to 40
InputAny search URL in EN, FR or NL, plus listing URLs, mixed in one runSearch URL only, or listing URLs only
Price dataNumber, label, previous price, project range and EUR per mยฒOne price value
SellerAgency or private, phone, mobile, email, website, IPI numberName only, or none
New-build projectsProject name, share sold, bedroom, surface and price rangesTreated as a single listing
Card-only modeYes, 39 fields at one request per 30 listingsRarely
Login or cookie requiredNoNo
Start fee per runNoneSometimes
Listings per search URLUp to 9,990. See the ceiling belowSame ceiling, often unstated

The ceiling, stated plainly. Immoweb serves at most 333 pages of 30 listings for any one search, and its own counter stops at 9,969. The Actor logs the total Immoweb reports for each search so you know your coverage, and it stops cleanly at the last page. To go wider, split the search by postal code, province, property type or price band and pass several URLs in one run.

๐Ÿš€ How to use

  1. Create a free Apify account. New accounts get $5 in free credit. Sign up here.
  2. Open the Actor and go to the Input tab.
  3. Build your search on immoweb.be. Pick for sale or for rent, the property type, the city or postal codes, the price range and the sort order, then copy the URL from your browser.
  4. Paste the URL into the search URLs field. Add more URLs or individual listing pages if you want them in the same run.
  5. Set Max Items to the number of listings you want back across all URLs.
  6. Decide on detail. Leave full details on for the 97-field row, or switch it off for a fast card-only export.
  7. Click Start and watch the log. It reports the total Immoweb found for each search and names every listing as it lands.
  8. Download your data from the Storage tab as CSV, JSON, Excel or XML, or pull it from the API.

Example input:

{
"startUrls": [
{ "url": "https://www.immoweb.be/en/search/apartment/for-sale/brussels/1000?countries=BE&minPrice=200000&maxPrice=400000&minBedroomCount=2&orderBy=newest" },
{ "url": "https://www.immoweb.be/en/classified/apartment/for-sale/berchem/2600/21819341" }
],
"maxItems": 500,
"includeDetails": true
}

๐Ÿ’ผ Business use cases

๐Ÿ“Š Screening a city for investment.

An investor pastes a search for apartments for sale in Antwerp under 300,000 EUR with 500 items. The sheet sorts by pricePerSqm, filters epcScore to C or better and constructionYear after 2000, and keeps the rows with a terrace and indoor parking. The agencyPhone column turns the shortlist into a call list.

๐Ÿ› Comparable sales for a valuation.

An appraiser exports every house for sale in a postal code with full details. netHabitableSurface, landSurface, cadastralIncome, buildingCondition and the coordinates feed a comparables table, and publishedAt shows how long each one has been on the market.

๐Ÿ“ˆ Competitor and price-drop tracking.

An agency schedules the Actor daily over its own markets. Diffing price against the previous run, together with oldPrice and lastModifiedAt, surfaces price drops and new instructions the morning they appear, with the listing agency on the same row.

๐Ÿ— New-build market mapping.

A developer exports all new-build apartment projects in Flanders. projectName, projectSoldPercent, priceMin, priceMax and projectSurfaceRange give a picture of what competing projects charge and how fast they sell.

๐Ÿ”Œ Automating Immoweb Scraper

Schedule the Actor and route the results wherever your team already works.

  • Make and Zapier. Trigger on a finished run and push new listings into a CRM, a Notion database or an Airtable base.
  • Slack. Post listings under a price-per-square-metre threshold into a deals channel.
  • Airbyte. Load the dataset into a warehouse and track asking prices by postal code over time.
  • GitHub. Commit a weekly snapshot to a repository to keep an auditable history of a market.
  • Google Drive. Drop each run's CSV into a shared folder for the rest of the team.
  • Apify Schedules. Run the same search daily or weekly without touching the console.

๐ŸŒŸ Beyond business use cases

๐Ÿ”ฌ Research. Economists and urban planners can study asking prices, energy performance and building age across Belgian municipalities with real listing-level data.

๐Ÿ™‹ Personal. House hunters can export every listing that matches their search, compare price per square metre, EPC and garden size side by side, and spot new listings the day they appear.

๐Ÿค Non-profit. Housing organisations can map rental prices and energy scores by neighbourhood to support affordability and renovation programmes.

๐Ÿงช Experimentation. Prices, surfaces, coordinates, energy scores and construction years make a tidy dataset for hedonic pricing models, geospatial analysis and clustering experiments.

๐Ÿค– Ask an AI assistant about this scraper

The Actor exposes its input schema through Apify's MCP server, so an AI assistant connected to your Apify account can configure and run it for you. Ask it "get me every house for sale in Ghent under 400,000 EUR with an EPC of B or better" and it will build the search URL, set the item count and filter the rows itself.

โ“ Frequently Asked Questions

๐Ÿ”‘ Do I need an Immoweb account, cookie or API key?

No. The Actor reads the data Immoweb publishes to any visitor of its search and listing pages. There is no login and no token to manage.

๐Ÿ”— Which URLs does it accept?

Any Immoweb search results URL, in English, French or Dutch, with any filters applied, and any Immoweb listing page. You can mix both in one run. Copy URLs from your browser rather than typing them: an unrecognised path segment makes Immoweb fall back to its default search.

๐Ÿ” How does the search work?

The Actor calls the same search endpoint that Immoweb's own results page loads, 30 listings per page, with your filters passed through untouched, and then opens each listing page for the full record.

๐Ÿ“ How many listings can one search return?

Immoweb serves at most 333 pages of 30 listings per search, about 9,990, and its counter stops at 9,969. The log states the total for each search. Split a large search by postal code, province, type or price band and pass several URLs to cover more.

๐Ÿ’ถ How is the price reported?

price is the number in EUR, priceDisplay is the label Immoweb shows including any rental charges, oldPrice holds the previous price after a change, and pricePerSqm is price divided by netHabitableSurface. New-build projects report priceMin and priceMax instead of a single price.

๐Ÿ— How are new-build projects handled?

A project row carries the project name, the share of units sold, the bedroom and surface ranges and the price range. Unit-level fields such as bathrooms or terrace are Not Disclosed on a project row because Immoweb publishes them per unit, not per project.

๐Ÿ“ž Does it return the agency's contact details?

Yes. agencyName, agencyType, agencyPhone, agencyMobile, agencyEmail, agencyWebsite and agencyIpiNumber come from the listing page whenever the seller publishes them. Private sellers show Private seller and usually no phone.

โšก How fast is it?

Five listings with full details finished in 8 seconds in the cloud. Search pages bring 30 listings per request, and listing pages are fetched five at a time.

๐Ÿˆณ Why do I see Not Disclosed or N/A instead of empty cells?

Because a blank cell is ambiguous. Not Disclosed means the seller did not publish that value for that listing, and N/A means the field does not apply, such as petsAllowed on a sale or projectName on a single apartment.

๐Ÿ›ก Do I need a proxy?

Yes, and it is on by default. Immoweb blocks datacenter IP ranges, so the Actor uses Apify residential proxies. Leave the proxy setting as it is.

๐ŸŒ Which language will the data be in?

Field values such as propertyType and epcScore are language-independent. title follows the language of the URL you paste, and description is whatever the seller wrote, with Immoweb's own note when no translation exists.

๐Ÿ”„ Can I run it on a schedule?

Yes. Save your input as a task, schedule it in Apify, and diff price, lastModifiedAt and the set of id values between runs to track new listings and price drops.

๐Ÿ”Œ Integrate with any app

Every run's dataset is available through the Apify API, so you can pull results into any language or platform that speaks HTTP. Apify also ships official clients for JavaScript and Python, plus native integrations for Make, Zapier, Airbyte, Slack, GitHub and Google Drive.

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: This is an independent tool, not affiliated with or endorsed by Immoweb. It collects only publicly available data.