funda.nl APIwww.funda.nl ↗
Access Funda.nl property listings via API. Search by area, retrieve prices, addresses, floor area, bedrooms, energy labels, and broker info for buy or rent.
curl -X GET 'https://api.parse.bot/scraper/1f378595-7797-4954-8a24-14454fd69432/search_listings?area=amsterdam&page=1&max_pages=1&offering_type=buy' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for property listings on Funda.nl by area with pagination. Returns 15 listings per page with prices, addresses, property details, and agent information.
| Param | Type | Description |
|---|---|---|
| area | string | Area/city to search in (e.g., 'amsterdam', 'rotterdam', 'utrecht') |
| page | integer | Page number to start from (1-based) |
| max_pages | integer | Maximum number of pages to fetch (15 listings per page) |
| offering_type | string | Type of offering: 'buy' or 'rent' |
{
"type": "object",
"fields": {
"page": "integer - Starting page number",
"listings": "array of listing objects with global_id, url, address, price, object_type, floor_area_m2, number_of_bedrooms, energy_label, agent, and more",
"page_size": "integer - Listings per page (fixed at 15)",
"pages_fetched": "integer - Number of pages actually fetched",
"total_available": "integer - Total number of listings matching the search",
"listings_returned": "integer - Number of listings in this response"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"url": "https://www.funda.nl/detail/koop/amsterdam/appartement-schoorlstraat-123/43338465/",
"agent": "Hallie & Van Klooster Makelaardij",
"price": 325000,
"status": "none",
"address": {
"city": "Amsterdam",
"street": "Schoorlstraat",
"province": "Noord-Holland",
"postal_code": "1024PT",
"house_number": "123",
"municipality": "Amsterdam",
"neighbourhood": "Werengouw-Midden"
},
"global_id": 7983002,
"price_type": "regular",
"object_type": "apartment",
"energy_label": "D",
"publish_date": "2026-05-01T00:00:15.9636085+02:00",
"floor_area_m2": 52,
"offering_type": [
"buy"
],
"thumbnail_url": "https://cloud.funda.nl/tiara-media/62cfce6e-a473-44c4-b149-403117921f53/e30a65cc-241b-48f4-877a-09653fec8bc7",
"number_of_rooms": 2,
"price_condition": "kosten_koper",
"construction_type": "resale",
"number_of_bedrooms": 1
}
],
"page_size": 15,
"pages_fetched": 1,
"total_available": 5797,
"listings_returned": 15
},
"status": "success"
}
}About the funda.nl API
The Funda.nl API exposes Dutch real estate listings across three endpoints, covering properties for sale and rent on the Netherlands' largest property platform. Use search_listings to query by city or neighbourhood with pagination, get_listing_detail to fetch full details for a single property by its global ID, or get_all_listings to bulk-retrieve an entire area's results. Each listing returns fields including price, address, floor area, bedroom count, energy label, and agent name.
What the API Returns
The search_listings endpoint accepts an area parameter (e.g., amsterdam, rotterdam, utrecht), an offering_type of buy or rent, and pagination controls (page, max_pages). Each call returns up to 15 listings per page. The response includes a listings array where each item carries a global_id, url, address, price, object_type, floor_area_m2, number_of_bedrooms, energy_label, and agent. The envelope also surfaces total_available so you can gauge how many results exist before deciding how many pages to pull.
Listing Detail
get_listing_detail takes a global_id (the numeric string returned by search_listings) and returns a richer object: structured address fields (title, subtitle, city, postal_code), a brokers array with name and office_id, living_area as a formatted string (e.g., 52 m²), listing_type, bedrooms, labels such as Nieuw, and both a canonical url and a short share_url. This endpoint is the right choice when you need broker office references or the exact postal code.
Bulk Area Retrieval
get_all_listings handles automatic pagination internally. Set limit to a positive integer to cap results, or pass 0 to retrieve everything available up to 10,000 listings. The response mirrors the search_listings schema but adds an area field and offering_type field at the envelope level, making it straightforward to store results keyed by search context. Large limit values or setting it to 0 in dense areas like Amsterdam will produce sizable payloads and longer response times.
- Aggregate buy-market inventory across Dutch cities using
total_availableandfloor_area_m2for supply analysis - Track rental price changes in a specific neighbourhood by polling
search_listingswithoffering_type=rentover time - Build a property comparison tool using
get_listing_detailto retrievepostal_code,living_area, andenergy_labelper unit - Generate broker market-share reports by collecting
agentandbrokers.office_idfields across listings in a region - Filter energy-efficient apartments by combining
energy_labelfromsearch_listingsresults withliving_areafrom detail calls - Monitor new listings by checking the
labelsarray inget_listing_detailfor values likeNieuw - Seed a database of Dutch addresses with
postal_codeandcityfields returned byget_listing_detail
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Funda.nl have an official developer API?+
What is the difference between `search_listings` and `get_all_listings`?+
search_listings gives you manual pagination control via the page and max_pages parameters and returns 15 listings per page, which is useful when you want to step through results incrementally. get_all_listings handles pagination automatically and accepts a limit parameter; setting limit to 0 attempts to retrieve all available listings up to 10,000. Both endpoints return the same listing schema including global_id, price, floor_area_m2, energy_label, and agent.Does `get_listing_detail` return asking-price history or sold-price data?+
get_listing_detail returns the current listing state: address, living_area, bedrooms, brokers, labels, listing_type, and URLs. Historical price changes and transaction (sold) prices are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting sold-property data if that data becomes accessible.Can I filter listings by price range, property type, or floor area within the API?+
area and offering_type (buy or rent) only. Price-range, property-type, and floor-area filters are not available as input parameters. The price, object_type, and floor_area_m2 fields are returned in the response, so you can filter client-side after fetching. You can also fork this API on Parse and revise it to pass additional filter parameters.How fresh is the listing data, and are removed listings handled?+
status or removed_at field in the response schema. If a global_id no longer exists on the platform, get_listing_detail will not return meaningful data for it.