Funda.nl Scraper - Netherlands Real Estate Listings Extractor
Pricing
from $3.50 / 1,000 results
Funda.nl Scraper - Netherlands Real Estate Listings Extractor
Scrape property listings from Funda.nl: price, m², rooms, energy label, address, broker, photos & more. Search by city or paste URLs. Export to JSON, CSV & Excel.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Funda.nl Scraper – Extract Netherlands Real Estate Listings
Funda.nl Scraper turns the Netherlands' #1 property portal into clean, structured data. Scrape thousands of Dutch real estate listings — homes and apartments for sale (koop) or for rent (huur) — with price, living area (m²), number of rooms, energy label, year built, address, photos and more. No login, no API key, no coding required. Export to JSON, CSV, Excel, HTML or XML in seconds.
Whether you're a real estate investor hunting for deals, an agent or appraiser benchmarking the market, a proptech / property portal that needs a fresh listings feed, or a data analyst studying Dutch housing trends — this Funda scraper gives you the data Funda.nl publishes, in a spreadsheet-ready format.
⚡ TL;DR – Type a city (e.g.
amsterdam), press Start, and download a spreadsheet of Funda property listings with prices, surfaces, rooms, energy labels and photos.
🔑 Why use this Funda.nl Scraper?
Funda.nl is the real estate marketplace in the Netherlands — almost every home for sale or rent passes through it. That makes it the single best source of Dutch property data. But Funda has no public API, and copying listings by hand is impossible at scale.
This scraper solves that:
- ✅ No login, no API key – works out of the box.
- ✅ Three ways to scrape – by city/area, by pasting a Funda search URL (with your own filters), or by individual listing URLs.
- ✅ Rich, structured data – price, living area, plot size, rooms, bedrooms, energy label, year built, property type, address, postcode, province, photos and description.
- ✅ Sale & rent – scrape koop (for sale) and huur (for rent).
- ✅ Automatic pagination – collect far more than the first page.
- ✅ Fast & cheap – uses Funda's own server-rendered data (JSON-LD + Nuxt), not a heavy headless browser.
- ✅ Export anywhere – JSON, CSV, Excel, HTML, XML, or pull straight from the Apify API.
- ✅ Automation-ready – schedule runs and connect to Google Sheets, Slack, Zapier, Make, or use it as an AI agent tool.
🧩 What can you do with Funda data?
Real estate investing & deal sourcing
Find undervalued properties, track price per m² by neighbourhood, and spot new listings the moment they appear. Filter by price, surface, energy label, and build year to surface exactly the deals you want.
Market research & price analytics
Build datasets of asking prices, surfaces and energy labels across cities and provinces. Track market movements, average price/m², and supply over time for any Dutch city.
Real estate agents & appraisers
Benchmark comparable listings (comps) instantly, monitor competitor inventory, and value properties with real, current market data.
Proptech, portals & lead generation
Power your own property website, newsletter, or valuation model with a continuously refreshed Funda feed — complete with photos, descriptions and locations.
Mortgage, insurance & relocation services
Enrich your product with up-to-date property attributes (surface, energy label, year built) for any Dutch address you target.
Academic & data science research
Collect structured housing datasets for studies on affordability, energy efficiency, urban density and price formation.
📦 What data does the Funda Scraper extract?
For every listing, you get:
| Field | Description |
|---|---|
url | Direct link to the Funda listing |
listingType | koop (for sale) or huur (for rent) |
address | Street + house number |
postalCode | Dutch postcode (e.g. 1011EW) |
city | City / place |
province | Province (e.g. Noord-Holland) |
price | Asking price (sale) or monthly rent (rent), in EUR |
priceCurrency | Currency (EUR) |
priceType | asking_price or rent_per_month |
livingArea | Living area in m² |
plotArea | Plot / land area in m² (houses) |
rooms | Total number of rooms |
bedrooms | Number of bedrooms |
energyLabel | Energy label (A, B, C, …) |
energyEfficient | Whether the home is flagged energy-efficient |
yearBuilt | Construction year |
propertyType | Appartement, Huis, etc. |
buildType | New build / existing build |
leasehold | Ownership type (eigendom / erfpacht) |
status | Availability (e.g. beschikbaar = available) |
neighbourhood | Neighbourhood |
municipality | Municipality |
garden | Has a garden (true/false) |
balcony | Has a balcony (true/false) |
roofTerrace | Has a roof terrace (true/false) |
solarPanels | Has solar panels (true/false) |
heatPump | Has a heat pump (true/false) |
privateParking | Private parking on own land (true/false) |
nationalMonument | Listed national monument (true/false) |
brokerId | Funda broker (makelaar) ID running the listing |
description | Listing description |
photo | Main photo URL (high resolution) |
photos | All photo URLs |
photoCount | Number of photos |
scrapedAt | ISO timestamp of extraction |
🚀 How to use the Funda Scraper (step by step)
No technical knowledge required:
- Open the Actor in the Apify Console.
- Choose how to scrape:
- By city/area – set the listing type (sale/rent) and add one or more areas (e.g.
amsterdam,rotterdam). - By search URL – build any filter on funda.nl and paste the result URL.
- By listing URL – paste individual property links.
- By city/area – set the listing type (sale/rent) and add one or more areas (e.g.
- (Optional) Set a Max items limit to control cost.
- Click Start ▶️.
- Download your data from the Storage / Dataset tab as JSON, CSV, Excel, HTML or XML.
⚙️ Input examples
Example 1 – Homes for sale in Amsterdam
{"listingType": "koop","areas": ["amsterdam"],"maxItems": 200}
Example 2 – Rentals in multiple cities, newest first
{"listingType": "huur","areas": ["rotterdam", "den-haag", "utrecht"],"sortBy": "date_down","maxItems": 300}
Example 3 – Use a Funda search URL with your own filters
Build a filtered search on funda.nl (price, surface, energy label…) and paste the URL:
{"searchUrls": [{ "url": "https://www.funda.nl/zoeken/koop?selected_area=[\"amsterdam\"]&price=\"250000-500000\"" }],"maxItems": 150}
Example 4 – Scrape specific listings
{"startUrls": [{ "url": "https://www.funda.nl/detail/koop/amsterdam/appartement-koningsstraat-42/44468743/" }]}
📤 Output example
Each listing is saved as one dataset record:
{"url": "https://www.funda.nl/detail/koop/amsterdam/appartement-koningsstraat-42/44468743/","listingType": "koop","address": "Koningsstraat 42","postalCode": "1011EW","city": "Amsterdam","province": "Noord-Holland","price": 600000,"priceCurrency": "EUR","priceType": "asking_price","livingArea": 107,"plotArea": null,"rooms": 2,"bedrooms": null,"energyLabel": "A","yearBuilt": 1983,"propertyType": "Appartement","buildType": "bestaandebouw","leasehold": "erfpacht","brokerId": "24607","description": "Appartement te koop: Koningsstraat 42 1011 EW Amsterdam","photo": "https://cloud.funda.nl/valentina_media/229/292/344_1440x960.jpg","photos": ["https://cloud.funda.nl/valentina_media/229/292/344_1440x960.jpg"],"photoCount": 6,"scrapedAt": "2026-05-22T11:59:13.476Z"}
📝 Input parameters reference
| Parameter | Type | Default | Description |
|---|---|---|---|
listingType | string | koop | koop (for sale) or huur (for rent). |
areas | array of strings | – | Funda area slugs to search (e.g. amsterdam, amsterdam/centrum). |
sortBy | string | relevancy | relevancy, date_down (newest), price_up, price_down. |
searchUrls | array of URLs | – | Full Funda search-result URLs with your own filters. |
startUrls | array of URLs | – | Direct Funda listing URLs to scrape at full detail. |
maxItems | integer | 0 (no limit) | Max number of listings to scrape. Use it to control cost. |
maxConcurrency | integer | 5 | Max pages scraped in parallel (keep polite). |
maxRequestRetries | integer | 3 | Retries per failed request. |
proxyConfiguration | object | Apify Proxy on | Proxy settings (residential recommended for large runs). |
🌍 Finding area slugs
Funda area slugs are simple. Search on funda.nl for a city or neighbourhood and copy the area name from the URL:
amsterdam→ all of Amsterdamrotterdam,den-haag,utrecht,eindhoven,groningen→ other major citiesamsterdam/centrum,amsterdam/zuid→ specific neighbourhoods- You can add several areas at once; each is searched separately.
For complex filters (price ranges, surface, number of rooms, energy label, garden, etc.), build the search on funda.nl and paste the full URL into Funda search URLs — every filter is respected.
Popular areas to scrape
| Region | Example slugs |
|---|---|
| Randstad (major cities) | amsterdam, rotterdam, den-haag, utrecht |
| Tech & student hubs | eindhoven, delft, groningen, wageningen |
| Coastal & expat-popular | haarlem, the-hague, amstelveen, zandvoort |
| Neighbourhood-level | amsterdam/centrum, amsterdam/zuid, rotterdam/kralingen |
Add as many areas as you like — each one is searched separately, then merged into a single dataset.
🔄 Keeping your data fresh
Property markets move fast — listings appear and disappear daily. To keep an always-current dataset:
- Schedule the Actor to run daily or hourly from the Apify Console.
- Sort by
date_downso the newest listings are collected first. - Connect a webhook or Google Sheets / Slack integration to be alerted on new results.
- De-duplicate downstream by the
urlfield (each listing has a unique URL).
This turns the scraper into a live feed for deal alerts, price-tracking dashboards, or a property portal.
💡 Tips & best practices
- Use
maxItemsto control cost. Start with 50–100 to preview the data, then scale up. - Search URLs are the most powerful option — any filter you can set on funda.nl works.
- Combine multiple cities by adding several entries to
areas. - Sort by
date_downto catch the newest listings first — ideal for deal alerts. - Schedule the Actor (e.g. daily) to maintain an always-fresh listings feed or price-tracking dataset.
- Enable residential proxies for very large runs to avoid rate limits.
- For rentals, set
listingTypetohuur;pricethen represents the monthly rent.
🌐 Proxy & reliability
Funda.nl is server-rendered and works from most connections, so this Actor uses a fast HTTP + Cheerio crawler (no headless browser). For large runs, enable Apify Proxy (residential recommended) to avoid rate limits — it's on by default. The scraper includes automatic retries so transient errors don't break your run, and respects your Max concurrency setting to stay polite to Funda.
🔌 Integrations & automation
- Apify API – trigger runs and pull data programmatically.
- Webhooks – get notified when a run finishes.
- Zapier, Make (Integromat), n8n – push results into thousands of apps.
- Google Sheets, Slack, Airtable – send listings where your team works.
- MCP / AI agents – use this Actor as a tool for LLM-powered agents.
- Scheduler – run automatically on a daily, weekly or custom schedule.
👩💻 Using the Funda Scraper via API
Call this Actor from any language using the Apify API. Python example:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run_input = {"listingType": "koop","areas": ["amsterdam"],"maxItems": 100,}run = client.actor("YOUR_USERNAME/funda-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["address"], "-", item.get("price"), "EUR", "-", item.get("livingArea"), "m²")
JavaScript / Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const input = { listingType: 'koop', areas: ['rotterdam'], maxItems: 100 };const run = await client.actor('YOUR_USERNAME/funda-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
❓ Frequently asked questions
Do I need a Funda account or API key?
No. This scraper uses only publicly available data on funda.nl. No login, cookies or API key required.
Can I scrape both rentals and properties for sale?
Yes. Set listingType to koop for sale or huur for rent. For rentals, the price field is the monthly rent.
How many listings can I scrape?
The scraper paginates automatically across search-result pages. Use maxItems to cap the total and control cost. A single area can return hundreds of listings.
Can I apply filters like price or number of rooms?
Yes — build the filtered search on funda.nl and paste the URL into Funda search URLs. All filters (price, surface, rooms, energy label, garden, etc.) are respected.
Why are some fields empty?
Not every listing publishes every field on Funda (e.g. an apartment has no plot area; bedrooms aren't always listed). Empty fields simply mean the data isn't published.
In what formats can I download the data?
JSON, CSV, Microsoft Excel (XLSX), HTML table, and XML — plus direct API access and dataset views.
How fresh is the data?
The scraper fetches live data from Funda.nl on every run, so results always reflect the current state of the site. Schedule it to keep your dataset up to date.
⚖️ Is it legal to scrape Funda.nl?
This Actor collects only publicly available information that anyone can view on funda.nl without logging in. Scraping public data is generally legal, but how you use it is your responsibility:
- Do not use the data to violate GDPR or other privacy laws.
- Do not republish copyrighted content (e.g. listing photos/descriptions) in ways that infringe rights.
- Respect Funda's Terms of Service and applicable regulations.
- Use the data for legitimate purposes such as research, analytics and aggregated market insight.
If unsure about your specific use case, consult a legal professional.
🛟 Support & feedback
Found a bug, missing a field, or need a new feature? Open an issue on the Actor's Issues tab — feedback is welcome and helps improve the scraper. If a listing fails to scrape, please include the exact URL.
🏷️ Keywords
Funda scraper, Funda.nl scraper, scrape Funda, Netherlands real estate scraper, Dutch property data, real estate listings scraper, property data extraction, makelaar data, koop, huur, housing data Netherlands, real estate API alternative, property price scraper, real estate lead generation, proptech data, Amsterdam Rotterdam property data, JSON CSV Excel export.
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Funda or its parent companies. "Funda" is a trademark of its respective owner.