Funda.nl Scraper — Dutch Property Data, Price/m² & Agents avatar

Funda.nl Scraper — Dutch Property Data, Price/m² & Agents

Pricing

from $0.50 / 1,000 property extracteds

Go to Apify Store
Funda.nl Scraper — Dutch Property Data, Price/m² & Agents

Funda.nl Scraper — Dutch Property Data, Price/m² & Agents

Scrape Funda.nl Dutch real estate — for-sale, for-rent and sold listings — by location, area identifier or URL. Pull price per m², energy label, floor and plot area, full address, rich listing detail and estate-agent (makelaar) profiles, plus built-in market KPIs and an HTML report.

Pricing

from $0.50 / 1,000 property extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Funda.nl Scraper — Dutch Property Data, Price/m² & Agents 🏡

SIÁN Agency Store Zillow Property Scraper Trulia Property Scraper Airbnb Property Scraper

🇳🇱 Extract Funda Sale, Rent & Sold Listings With Price/m² and Agent Leads

Real estate investors, buyer's agents, relocation services, and market analysts — get complete Dutch property data plus makelaar contact profiles across the whole of the Netherlands


📋 Overview

Pull Funda Dutch real estate — for-sale, for-rent AND sold listings — into clean, structured data. Search any Dutch city, town, neighbourhood or postcode, paste a Funda search URL, or drill into a single listing, and get back complete records with auto-computed price per m², energy label, living and plot area, full address down to the wijk, geo coordinates, the estate agent (makelaar), and a 45-photo media gallery. Every run also builds a market-KPI HTML report.

Why investors and agents choose us over the alternatives:

  • 📐 Price per m² computed on every listing: Skip the spreadsheet step — comp sheets and valuations are ready straight from the dataset, using Funda's own living-area figure.
  • 🏷️ Sale + Rent + Sold in one actor: A single searchType toggle gets you asking prices, monthly rents, or realised sold prices — purpose-built for market analysis and price-to-rent studies.
  • Native energy-label filtering: Pull only A/A+/B homes (or any band) — filtered at the source, so you only collect what you asked for.
  • 🏢 Makelaar lead-gen goldmine: Estate-agent profiles carry email, phone, website, social handles, team members and review scores — a ready CRM feed no other Funda tool exposes.
  • 📊 Built-in market KPIs: Median price, price/m² distribution, and inventory breakdowns are computed for you on every run and surfaced in an HTML report — no post-processing.
  • 🆓 FREE tier with full feature parity: 25 rows per run, no credit card, same fields and same HTML report — just a smaller cap.

✨ Features

  • 🧭 Seven operations, one actor — search by location, by area identifier, or by URL; pull full detail by listing ID or URL; fetch a makelaar profile; or resolve a location with autocomplete.
  • 🏠 Every side of the market — for-sale, for-rent and sold listings via a single searchType toggle.
  • 📐 Auto-calculated price per m² — for every listing with a usable living area.
  • Energy-label + area + price + bedroom filters — applied at the source so you only collect (and only pay for) matching homes.
  • 🏘️ Rich listing detail — coordinates, full characteristic sections (transfer, construction, layout, energy, cadastral, outdoor space, parking, VvE), badges, and the full Dutch + English description.
  • 🏢 Estate-agent (makelaar) profiles — contact details, social media, team roster with roles, and aggregate review scores.
  • 📊 Market KPI HTML report — median price, price/m² distribution and inventory breakdown on every run.
  • 📦 Bulk area sweeps — pass multiple Funda geo identifiers in a single run.
  • 📱 Standard Apify exports — JSON, CSV, XLSX, RSS, HTML.

🎬 Quick Start

Pick an operation, give it a location, and run — no coding required.

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~funda-property-scraper/runs?token=[YOUR_TOKEN]' \
-H 'Content-Type: application/json' \
-d '{"operation":"searchByLocation","location":"Amsterdam","searchType":"For_Sale","maxResults":50}'

🚀 Getting Started (3 Simple Steps)

Step 1: Pick an operation

Set operation to searchByLocation (city / town / neighbourhood / postcode), searchByArea (Funda geo identifiers), searchByUrl (paste a funda.nl/zoeken URL), detailsById / detailsByUrl (one rich listing), agentDetails (a makelaar profile), or autocomplete (resolve a location to geo identifiers).

Step 2: Set your target and filters

Give the operation a location, area, URL or ID, then optionally narrow with searchType (For Sale / For Rent / Sold), price band, bedrooms, living area, energy label and property type.

Step 3: Run & Export

