Funda Scraper — Listings, Prices & Monitor avatar

Funda Scraper — Listings, Prices & Monitor

Pricing

from $2.50 / 1,000 new listings

Go to Apify Store
Funda Scraper — Listings, Prices & Monitor

Funda Scraper — Listings, Prices & Monitor

Turn any Funda.nl search into clean JSON: price, floor area, rooms, energy label, coordinates, photos and a link to the listing agency. Run a one-time export, or schedule Monitor mode to get only new and changed listings. Pay only for delivered results.

Pricing

from $2.50 / 1,000 new listings

Rating

0.0

(0)

Developer

Victoria

Victoria

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

Funda Scraper — Dutch Real Estate Listings & Monitoring

Turn any Funda.nl search into clean, structured real-estate data — no code required.

Get prices, property details, addresses, coordinates, photos, and agency information. Run a one-time export or schedule the scraper to receive only listings that are new or have changed.

Why use this scraper?

  • 🔁 Monitor the market — receive only new listings and price or availability changes after the first run.
  • 📊 Get complete property data — price, floor area, rooms, energy label, location, coordinates, agency, and photos.
  • 🏢 Identify the listing agency — each record can include the agency office name and a link to its Funda page.
  • 💶 Pay only for results — failed or blocked requests are not charged.
  • 📁 Export anywhere — download JSON, CSV, Excel, or access the data through the Apify API.
  • No personal agent data — the scraper is designed to exclude personal names, phone numbers, and email addresses.

Get started in 3 steps

  1. Open Funda.nl, apply your filters, and copy the search-results URL.
  2. Paste the URL into Search URLs, set Max items to cap the run (or clear it to collect everything that matches), and click Start.
  3. Download the results or schedule the Actor to monitor the search automatically.

You can also skip the URL and select a listing type, area, price range, and property type directly in the input form.

Choose a mode

Monitor — new and changed listings

Use Monitor when you want to follow the same market over time.

  • The first run returns all current matching listings and remembers them.
  • Later runs return only new listings and listings whose price or availability status changed.
  • Unchanged listings are skipped and not charged.

Schedule the Actor hourly or daily to keep your data up to date.

Changing the search URL, area, or filters creates a new monitor. Its first run will return the full current set again.

{
"mode": "monitor",
"searchUrls": ["https://www.funda.nl/zoeken/koop?selected_area=amsterdam"]
}

Full scan — one-time export

Use Full scan when you want every listing that currently matches your search.

{
"mode": "full_scan",
"searchUrls": ["https://www.funda.nl/zoeken/koop?selected_area=amsterdam"],
"maxItems": 200
}

No Funda URL? Build the search from input fields:

{
"mode": "full_scan",
"listingType": "buy",
"area": ["amsterdam"],
"objectType": "apartment",
"priceMin": 300000,
"priceMax": 600000,
"maxItems": 200
}

For neighbourhoods, energy labels, and other advanced Funda filters, paste a Funda search URL. A pasted URL overrides the separate listing type, area, and price fields.

Already completed a full scan?

If you switch to Monitor using the same search inputs, the Actor uses the full scan as its starting point. The monitor will return only changes instead of delivering the full set again.

Keep the same snapshotStoreName. If you want a complete starting point, do not limit the full scan below the total number of matching listings.

Pricing

$2.50 per 1,000 delivered listings.

Delivered resultsPrice
100$0.25
200$0.50
1,000$2.50

The first Monitor run returns and charges for the current matching listings. Later runs usually cost less because only new and changed listings are delivered. Your exact cost depends on the number of results.

What you get

FieldDescription
sourceIdStable Funda listing ID
urlListing URL
dealTypeSale or rent
propertyTypeHouse, apartment, parking, land, or another property type
statusAvailable, under offer, sold, rented, withdrawn, or unknown
priceEurPrice in EUR
priceAmount, currency, rental period, and original price text
livingAreaM2, plotAreaM2Living and plot area
rooms, bedroomsRoom counts
energyLabelEnergy label
yearBuiltConstruction year
cityCity the property is in — a flat column, so listing tables and spreadsheets stay readable
locationFull address: street, house number, postcode, city, region, latitude, and longitude
photoUrlsFull-resolution photo URLs — the images Funda publishes in the listing's page data, usually the first 6. The rest of the gallery is loaded by the site's JavaScript and is not collected.
agencyName, agencyUrlAgency office name and Funda office page
scrapedAtTime the listing was collected

