Immoweb.be Real Estate Scraper
Pricing
Pay per usage
Immoweb.be Real Estate Scraper
Scrape live property listings from Belgium's largest real estate platform. Extract prices, bedrooms, bathrooms, location data, descriptions & contact details. Ideal for market analysis, price intelligence, property investment research & real estate portals. Structured, production-ready data.
Pricing
Pay per usage
Rating
5.0
(2)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
What does Immoweb.be Real Estate Scraper do?
Immoweb.be Real Estate Scraper collects public property listings from Immoweb.be, one of Belgium's largest real estate platforms. It returns structured records with listing URLs, prices, property types, bedrooms, rooms, surface areas, locations, coordinates, agency information, publication data, and available images.
The easiest option is to paste an Immoweb search URL into startUrl. You can also create a search from property type and transaction type, then narrow the results with an optional keyword or Belgian postal code. The dataset is suitable for Belgian property market research, investment analysis, price monitoring, agency research, lead generation, and real estate data pipelines.
Why use Immoweb.be Real Estate Scraper?
- Collect structured Belgian property data - Save listing information in consistent JSON records instead of copying data manually from search pages.
- Use your own Immoweb filters - Paste a search URL that already contains the property type, transaction type, area, price, sorting, and other filters supported by Immoweb.
- Cover sale and rental listings - Search houses, apartments, garages, land, offices, commercial properties, and combined house-and-apartment results.
- Support market analysis - Compare prices, surfaces, bedrooms, localities, provinces, and transaction types across Belgian searches.
- Track listing changes - Use listing IDs, detail URLs, publication metadata, and source URLs in recurring monitoring workflows.
- Export and automate results - Download datasets as JSON, CSV, Excel, or XML, or connect runs to webhooks, Google Sheets, Make, Zapier, and the Apify API.
What data can you extract from Immoweb.be?
Each saved item contains the values available for that listing. Empty values are omitted so exports remain easier to use.
| Field | Type | Description |
|---|---|---|
id | Integer | Immoweb listing identifier |
url | String | Direct Immoweb classified URL |
title | String | Listing title |
property_type | String | Main property category |
property_subtype | String | Property subtype |
transaction_type | String | Sale or rental transaction type |
price | Integer | Numeric sale or rental price when available |
price_display | String | Formatted price shown for the listing |
price_short | String | Short formatted price |
old_price | Integer | Previous price when published |
price_per_sqm | Number | Sale price per square metre when available |
bedroom_count | Integer | Number of bedrooms |
room_count | Integer | Number of rooms |
living_area_sqm | Number | Net habitable surface in square metres |
land_surface_sqm | Number | Land surface in square metres |
locality | String | City or locality |
postal_code | String | Belgian postal code |
street | String | Street name when available |
province | String | Belgian province |
region | String | Belgian region |
latitude / longitude | Number | Listing coordinates when available |
agency_name | String | Agency or advertiser name |
agency_logo_url | String | Agency logo URL |
picture_count | Integer | Number of pictures returned for the listing |
image_url | String | Main image URL |
image_urls | Array | Available image URLs |
last_modification_date | String | Last listing modification date |
has_360_tour | Boolean | Whether a 360-degree tour is available |
has_virtual_tour | Boolean | Whether a virtual tour is available |
has_video | Boolean | Whether a video is available |
source_page | Integer | Search result page used for the record |
source_url | String | Search URL used for extraction |
search_total_results | Integer | Total results reported by the search |
How to use Immoweb.be Real Estate Scraper
- Open the Actor in Apify Console.
- Choose one search mode for the run:
- Paste a full Immoweb search page into
startUrl. - Or leave
startUrlempty and usepropertyType,transactionType, and optionalkeywordorlocationfilters.
- Paste a full Immoweb search page into
- Set
results_wantedandmax_pagesfor the size of the collection. - Start the run and review the dataset preview.
- Download the results or connect the dataset to your next workflow.
A supplied startUrl has priority over generated search inputs. When a URL is provided, keyword and location are not combined with it. For predictable results, use the URL by itself. Keyword and location filters are intended for generated searches without a URL.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | SEO sample Immoweb URL | Full Immoweb search URL. It has priority over generated search inputs. |
keyword | String | No | None | Optional text filter matched against listing title, property type, locality, province, region, and agency name. Used when no URL is supplied. |
location | String | No | None | Optional Belgian postal code or text location. Four-digit postal codes are sent as location filters; text locations are matched against returned listings. Used when no URL is supplied. |
propertyType | String | No | apartment | Property category used when no URL is supplied. Supported values include house-and-apartment, house, apartment, garage, land, office, and commercial. |
transactionType | String | No | for-sale | Transaction mode used when no URL is supplied: for-sale or for-rent. |
results_wanted | Integer | No | 20 | Maximum number of listings to save. |
max_pages | Integer | No | 5 | Maximum number of result pages to process per search URL. |
Usage Examples
Scrape an Immoweb Search URL
Use a URL copied from an Immoweb search page when you need the site's complete search configuration.
{"startUrl": "https://www.immoweb.be/en/search/house-and-apartment/for-sale?countries=BE&page=1&orderBy=relevance","results_wanted": 20,"max_pages": 3}
Search Apartments by Belgian Postal Code
Generate an apartment sale search for postal code 1000 without combining it with a URL.
{"propertyType": "apartment","transactionType": "for-sale","location": "1000","results_wanted": 50,"max_pages": 5}
Search Rental Apartments with Keyword and City
Use a generated rental search and keep returned listings that match both the keyword and text location filters.
{"propertyType": "apartment","transactionType": "for-rent","keyword": "apartment","location": "Brussels","results_wanted": 50,"max_pages": 8}
Sample Output
The following is an example of one dataset item. Individual records can contain fewer fields when Immoweb does not publish a value.
{"id": 21710726,"url": "https://www.immoweb.be/en/classified/house/for-sale/dilbeek/1700/21710726","title": "Beautiful 4-bedroom single-family home with a garden","property_type": "HOUSE","property_subtype": "HOUSE","transaction_type": "FOR_SALE","price": 385000,"price_display": "€385,000","bedroom_count": 4,"room_count": 11,"living_area_sqm": 160,"land_surface_sqm": 25,"locality": "Dilbeek","postal_code": "1700","province": "Flemish Brabant","region": "Flanders","latitude": 50.8396065,"longitude": 4.2697952,"agency_name": "Prestige Consultor Immobilier","picture_count": 4,"image_url": "https://media-resize.immoweb.be/classifieds/large/21710726.jpg","image_urls": ["https://media-resize.immoweb.be/classifieds/large/21710726.jpg"],"source_page": 1,"source_url": "https://www.immoweb.be/en/search-results/house-and-apartment/for-sale?countries=BE&page=1&orderBy=relevance","search_total_results": 12450}
Tips for Best Results
- Start with a working URL - Open the desired Immoweb search in a browser, apply the filters you need, and copy the resulting URL into
startUrl. - Use one search mode per run - Do not add keyword or location values to a URL-based run. Use those fields with
propertyTypeandtransactionTypewhen generating a search. - Use postal codes for precision - A four-digit Belgian postal code is more precise than a broad city or province name.
- Increase
max_pagesfor narrow filters - Text keyword and location matching may need more pages before enough matching listings are found. - Start with 20 results - Use a small result limit to verify the dataset before scheduling larger runs.
- Use reasonable limits for repeated runs - Increase
results_wantedandmax_pagesgradually after checking a smaller dataset. - Expect source-dependent gaps - Not every property publishes all price, address, media, agency, or publication fields.
- Check the dataset preview - Confirm that the selected search URL or filters produce the type of listings you expect before exporting.
Integrations and Export Formats
- Google Sheets - Review listing prices, locations, and property characteristics in a shared spreadsheet.
- Airtable - Build a searchable property inventory or lead database.
- Webhooks - Send completed run data to another service.
- Make and Zapier - Trigger alerts, reports, and downstream workflows.
- Apify API - Start runs, monitor them, and retrieve datasets programmatically.
Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats. JSON is useful for applications and data pipelines, while CSV and Excel work well for market analysis and reporting.
Frequently Asked Questions
Can I use my own Immoweb search URL?
Yes. Put the full search page in startUrl. The Actor normalizes supported Immoweb search URLs and uses the URL as the source search. URL-based runs do not mix in keyword or location values.
Can I search for rental properties?
Yes. Set transactionType to for-rent for a generated rental search, or provide an Immoweb rental search URL in startUrl.
Can I filter by a Belgian city or postal code?
Yes. Use a four-digit postal code such as 1000 for precise location filtering. Text values such as Brussels are matched against the location information returned for listings.
Can I use keyword and location together?
Yes, when generating a search without startUrl. For example, keyword: "apartment" and location: "Brussels" can be used with propertyType and transactionType. If startUrl is supplied, the URL takes priority and those filters are ignored.
Why are some fields missing from a listing?
Some Immoweb listings do not publish every field. The Actor removes empty values from each record, so a missing field normally means that the source listing did not provide it.
How many listings can I collect?
The Actor collects up to results_wanted records and stops when it reaches the configured max_pages limit or the available search results. Start with 20 records, then increase the limits after checking the output.
Can I schedule recurring property monitoring?
Yes. Use an Apify schedule to run the Actor daily, weekly, or at another interval. Save the same URL and limits when you want to compare repeated snapshots of a market.
Is it legal to collect Immoweb.be data?
Public data collection can be subject to website terms, copyright, privacy, and other laws. You are responsible for using this Actor lawfully, respecting Immoweb.be's terms and access rules, and handling collected data responsibly.
Related Actors
- OneRoof.co.nz Property Scraper - Collect structured property listings from New Zealand's OneRoof.co.nz for market research and investment analysis.
- Domain.com.au Property Scraper - Collect Australian property listings from Domain.com.au with prices, locations, property details, agency data, and images.
Support
For issues, feature requests, or input questions, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is intended for legitimate collection of publicly available property data. Users are responsible for complying with Immoweb.be terms of service, applicable laws, privacy requirements, and any restrictions on data use or redistribution.