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.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
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 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
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). |
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.