Hit Run. Rows stream into the dataset; a market-KPI HTML report lands in the key-value store. Export as JSON, CSV, or Excel.

That's it! In under 2 minutes you'll have:

  • Complete listings with address, specs, pricing, photos and geo
  • Auto-calculated price per m² per listing
  • Market-level KPIs (median price, price/m² distribution, breakdowns)
  • A polished HTML market summary

📥 Input Configuration

FieldTypeRequiredDescription
operationstringYessearchByLocation, searchByArea, searchByUrl, detailsById, detailsByUrl, agentDetails, or autocomplete (default: searchByLocation).
locationstringFor searchByLocationDutch city, town, neighbourhood or postcode, e.g. Amsterdam, Utrecht, 1018XS.
areastringFor searchByAreaOne or more Funda geo identifiers, comma-separated (from autocomplete).
urlstringFor searchByUrl / detailsByUrl / agentDetailsA funda.nl search, listing, or makelaar URL.
listingIdstringFor detailsByIdFunda globalId shown as a search result's propertyId.
agentIdstringFor agentDetailsFunda office id shown on a listing's agent.
querystringFor autocompletePartial location text to resolve into geo identifiers.
searchTypestringNoFor_Sale, For_Rent, or Sold (default: For_Sale).
propertyTypestringNoComma-separated kinds: house, apartment, parking, land, berth.
sortOrderstringNoRelevance, price low→high / high→low, newest, oldest.
minPrice / maxPriceintegerNoPrice band in EUR (asking price for sale, monthly rent for rent).
minBedrooms / maxBedroomsintegerNoBedroom range.
minFloorArea / maxFloorAreaintegerNoLiving-area range in m².
energyLabelstringNoComma-separated labels: A, A+, B, C, D, E, F, G.
keywordsstringNoExtra free-text keywords, e.g. monumentaal, tuin.
maxResultsintegerNoRows to collect, 1–750 (default: 45). FREE tier capped at 25.

Example — Search Amsterdam homes for sale under €600k, energy label A/B:

{
"operation": "searchByLocation",
"location": "Amsterdam",
"searchType": "For_Sale",
"maxPrice": 600000,
"energyLabel": "A,A+,B",
"maxResults": 100
}

Example — Full detail for one listing:

{
"operation": "detailsById",
"listingId": "8066978"
}

Example — Estate-agent (makelaar) profile:

{
"operation": "agentDetails",
"agentId": "24862"
}

📤 Output

Results land in the Apify dataset. A rowType field marks each row as property, property-detail, agent, or location-suggestion. Common fields:

FieldTypeDescription
rowTypestringproperty · property-detail · agent · location-suggestion
propertyIdintegerFunda listing globalId
urlstringFull funda.nl URL for the property
offeringTypestringbuy / rent
objectTypestringapartment / house / parking / land / berth
listingStatusstringavailable or sold
pricingobjectPrice (EUR), price type, condition (kosten koper / per month) and computed price per m²
specsobjectBedrooms, rooms, floor area, plot area, energy label, construction type, zoning
addressobjectStreet, house number, postcode, neighbourhood, wijk, city, municipality, province
mediaobjectMedia types, photo gallery, videos and photo count
coordinatesobjectLatitude and longitude (detail rows)
characteristicsarrayCategorized property facts (detail rows)
propertyDescriptionstringFull listing description, Dutch + English (detail rows)
contact / socialMedia / employees / reviewsobject/arrayEstate-agent (makelaar) fields (agent rows)
geoId / geoName / geoTypestringResolved geo identifiers (autocomplete rows)
scrapedAtstringISO-8601 timestamp

Search row example:

{
"rowType": "property",
"propertyId": 8066978,
"url": "https://www.funda.nl/detail/koop/amsterdam/appartement-.../8066978/",
"offeringType": "buy",
"objectType": "apartment",
"listingStatus": "none",
"pricing": { "value": 575000, "priceType": "kosten koper", "pricePerSqm": 8214 },
"specs": { "bedrooms": 2, "floorArea": 70, "energyLabel": "B" },
"address": { "postcode": "1018XS", "neighbourhood": "Weesperbuurt", "city": "Amsterdam" }
}

Estate-agent row example:

{
"rowType": "agent",
"agentId": 24862,
"name": "Metropool Makelaars",
"contact": { "email": "info@metropool.nl", "phone": "+31 20 000 0000", "website": "https://metropool.nl" },
"reviews": { "average": 9.2, "count": 148 },
"hasListings": true
}

💼 Use Cases & Examples

1. Investment Underwriting (Sale)

