Skip to content

logiover/funda-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Funda.nl Scraper — Netherlands Real Estate Data, Prices & Makelaar Leads (No API)

Apify Actor No API key Pay per result Real Estate Export

Turn any Funda.nl search into a clean dataset — asking price (EUR), m², rooms, energy label and the makelaar (estate agent) behind every property. No API key, no login.

Turn any Funda.nl search into a clean dataset. Funda is the #1 real-estate portal in the Netherlands — virtually every house and apartment for sale (koop) or rent (huur) is listed there. This Funda scraper reads the site's own structured listing data and returns asking price (EUR), full address, city & postcode, living area, plot & volume in m²/m³, rooms, bedrooms, bathrooms, build year, energy label and — crucially — the makelaar (estate agent) behind every property. It paginates the entire result set of any search — fast, no browser hassle, no API key, no login, thousands of listings per run.

It's two tools in one: a Dutch property dataset for market analytics, price tracking, comps, dashboards and ML — and a Netherlands real-estate lead engine, because every listing carries the makelaar name, broker ID, broker association and agency page URL, so a single run becomes a targeted agent outreach list.

📄 This repository is documentation only — no Actor source code. The Actor runs on the Apify platform — open it here.


📚 Table of contents

🏆 Why this Funda scraper?

  • 29 fields per listing — full pricing, size, layout, energy, location and makelaar-lead fields in one flat row.
  • Buy & rent — houses (huis) and apartments (appartement), for sale (koop) or rent (huur), across all of the Netherlands.
  • Browse or URL-driven — pick a city + koop/huur from dropdowns, or paste Funda search URLs and every filter encoded in them (area, price, property type) is respected.
  • Full pricing — asking price in EUR, the raw price text (e.g. € 695.000 kosten koper) and currency, ready for price-per-m² analysis.
  • Size & layout — living area, plot area and volume in m²/m³, plus rooms, bedrooms and bathrooms.
  • Energy & build data — energy label (A–G), build year, availability status and acceptance (aanvaarding).
  • Makelaar lead data — estate-agent name, broker ID, broker association (nvm / vbo / vastgoedpro) and the agency's Funda page URL for every listing.
  • Residential-proxy ready — Apify residential proxy is the default for the highest success rate on Funda.
  • No API key, no login — only an Apify account is needed.
  • Export to JSON / CSV / Excel and the full Apify REST API.

📦 What you get / output fields

One clean row per listing. A ready-made Listings Overview table view (address, price, m², rooms, energy label, makelaar) ships in the Output tab.

Field Description
id Funda listing ID
url Full listing detail URL
listingType koop (buy) or huur (rent)
title Listing title
address Street address
city City
region Province / region
postcode Postcode
price Asking price (EUR)
priceCurrency Currency
priceRaw Raw price text (e.g. € 695.000 kosten koper)
propertyType Property type (e.g. Eengezinswoning, appartement)
livingArea Living area in m²
plotArea Plot area in m²
volume Volume in m³
rooms Number of rooms
bedrooms Number of bedrooms
bathrooms Number of bathrooms
buildYear Year built
energyLabel Energy label (A–G)
status Availability status (e.g. Beschikbaar)
acceptance Acceptance / aanvaarding
makelaar Estate agent name
brokerId Funda broker (estate agency) numeric ID
brokerAssociation Agency association (nvm / vbo / vastgoedpro)
makelaarUrl Link to the agency's Funda page
image Main image URL
imagesCount Number of images
scrapedAt Scrape timestamp (ISO 8601)

💡 Use cases

  • Estate-agent lead gen — build outreach lists of Dutch makelaars by area, price band or property type, deduplicated on brokerId.
  • Market & price analytics — track price-per-m², inventory and koop-vs-huur across Dutch cities and provinces.
  • Investor & developer research — map supply, build year and energy labels per neighbourhood.
  • Comps & valuation / AVM — feed living area, plot, rooms and price into Dutch pricing models.
  • Portals & aggregators — power a property feed or dashboard from a scheduled run.
  • Energy-transition analysis — segment inventory by energy label to study retrofit demand and pricing.

🚀 Quick start (4 ways)