If you turn off Fetch detail pages

Fetch detail pages is on by default and is what produces the full table above. With it off, the Actor reads only the search-results page, so each record contains just sourceId, url, dealType, status, price / priceEur, agencyName, and agencyUrl. Everything else — floor area, rooms, energy label, coordinates, year built, photos, property type — is not collected.

Turning it off makes runs faster and less likely to be blocked. It does not make them cheaper: the price is per delivered listing regardless of how many fields each listing carries.

Example result

The record below is illustrative — the address, IDs, and agency are placeholders, not a real listing.

{
"sourceId": "00000000",
"url": "https://www.funda.nl/detail/koop/amsterdam/appartement-voorbeeldstraat-1/00000000/",
"dealType": "sale",
"propertyType": "apartment",
"status": "available",
"priceEur": 415000,
"livingAreaM2": 54,
"rooms": 3,
"bedrooms": 2,
"energyLabel": "C",
"yearBuilt": 1921,
"city": "Amsterdam",
"location": {
"street": "Voorbeeldstraat",
"houseNumber": "1",
"postcode": "1000 AA",
"city": "Amsterdam",
"region": "Noord-Holland",
"country": "NL",
"lat": 52.3676,
"lng": 4.9041
},
"photoUrls": ["https://cloud.funda.nl/valentina_media/000/000/000_1440x960.jpg"],
"agencyName": "Voorbeeld Makelaardij B.V.",
"agencyUrl": "https://www.funda.nl/makelaar/00000-voorbeeld-makelaardij/"
}

Main input options

  • searchUrls — one or more Funda search-results URLs (each must start with https://www.funda.nl/zoeken/).
  • listingTypebuy or rent. Used when no Search URL is given.
  • area — city or region slugs as they appear in a Funda URL, such as amsterdam. Used when no Search URL is given.
  • modefull_scan (default) or monitor.
  • snapshotStoreName — the monitor's name; change it to start a fresh monitor.
  • maxItems — stop after this many listings, and charge for at most this many.
  • fetchDetails — collect the complete listing details; enabled by default.
  • priceMin, priceMax, objectType — optional search filters.
  • proxyConfiguration — use Apify Proxy or your own proxy URLs.

Frequently asked questions

Can I get only new or changed listings?

Yes. Use Monitor mode and schedule the Actor. After the first run, it returns only newly found listings and listings whose price or availability status changed.

What happens if nothing changed?

The run succeeds with an empty dataset. No listing results are charged.

Where does the monitor keep its previous results?

It stores a small record of listing IDs, prices, and statuses in a named Key-Value Store in your Apify account. The default store is funda-monitor-snapshots. You normally do not need to manage it.

Because it is a named store, Apify keeps it indefinitely — your monitor does not forget, however long it sits between runs, on any plan. The results of each run are separate: those datasets follow your Apify plan's normal data retention, so export or sync them if you want to keep a long-term history.

How do I contact the listing agency?

Records can include the agency's office name and a direct link to its Funda office page, where you can find its public business information.

Will Funda block the scraper?

The Actor uses request fingerprinting, proxy rotation, and automatic retries. Dutch residential proxies are recommended for reliable runs.

What formats can I export?

Apify supports JSON, CSV, Excel, XML, RSS, and API access.

Can I send the results to my own system?

Yes — the data is yours to move. Download it from the Console, pull it with the Apify API on your own schedule, or have Apify push it for you: there are integrations for Google Drive, Airtable, Snowflake, and HubSpot, as well as Make, n8n, and Zapier. You can also set a webhook that fires when a run succeeds so your own service collects the results automatically. This is the setup to use if you want a long-term archive of every run.

Is scraping Funda legal?

This Actor collects public property data and is designed to exclude personal agent contact details. You are responsible for how you use the data. Review Funda's terms and applicable laws for your use case.

Limitations

  • A listing is considered changed only when its price or availability status changes. Photo and description edits do not trigger a result.
  • Funda's “offered since” date requires login and is not collected.
  • Agency information can be empty when the scraper cannot clearly identify a business office.
  • For reliable monitoring, use a focused search such as a city with relevant filters rather than all listings in the Netherlands.
  • Residential Dutch proxies are recommended. The default concurrency is intentionally conservative.

Support

Found a problem or need another field? Open an issue on the Actor's Issues tab.