Investors comparing homes by price per m² across Dutch cities

Input: searchByLocation, searchType: "For_Sale", a city and price band Output: Listings with computed price/m² plus median in the HTML report Use: Spot the cheapest €/m² pockets and build comp sheets in minutes.

2. Rental Market Analysis

Analysts tracking rent levels in Amsterdam vs. Utrecht

Input: searchType: "For_Rent", two locations, a weekly schedule Output: Monthly rents, living area and rent/m² distribution Use: Generate weekly Dutch rental-market briefs for clients.

3. Sold-Price Comparables

Appraisers pulling realised sale prices for valuations

Input: searchType: "Sold", a neighbourhood Output: Recently sold listings with their realised price Use: Ground valuations in actual transactions, not just asking prices.

4. Makelaar Lead Generation

Agencies and PropTech building a Dutch estate-agent CRM

Input: agentDetails by office id or makelaar URL Output: Agent email, phone, website, socials, team roster and review scores Use: Feed a sales pipeline or partnership outreach list straight from the dataset.

5. Energy-Efficient Housing Research

Relocation and sustainability teams filtering by energy label

Input: energyLabel: "A,A+", a city, searchType: "For_Sale" Output: Only the most energy-efficient homes on the market Use: Shortlist properties that meet green-mortgage or ESG criteria.

6. AVM / ML Training Data

Data scientists building Dutch valuation models

Input: Bulk searchByArea sweeps across multiple identifiers Output: Comprehensive listing dataset with specs, geo and price/m² Use: Train and validate AVM and rent-prediction models on Netherlands data.


🔗 Integration Examples

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/funda-property-scraper').call({
operation: 'searchByLocation',
location: 'Amsterdam',
searchType: 'For_Sale',
maxResults: 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/funda-property-scraper').call(
run_input={
'operation': 'searchByLocation',
'location': 'Utrecht',
'searchType': 'For_Rent',
'maxResults': 100
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~funda-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"searchByArea","area":"amsterdam,utrecht","searchType":"For_Sale","maxResults":150}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule (daily / weekly market refresh) or webhook
  2. HTTP Request: Call the actor API with your target location
  3. Process: Filter by price band, compute KPIs, dedupe against last run
  4. Action: Push to a database, send a Slack/email digest, update a dashboard

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 rows per run — full feature parity, same data quality
  • No credit card required
  • Perfect for testing and one-off analyses
  • Unlimited rows per run
  • Bulk area sweeps and full detail + agent enrichment
  • Pay-per-event: only charged for the rows you actually get

💰 Transparent per-event pricing — pay per property listing extracted, with detail and estate-agent profiles priced separately. Every listing arrives with a computed price per m², and every run produces a full HTML market report with median and distribution — no post-processing, no separate analytics tier.

🔗 View current pricing


❓ Frequently Asked Questions

Q: Does this cover rentals and sold listings? A: Yes — set searchType: "For_Rent" for rentals or searchType: "Sold" for realised sale prices. Default is For_Sale.

Q: How many listings can I extract? A: FREE tier: 25 rows per run. PAID tier: unlimited. Search operations auto-paginate the full Funda result set for your query.

Q: What is price per m² based on? A: It's computed from Funda's own living-area figure — asking (or realised) price divided by living area in square metres. Listings without a usable area omit the field.

Q: Can I get estate-agent contact details? A: Yes — the agentDetails operation returns a makelaar office profile with email, phone, website, social handles, team members and review scores.

Q: What output formats are available? A: JSON, CSV, Excel — exported directly from the Apify dataset.

Q: Is this legal? A: We only extract publicly available listings and agent profiles from Funda. See the legal section below.


🐛 Troubleshooting

"No results" on a location search

  • Confirm the spelling of the Dutch city / neighbourhood, or use the autocomplete operation to resolve it into a geo identifier, then run searchByArea.

Empty searchByArea run

  • searchByArea needs Funda geo identifiers (e.g. amsterdam, gemeente-amsterdam), not free-text city names. Discover them with autocomplete.

pricePerSqm missing on some rows

  • Some records (often rentals or land) omit a usable living area. The field is omitted rather than emitted as null — check key presence before reading it.

FREE tier stops at 25 rows

  • That's the FREE cap. Upgrade for unlimited rows and bulk sweeps.

⚠️ Trademark Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Funda Real Estate B.V. or any of its subsidiaries. The name "Funda" is used solely in a descriptive sense to identify the public data source the Actor reads from. All trademarks, service marks, and trade names referenced in this Actor or its documentation are the property of their respective owners.


Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools