Funda Property Discovery Scraper avatar

Funda Property Discovery Scraper

Pricing

from $0.85 / 1,000 listings

Go to Apify Store
Funda Property Discovery Scraper

Funda Property Discovery Scraper

Discover public Funda property listings by location, sale or rent, and property type. Extract prices, descriptions, areas, rooms, images, and URLs.

Pricing

from $0.85 / 1,000 listings

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

Discover public Funda real estate listings from simple inputs: Dutch location, sale or rent, property type, and maximum results. The Actor searches Funda and returns structured Netherlands property rows with listing URLs, prices, areas, rooms, descriptions, images, timestamps, and optional workflow IDs.

Use it when you need repeatable Funda property discovery without manually creating search URLs, copying listing cards, or cleaning Dutch real estate fields by hand.

What does Funda Property Discovery Scraper do?

Funda Property Discovery Scraper converts a market query such as Amsterdam into a clean Apify dataset of public Funda listings.

It can:

  • search Funda by Dutch city or market name
  • collect sale or rental listings with operation
  • request broad property types such as any, apartment, house, land, or commercial
  • return listing identifiers, titles, URLs, prices, areas, rooms, addresses, descriptions, feature lists, images, and timestamps
  • calculate pricePerM2 when both price and area are available
  • append results to an existing dataset through datasetId
  • copy a workflow identifier into every row with runId

This is a discovery Actor. You provide search criteria, not Funda search-result URLs.

Why use this Funda scraper?

Use caseHow it helps
Dutch property lead discoveryBuild listing datasets for Amsterdam, Rotterdam, Utrecht, The Hague, Eindhoven, Groningen, Haarlem, Maastricht, and other city-level searches.
Sale and rental monitoringSchedule the same Funda search and compare new rows over time.
Market analysisCompare price, pricePerM2, areaM2, bedrooms, bathrooms, and city across listings.
Agency and investor workflowsFeed normalized property rows into dashboards, CRM enrichment, or due-diligence workflows.
Multi-source real estate datasetsCombine Funda rows with other TroveVault property discovery Actors using datasetId and runId.

What data does it return?

Each dataset item represents one public Funda listing when the field is visible in search or detail data.

FieldDescription
platformSource platform, normally Funda.
listingIdListing identifier when exposed or derived from the public URL.
titleListing headline.
urlPublic Funda listing URL.
operationRequested operation, such as sale or rent.
propertyTypeRequested property type.
price, currency, priceTextNumeric price when parseable, currency, and original display text.
pricePerM2Calculated only when price and area are visible.
areaM2, bedrooms, bathroomsSize and room attributes when available.
address, city, countryParsed listing location.
description, featuresPublic description and feature list.
mainImage, imagesMain image URL and gallery URLs when available.
listedAtTextListing date or freshness text when exposed.
scrapedAtISO timestamp for when the row was collected.
runIdOptional workflow ID copied from input.

How do I run Funda Property Discovery Scraper?

  1. Enter a Dutch city in Location, for example Amsterdam.
  2. Choose Operation: sale or rent.
  3. Choose Property Type: any, apartment, house, land, or commercial.
  4. Set Maximum Items for the number of listings to save.
  5. Start the Actor and export results as JSON, CSV, Excel, or through the Apify API.

For quick validation, start with maxItems: 3. For broader discovery, increase the limit after confirming the city and property type return the kind of listings you need.

What input does it accept?

{
"location": "Amsterdam",
"operation": "sale",
"propertyType": "apartment",
"maxItems": 25,
"datasetId": "",
"runId": "funda-amsterdam-sale-2026-08-17"
}
InputTypeRequiredDescription
locationStringYesDutch city to search. Examples: Amsterdam, Rotterdam, Utrecht, The Hague, Eindhoven, Groningen, Haarlem, Maastricht.
operationStringYesUse sale for properties for sale or rent for rental listings. Default: sale.
propertyTypeStringYesOne of any, apartment, house, land, or commercial. Default: apartment.
maxItemsIntegerNoMaximum listings to save, from 1 to 1000. Default: 3.
datasetIdStringNoExisting Apify dataset ID to append results to in addition to the default run dataset.
runIdStringNoWorkflow or parent run ID copied into rows and the RUN_SUMMARY record.