1. Apify Console (no code)

  1. Open the Actor: apify.com/logiover/funda-scraper.
  2. Click Try for free.
  3. Pick an area (e.g. amsterdam) and dealType (koop / huur) from the dropdowns — or paste your own Funda search URL into searchUrls — then click Start.
  4. Open the Output tab — one row per listing, ready to export.

2. Apify CLI

npm install -g apify-cli
apify login
apify call logiover/funda-scraper --input '{
  "searchUrls": ["https://www.funda.nl/zoeken/koop?selected_area=%5B%22amsterdam%22%5D"],
  "maxResults": 500
}'

3. API / cURL (run-sync, get dataset items)

curl -X POST \
  "https://api.apify.com/v2/acts/logiover~funda-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "area": "rotterdam",
    "dealType": "koop",
    "maxResults": 500
  }'

4. apify-client (JavaScript & Python)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('logiover/funda-scraper').call({
  searchUrls: ['https://www.funda.nl/zoeken/huur?selected_area=%5B%22utrecht%22%5D'],
  listingType: 'huur',
  maxResults: 800,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.dir(items, { depth: null });
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("logiover/funda-scraper").call(run_input={
    "area": "amsterdam",
    "dealType": "koop",
    "maxResults": 500,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["address"], item.get("price"), item.get("makelaar"))

More detailed, copy-pasteable snippets live in examples/: CLI · API / cURL · JavaScript · Python.

📥 Input reference

Pick a city from the area dropdown with dealType (koop / huur), or paste one or more Funda search URLs into searchUrls for full control over price and feature filters. Everything else is optional.

Field Type Description
area string (dropdown) Dutch city / area to browse when no search URL is given — Amsterdam, Rotterdam, Den Haag, Utrecht, Eindhoven and 40+ more. Leave empty for Amsterdam.
dealType string (dropdown) koop (for sale) or huur (for rent) — used with the area dropdown when no search URL is given.
searchUrls array (Advanced) Funda.nl search URLs copied from the site (e.g. .../zoeken/koop?... for buy, .../zoeken/huur?... for rent). All filters — area, price, property type, buy/rent — are read from the URL. Add as many as you like.
listingType string (dropdown) Optionally restrict to koop (buy) or huur (rent). any keeps whatever the search returns.
maxResults integer Global cap on listings across all searches. 0 = no limit (a single search can span hundreds of pages). Default 200.
maxResultsPerSearch integer Per-search-URL cap. 0 = no per-search cap.
useProxy boolean Route requests through Apify Proxy. Residential is strongly recommended for Funda and is the default.
proxyConfiguration object Apify Proxy settings — residential gives the highest success rate on Funda.
maxConcurrency integer How many search URLs to process in parallel (1–10). Default 3.

How to get a Funda search URL: open funda.nl, apply the filters you want (city/area, price range, property type, koop or huur), then copy the resulting URL from your browser's address bar and paste it into searchUrls. Every filter encoded in the URL is honored, and the Actor paginates the whole result set.

📤 Output reference

One clean row per listing — 29 fields. Trimmed sample record:

{
  "id": "44488041",
  "url": "https://www.funda.nl/detail/koop/amsterdam/huis-ortler-91/44488041/",
  "listingType": "koop",
  "title": "Ortler 91",
  "address": "Ortler 91",
  "city": "Amsterdam",
  "region": "Noord-Holland",
  "postcode": "1060 NL",
  "price": 695000,
  "priceCurrency": "EUR",
  "priceRaw": "€ 695.000 kosten koper",
  "propertyType": "Eengezinswoning, tussenwoning",
  "livingArea": 145,
  "plotArea": 117,
  "volume": 462,
  "rooms": 5,
  "bedrooms": 4,
  "bathrooms": 2,
  "buildYear": 1995,
  "energyLabel": "A",
  "status": "Beschikbaar",
  "acceptance": "In overleg",
  "makelaar": "Nieuw West Makelaardij",
  "brokerId": "61885",
  "brokerAssociation": "nvm",
  "makelaarUrl": "https://www.funda.nl/makelaars/amsterdam/61885-nieuw-west-makelaardij/",
  "image": "https://cloud.funda.nl/valentina_media/230/121/950_1440x960.jpg",
  "imagesCount": 6,
  "scrapedAt": "2026-07-06T15:31:24.950Z"
}

🔌 Integrations & automation

  • Schedules — put the Actor on a schedule to get a fresh Funda listings feed every morning.
  • Webhooks — trigger downstream systems on run completion via Apify webhooks.
  • Google Sheets / S3 / database / BI tools — push listings to your stack through Apify's integrations.
  • Zapier / Make / n8n / Pipedream — track new listings and price drops across the Dutch market on autopilot.
  • REST API — read results live from the dataset API.

📦 Export formats

Every run writes to an Apify dataset that exports in one click to:

  • JSON
  • JSONL (newline-delimited)
  • CSV
  • Excel (XLSX)
  • XML
  • HTML table / RSS

One listing = one row. Export from the Console or pull any format via the API.

❓ Frequently Asked Questions

How do I scrape Funda.nl listings?

Pick a city and koop/huur from the dropdowns, or paste a Funda search URL into searchUrls, then run the Actor. It paginates the whole result set and returns one clean JSON row per listing — with price, m², rooms, energy label and the makelaar — no code to maintain.

Is this a Funda.nl API alternative?

Yes. Funda has no public API, so this Actor works as an unofficial Funda.nl API alternative — it reads the site's own structured listing data and returns clean, machine-readable rows with no API key.

Can I scrape Funda without an API or login?

Yes. The scraper reads public funda.nl listing data without any login, account or API key — only an Apify account is required. It paginates the full result set behind Apify residential proxy.

Does it handle both koop (buy) and huur (rent)?

Yes. Choose koop or huur in dealType, or paste a /zoeken/koop?... or /zoeken/huur?... URL — or mix both in one run. Use the listingType filter to force one or the other.

How do I filter by city, price or property type?

Use the area dropdown for a city, or apply the filters on Funda itself and paste the resulting URL into searchUrls. Every filter encoded in the URL is respected, and the Actor paginates the whole result set.

How do I get the makelaar (estate agent) from Funda listings?

Every scraped listing includes the makelaar name, broker ID, broker association and agency page URL, so one run over a Funda search becomes a targeted Dutch estate-agent list by area or price band, deduplicated on brokerId.

Can I scrape the postcode and living area from funda.nl?

Yes. Each row returns the address, city, postcode, living area, plot and volume in square metres, rooms, build year and energy label — ready for comps and valuation models.

How do I export Funda listings to CSV or JSON?

Run the Actor on any Funda search, then download the results from the Output tab as CSV, JSON, Excel or XML, or pull them straight from the Apify API. Every property and makelaar field is included.

Why is a residential proxy recommended?

Funda is anti-bot sensitive. Routing through Apify residential proxy (the default) gives by far the highest success rate, and it is enabled out of the box.

How much data can I get?

You can scrape thousands of listings per run. A single Funda search can span hundreds of pages; use maxResults and maxResultsPerSearch to cap volume, or pass multiple search URLs to benchmark across cities in one run.

Is scraping Funda.nl legal?

The Actor collects only publicly available listing data. You are responsible for complying with Funda's terms and your local regulations, including how you store and use estate-agent details under GDPR.

🔗 Related actors by logiover

Building a cross-country property dataset? Pair Funda with the rest of the European real-estate suite:

Country Actor
🇩🇪 Germany ImmobilienScout24 Scraper
🇧🇪 Belgium & wider EU Willhaben Scraper
🇩🇰 Denmark Boliga Scraper

👉 Browse all logiover actors on Apify Store — 180+ scrapers across real estate, jobs, crypto, social media & B2B data.


📄 Documentation only

This repository contains documentation only — no Actor source code. The Actor runs on the Apify platform.

▶️ Run it: apify.com/logiover/funda-scraper

Licensed under the MIT License · © 2026 logiover. Not affiliated with, endorsed by, or sponsored by Funda. "Funda" is a trademark of its respective owner and is used here for descriptive purposes only.

About

Scrape Funda.nl Netherlands real estate — asking price (EUR), price/m², living area, rooms, energy label & the makelaar (estate agent) behind every listing. No API key, no login. Funda API alternative.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors