Funda.nl Scraper - Netherlands Real Estate Listings Extractor avatar

Funda.nl Scraper - Netherlands Real Estate Listings Extractor

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Funda.nl Scraper - Netherlands Real Estate Listings Extractor

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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:

FieldDescription
urlDirect link to the Funda listing
listingTypekoop (for sale) or huur (for rent)
addressStreet + house number
postalCodeDutch postcode (e.g. 1011EW)
cityCity / place
provinceProvince (e.g. Noord-Holland)
priceAsking price (sale) or monthly rent (rent), in EUR
priceCurrencyCurrency (EUR)
priceTypeasking_price or rent_per_month
livingAreaLiving area in m²
plotAreaPlot / land area in m² (houses)
roomsTotal number of rooms
bedroomsNumber of bedrooms
energyLabelEnergy label (A, B, C, …)
energyEfficientWhether the home is flagged energy-efficient
yearBuiltConstruction year
propertyTypeAppartement, Huis, etc.
buildTypeNew build / existing build
leaseholdOwnership type (eigendom / erfpacht)
statusAvailability (e.g. beschikbaar = available)
neighbourhoodNeighbourhood
municipalityMunicipality
gardenHas a garden (true/false)
balconyHas a balcony (true/false)
roofTerraceHas a roof terrace (true/false)
solarPanelsHas solar panels (true/false)
heatPumpHas a heat pump (true/false)
privateParkingPrivate parking on own land (true/false)
nationalMonumentListed national monument (true/false)
brokerIdFunda broker (makelaar) ID running the listing
descriptionListing description
photoMain photo URL (high resolution)
photosAll photo URLs
photoCountNumber of photos
scrapedAtISO timestamp of extraction

🚀 How to use the Funda Scraper (step by step)

No technical knowledge required:

  1. Open the Actor in the Apify Console.
  2. 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.
  3. (Optional) Set a Max items limit to control cost.
  4. Click Start ▶️.
  5. 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

ParameterTypeDefaultDescription
listingTypestringkoopkoop (for sale) or huur (for rent).
areasarray of stringsFunda area slugs to search (e.g. amsterdam, amsterdam/centrum).
sortBystringrelevancyrelevancy, date_down (newest), price_up, price_down.
searchUrlsarray of URLsFull Funda search-result URLs with your own filters.
startUrlsarray of URLsDirect Funda listing URLs to scrape at full detail.
maxItemsinteger0 (no limit)Max number of listings to scrape. Use it to control cost.
maxConcurrencyinteger5Max pages scraped in parallel (keep polite).
maxRequestRetriesinteger3Retries per failed request.
proxyConfigurationobjectApify Proxy onProxy 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 Amsterdam
  • rotterdam, den-haag, utrecht, eindhoven, groningen → other major cities
  • amsterdam/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.

RegionExample slugs
Randstad (major cities)amsterdam, rotterdam, den-haag, utrecht
Tech & student hubseindhoven, delft, groningen, wageningen
Coastal & expat-popularhaarlem, the-hague, amstelveen, zandvoort
Neighbourhood-levelamsterdam/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:

  1. Schedule the Actor to run daily or hourly from the Apify Console.
  2. Sort by date_down so the newest listings are collected first.
  3. Connect a webhook or Google Sheets / Slack integration to be alerted on new results.
  4. De-duplicate downstream by the url field (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 maxItems to 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_down to 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 listingType to huur; price then 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 ApifyClient
client = 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.


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.