What output should I expect?

{
"platform": "Funda",
"listingId": "example-listing-id",
"title": "Apartment for sale in Amsterdam",
"url": "https://www.funda.nl/koop/amsterdam/appartement-example/",
"operation": "sale",
"propertyType": "apartment",
"price": 625000,
"currency": "EUR",
"priceText": "EUR 625,000",
"pricePerM2": 7812.5,
"areaM2": 80,
"bedrooms": 2,
"bathrooms": 1,
"address": "Amsterdam",
"city": "Amsterdam",
"country": "Netherlands",
"description": "Public listing description when available.",
"features": ["Balcony", "Energy label A"],
"mainImage": "https://example.com/funda-image.jpg",
"images": ["https://example.com/funda-image.jpg"],
"listedAtText": null,
"scrapedAt": "2026-08-17T10:00:00.000Z",
"runId": "funda-amsterdam-sale-2026-08-17"
}

Null values mean Funda did not expose the field for that listing or the Actor could not parse it safely.

How can I use it through the Apify API?

curl -X POST "https://api.apify.com/v2/acts/trovevault~funda-property-discovery-scraper/runs" \
-H "Authorization: Bearer <APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"location": "Amsterdam",
"operation": "sale",
"propertyType": "apartment",
"maxItems": 25,
"runId": "funda-amsterdam-sale-2026-08-17"
}'

Use the run details to access the default dataset, or pass datasetId to append Funda rows into a shared dataset used by a larger workflow.

How much does it cost?

This Actor uses Apify pay-per-event pricing. Runtime depends mostly on maxItems, source response speed, and whether detail pages are publicly accessible during the run.

Cost controls:

  • test new searches with a small maxItems value
  • use city-level locations instead of broad country searches
  • split broad market research into separate city runs
  • schedule only the searches you actively monitor

How do I troubleshoot common issues?

IssueLikely causeWhat to do
No listings returnedThe city, operation, or property type has no public Funda matches at run time.Try propertyType: "any", check spelling, and test a known city such as Amsterdam.
Fewer rows than maxItemsFunda exposed fewer matching listings or some rows could not be normalized safely.Treat maxItems as a cap. Broaden the search or run another city.
pricePerM2 is nullPrice or area was missing from the source row.Use priceText and areaM2 when available; keep null-aware downstream logic.
Detail fields are missingThe public listing page did not expose descriptions, images, or features during the run.Re-run later or use the listing URL for manual review.
Run is slow on a large batchThe source is responding slowly or many detail pages are being enriched.Lower maxItems and split the job by city or operation.

What are the limitations?

  • It reads public Funda pages only; it does not access accounts, broker dashboards, private data, or non-public feeds.
  • City-level inputs are more stable than broad national searches.
  • Commercial and land availability depends on Funda's public coverage for the selected city.
  • Prices, availability, and listing details can change after scraping.
  • pricePerM2 is calculated only when both source price and area are available.
  • This Actor is for data collection and workflow automation; it is not legal, investment, or valuation advice.

FAQ

Can I provide a Funda search URL?
No. This Actor discovers listings from structured inputs: location, operation, propertyType, and maxItems.

Can it track listings over time?
Yes. Schedule the same input and compare datasets by url, listingId, priceText, and scrapedAt.

Can I combine Funda with other portals?
Yes. Use datasetId for a shared dataset and runId to label which workflow or batch produced each row.

Does it return every Funda listing?
No. It returns public listings that can be discovered and normalized for the selected search. Source coverage and availability can change.

Support

Open an issue on the Actor page with the input JSON, run ID, expected city, and a short description of the problem. Include a sample listing URL when the issue is about a missing or misparsed field.