# Funda Scraper (`ivanvs/funda-scraper`) Actor

Extract data from funda.nl for data on thousands of apartments and house listings. Scrape house location, extract descriptions, images, prices, addresses, names, and all other listing details. Unlimited and extremely fast!

- **URL**: https://apify.com/ivanvs/funda-scraper.md
- **Developed by:** [Gen First](https://apify.com/ivanvs) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 73 total users, 19 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 listing details

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Funda Scraper

Scrape listings from [Funda](https://www.funda.nl) easily with Funda Scraper.

### About

Funda Real Estate B.V., headquartered in Amsterdam, is an organization of real estate agents that presents Dutch real estate via an online platform. The name “Funda” is derived from fundum, the Latin word for “estate.” The company’s primary website, funda.nl, is among the most frequently visited housing portals in the Netherlands, attracting approximately 4.6 million unique visitors per month. The platform provides access to the full range of residential properties in the Netherlands offered through real estate agents. Initially, the site exclusively displayed listings from members of the Dutch Association of Real Estate Agents (Nederlandse Vereniging van Makelaars, NVM). Since September 2007, however, listings from non-NVM agents have also been included. A sister site, Funda in Business, specializes in the presentation of commercial properties.

### Why should you use it?

It provides the realtime scraping of products from Funda, without requiring any other configuration and without any limits.

### How to use it?

Funda Scraper has number of input parameters that can be used.

| Input parameter      | Description                                | Required | Default value                                                               |
| -------------------- | ------------------------------------------ | -------- | --------------------------------------------------------------------------- |
| urls                 | Funda urls that needs to be scraped        | `true`   | `{url: "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]"}` |
| collectBrokerContact | Should scraper collect broker contact data | `false`  | `false`                                                                     |

`urls` property is complex property that consist of next two properties:

| Field               | Description                                                                                                     | Required | Default value |
| ------------------- | --------------------------------------------------------------------------------------------------------------- | -------- | ------------- |
| url                 | Funda.nl link that needs to be scraped                                                                          | `true`   | -             |
| maxResultsPerSearch | Maximum number of search results to scrape from this URL. If URL is not search page, this parameter is ignored. | `false`  | `null`        |

The `maxResultsPerSearch` property applies only to search result pages.
For example, if the URL is a search page like
`https://www.funda.nl/zoeken/koop?selected_area=["amsterdam"]`,
the scraper will collect up to `maxResultsPerSearch` results from that page.

However, if the URL is a listing page, such as
`https://www.funda.nl/detail/koop/amsterdam/huis-geerdinkhof-566/89532103`,
the `maxResultsPerSearch` setting will be ignored.

Valid Funda links:

- https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]
- https://www.funda.nl/detail/koop/amsterdam/huis-geerdinkhof-566/89532103

#### Examples

##### Input

Scrape search results for all aparments that are for rent and scrape maximum of 20 results:

```json
{
  "urls": { "url": "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]", "maxResultsPerSearch": 20 }
}
````

##### Output

##### Listing Details

```json
{
  "id": "43172082",
  "global_id": 7727629,
  "url": "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082/",
  "sharing_url": "https://www.funda.nl/detail/43172082/",
  "object_type": "Apartment",
  "offering_type": "Sale",
  "description": "Thuis begint op Van der Hoopstraat 75-III&IV...Een super sfeervol en licht dubbel bovenhuis met een woonoppervlakte van bijna 80 m² met drie slaapkamers, een heerlijk zonnig dakterras van circa 20 m² en een separate berging op de begane grond. Perfecte locatie in het hart van de Staatsliedenbuurt, vlakbij het levendige Westerpark en de Jordaan.\n\nKortom, een fijne woning waar straks misschien wel jouw nieuwe thuis begint! Maak snel online een afspraak voor een bezichtiging, wij laten je deze woning graag zien!\n\nIndeling:\nGemeenschappelijke opgang met entree van de woning op de derde verdieping. Ruime en lichte woonkamer met zitgedeelte en Frans balkon aan de voorzijde, eetgedeelte aan de achterzijde met moderne open keuken, voorzien van diverse inbouwapparatuur. Vanuit de keuken is er toegang tot het op het zuiden gelegen balkon. Ruim toilet met fontein aan de hal evenals een garderobe. Open trap vanuit de woonkamer naar de vierde verdieping, waar je via de overloop toegang hebt tot alle vertrekken. Riante hoofdslaapkamer aan de voorzijde. Tweede en derde slaapkamer, beide van goed formaat, aan de achterzijde. Moderne badkamer in het middenstuk en voorzien van ligbad, zwevend toilet, douche en wastafel. Aan de overloop is eveneens een vast kast met aansluiting voor wasmachine en droger. Via een vaste trap bereik je het het dakterras, van waar je schitterend uitzicht hebt over de stad en waar het heerlijk vertoeven is.\n\nOmgeving:\nCentrale ligging en op loopafstand van het Westerpark en de Jordaan, met de Haarlemmerdijk voor een verscheidenheid aan leuke winkeltjes of de zaterdagmarkt op de Lindengracht. De Staatsliedenbuurt kenmerkt zich als een hippe buurt met vele voorzieningen. Om te beginnen kan je jezelf straks gelukkig prijzen met onder andere Ferment Wine & Coffeebar, De Buurman en Trattoria Bella Storia om de hoek. Verder zijn er cafés en restaurants in overvloed. Gevestigde namen waar het heerlijk op het terras in de zon vertoeven is, zijn: Café Restaurant Piet de Gruijter, Chez Nina, Checkpoint Charlie, Café Nassau, Pazzi Westerpark en last but not least Café restaurant Amsterdam. Vertier voor de jeugd is er op het Van Beuningenplein met onder andere een skatepark en voetbal-/ basketbalveld. Naast dit alles heb je straks misschien wel het Westerpark als je nieuwe voortuin, met de vele leuke plekken van de Westergasfabriek.\n\nBereikbaarheid:\nDe Van der Hoopstraat is goed bereikbaar met het openbaar vervoer. Op het Van Limburg Stirumplein en de Van Hallstraat zijn meerdere tram- en bushalten richting o.a. Amsterdam Centraal en het Leidseplein. Het NS-station Amsterdam Centraal is op circa 10 minuten fietsafstand van de woning gelegen. Ook is de ligging ten opzichte van de ringweg A-10 west zeer gunstig, met de auto is deze binnen enkele minuten te bereiken via de Haarlemmerweg of de nieuwe Spaarndammertunnel. Parkeren gebeurt via vergunningensysteem op de openbare weg. \n\nToegevoegde waarde:\n- Modern en licht en praktisch ingedeeld dubbel bovenhuis van circa 78 m2;\n- Zeer centrale ligging in de Staatsliedenbuurt, om de hoek van de Jordaan en het Westerpark;\n- Heerlijk zonnig dakterras en balkon op het zuiden;\n- Erfpacht afgekocht tot 30 november 2059, en daarna onder gunstige voorwaarden ‘vastgeklikt’;\n- Actieve vereniging van eigenaars, de administratie wordt professioneel gevoerd;\n- Maandelijkse servicekosten bedragen € 232,-, MJOP aanwezig;\n- Oplevering: In overleg.",
  "living_area": "78 m²",
  "plot_area": null,
  "number_of_rooms": 4,
  "number_of_bedrooms": 3,
  "energy_label": "B",
  "is_sold_or_rented": false,
  "address": {
    "title": "Van der Hoopstraat 75-3",
    "subtitle": "1051 VC Amsterdam",
    "neighborhood": "Fannius Scholtenbuurt",
    "city": "Amsterdam",
    "postcode": "1051VC",
    "house_number": "75",
    "province": "Noord-Holland",
    "country": "Nederland",
    "google_maps_link": "https://www.google.nl/maps/place/Van+der+Hoopstraat+75+3+1051VC+Amsterdam",
    "longitude": 4.872503,
    "latitude": 52.384293,
    "is_international": false
  },
  "price_info": {
    "selling_price": "€ 675.000 k.k.",
    "rental_price": null,
    "is_auction": false,
    "numeric_price": 675000,
    "original_selling_price": null
  },
  "publication_date": "2025-09-24T00:00:00",
  "insights": {
    "views": "2.681",
    "saves": "141"
  },
  "photos": [
    "https://cloud.funda.nl/valentina_media/217/698/808.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/809.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/810.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/811.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/812.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/813.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/814.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/815.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/816.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/817.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/818.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/819.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/820.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/821.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/822.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/823.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/824.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/825.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/826.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/827.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/828.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/829.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/830.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/831.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/832.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/833.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/834.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/835.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/836.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/837.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/838.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/839.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/840.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/841.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/842.jpg",
    "https://cloud.funda.nl/valentina_media/217/698/843.jpg"
  ],
  "videos": ["https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/video/1"],
  "photos360": [
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/dakterras",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/slaapkamer",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/badkamer",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/kantoor",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/woonkamer1",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/keuken1",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/keuken2",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/woonkamer2",
    "https://www.funda.nl/detail/koop/amsterdam/appartement-van-der-hoopstraat-75-3/43172082//media/360-foto/voorgevel"
  ],
  "floor_plan": [
    "https://cloud.funda.nl/valentina_media/217/708/538.png",
    "https://cloud.funda.nl/valentina_media/217/708/539.png",
    "https://cloud.funda.nl/valentina_media/217/708/540.png",
    "https://cloud.funda.nl/valentina_media/217/708/541.png"
  ],
  "brochure_url": null,
  "features": [
    {
      "title": "Overdracht",
      "value": null,
      "subfeatures": [
        {
          "title": "Aangeboden sinds",
          "value": "24 september 2025",
          "subfeatures": null
        },
        {
          "title": "Aanvaarding",
          "value": "In overleg",
          "subfeatures": null
        },
        {
          "title": "Vraagprijs",
          "value": "€ 675.000 kosten koper",
          "subfeatures": null
        },
        {
          "title": "Vraagprijs per m²",
          "value": "€ 8.654",
          "subfeatures": null
        },
        {
          "title": "Status",
          "value": "Beschikbaar",
          "subfeatures": null
        },
        {
          "title": "Bijdrage VvE",
          "value": "€ 232,00 per maand",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Bouw",
      "value": null,
      "subfeatures": [
        {
          "title": "Soort appartement",
          "value": "Bovenwoning (appartement)",
          "subfeatures": null
        },
        {
          "title": "Soort bouw",
          "value": "Bestaande bouw",
          "subfeatures": null
        },
        {
          "title": "Bouwjaar",
          "value": "1905",
          "subfeatures": null
        },
        {
          "title": "Soort dak",
          "value": "Plat dak bedekt met bitumineuze dakbedekking",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Oppervlakten en inhoud",
      "value": null,
      "subfeatures": [
        {
          "title": "Gebruiksoppervlakten",
          "value": null,
          "subfeatures": [
            {
              "title": "Wonen",
              "value": "78 m²",
              "subfeatures": null
            },
            {
              "title": "Gebouwgebonden buitenruimte",
              "value": "23 m²",
              "subfeatures": null
            },
            {
              "title": "Externe bergruimte",
              "value": "3 m²",
              "subfeatures": null
            }
          ]
        },
        {
          "title": "Inhoud",
          "value": "236 m³",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Indeling",
      "value": null,
      "subfeatures": [
        {
          "title": "Aantal kamers",
          "value": "4 kamers (3 slaapkamers)",
          "subfeatures": null
        },
        {
          "title": "Aantal badkamers",
          "value": "1 badkamer en 1 apart toilet",
          "subfeatures": null
        },
        {
          "title": "Badkamervoorzieningen",
          "value": "Douche, ligbad, toilet, en wastafel",
          "subfeatures": null
        },
        {
          "title": "Aantal woonlagen",
          "value": "2 woonlagen",
          "subfeatures": null
        },
        {
          "title": "Voorzieningen",
          "value": "TV kabel",
          "subfeatures": null
        },
        {
          "title": "Gelegen op",
          "value": "3e woonlaag",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Energie",
      "value": null,
      "subfeatures": [
        {
          "title": "Energielabel",
          "value": "Wat betekent dit?",
          "subfeatures": null
        },
        {
          "title": "Isolatie",
          "value": "Dubbel glas",
          "subfeatures": null
        },
        {
          "title": "Verwarming",
          "value": "Cv-ketel",
          "subfeatures": null
        },
        {
          "title": "Warm water",
          "value": "Cv-ketel",
          "subfeatures": null
        },
        {
          "title": "Cv-ketel",
          "value": "HR (gas gestookt combiketel uit 2023, eigendom)",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Kadastrale gegevens",
      "value": null,
      "subfeatures": [
        {
          "title": "AMSTERDAM Y 4583",
          "value": null,
          "subfeatures": [
            {
              "title": "Eigendomssituatie",
              "value": "Gemeentelijke erfpacht",
              "subfeatures": null
            },
            {
              "title": "Lasten",
              "value": "Afgekocht tot 30-11-2059",
              "subfeatures": null
            }
          ]
        }
      ]
    },
    {
      "title": "Buitenruimte",
      "value": null,
      "subfeatures": [
        {
          "title": "Ligging",
          "value": "In woonwijk",
          "subfeatures": null
        },
        {
          "title": "Balkon/dakterras",
          "value": "Dakterras aanwezig en balkon aanwezig",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Bergruimte",
      "value": null,
      "subfeatures": [
        {
          "title": "Schuur/berging",
          "value": "Box",
          "subfeatures": null
        },
        {
          "title": "Voorzieningen",
          "value": "Elektra",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Parkeergelegenheid",
      "value": null,
      "subfeatures": [
        {
          "title": "Soort parkeergelegenheid",
          "value": "Betaald parkeren en parkeervergunningen",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "VvE checklist",
      "value": null,
      "subfeatures": [
        {
          "title": "Inschrijving KvK",
          "value": "Ja",
          "subfeatures": null
        },
        {
          "title": "Jaarlijkse vergadering",
          "value": "Ja",
          "subfeatures": null
        },
        {
          "title": "Periodieke bijdrage",
          "value": "Ja (€ 232,00 per maand)",
          "subfeatures": null
        },
        {
          "title": "Reservefonds aanwezig",
          "value": "Ja",
          "subfeatures": null
        },
        {
          "title": "Onderhoudsplan",
          "value": "Ja",
          "subfeatures": null
        },
        {
          "title": "Opstalverzekering",
          "value": "Ja",
          "subfeatures": null
        }
      ]
    }
  ],
  "original_request_url": "test"
}
```

##### Listing with Broker Contact Data

```json
{
  "id": "43313179",
  "global_id": 7969236,
  "url": "https://www.funda.nl//detail/koop/amsterdam/appartement-valeriusstraat-153-3/43313579/",
  "sharing_url": "https://www.funda.nl/detail/43314779/",
  "object_type": "Apartment",
  "offering_type": "Sale",
  "description": "NIEUW IN DE VERKOOP:  Valeriusstraat 153-3 – Luxe en karakteristiek wonen in Oud-Zuid. Gelegen op EIGEN GROND.\n\nWelkom in dit unieke, hoogwaardige appartement verdeeld over maar liefst vier woonlagen, gelegen in een van de meest gewilde straten van.",
  "living_area": "139 m²",
  "plot_area": null,
  "number_of_rooms": 5,
  "number_of_bedrooms": 3,
  "energy_label": "C",
  "is_sold_or_rented": false,
  "address": {
    "title": "Valeriusstraat 153-3",
    "subtitle": "Amsterdam",
    "neighborhood": "Valerrt-Oost",
    "city": "Amsterdam",
    "postcode": "103GG",
    "house_number": "153",
    "province": "Noord-Holland",
    "country": "Nederland",
    "google_maps_link": null,
    "longitude": 4.8652123,
    "latitude": 52.35427,
    "is_international": false
  },
  "price_info": {
    "selling_price": "€ 1.495.000 k.k.",
    "rental_price": null,
    "is_auction": false,
    "numeric_price": 1495000,
    "original_selling_price": null
  },
  "publication_date": "2026-04-18T00:00:00",
  "insights": {
    "views": 0,
    "saves": 0
  },
  "photos": [
    "https://cloud.funda.nl/valentina_media/227/520/939.jpg",
    "https://cloud.funda.nl/valentina_media/227/520/980.jpg",
    "https://cloud.funda.nl/valentina_media/227/520/940.jpg"
  ],
  "videos": ["https://www.funda.nl/detail/koop/amsterdam/appartement-valeriusstraat-158-3/43331579//media/video/1"],
  "photos360": ["https://funda.cloudpano.com/tours/OOzsa1oDzVO#sceneId=Jypyok4Z2"],
  "floor_plan": ["https://fmlpub.s3-eu-west-1.amazonaws.com/embed.html?designId=300795877&projectId=184672702"],
  "brochure_url": null,
  "features": [
    {
      "title": "Overdracht",
      "value": null,
      "subfeatures": [
        {
          "title": "Aangeboden sinds",
          "value": "Vandaag",
          "subfeatures": null
        },
        {
          "title": "Aanvaarding",
          "value": "In overleg",
          "subfeatures": null
        },
        {
          "title": "Vraagprijs",
          "value": "€ 1.495.000 kosten koper",
          "subfeatures": null
        },
        {
          "title": "Vraagprijs per m²",
          "value": "€ 10.755",
          "subfeatures": null
        },
        {
          "title": "Status",
          "value": "Beschikbaar",
          "subfeatures": null
        },
        {
          "title": "Bijdrage VvE",
          "value": "€ 120,00 per maand",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Oppervlakten en inhoud",
      "value": null,
      "subfeatures": [
        {
          "title": "Gebruiksoppervlakten",
          "value": null,
          "subfeatures": [
            {
              "title": "Wonen",
              "value": "139 m²",
              "subfeatures": null
            },
            {
              "title": "Gebouwgebonden buitenruimte",
              "value": "31 m²",
              "subfeatures": null
            }
          ]
        },
        {
          "title": "Inhoud",
          "value": "481 m³",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Indeling",
      "value": null,
      "subfeatures": [
        {
          "title": "Aantal kamers",
          "value": "5 kamers (3 slaapkamers)",
          "subfeatures": null
        },
        {
          "title": "Aantal badkamers",
          "value": "1 badkamer en 1 apart toilet",
          "subfeatures": null
        },
        {
          "title": "Badkamervoorzieningen",
          "value": "Dubbele wastafel, inloopdouche, ligbad, en toilet",
          "subfeatures": null
        },
        {
          "title": "Aantal woonlagen",
          "value": "4 woonlagen",
          "subfeatures": null
        },
        {
          "title": "Voorzieningen",
          "value": "Frans balkon, glasvezelkabel, mechanische ventilatie, natuurlijke ventilatie, en TV kabel",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Buitenruimte",
      "value": null,
      "subfeatures": [
        {
          "title": "Tuin",
          "value": "Zonneterras",
          "subfeatures": null
        },
        {
          "title": "Zonneterras",
          "value": "27 m² (0,06 meter diep en 0,05 meter breed)",
          "subfeatures": null
        },
        {
          "title": "Balkon/dakterras",
          "value": "Dakterras aanwezig en balkon aanwezig",
          "subfeatures": null
        }
      ]
    },
    {
      "title": "Parkeergelegenheid",
      "value": null,
      "subfeatures": [
        {
          "title": "Soort parkeergelegenheid",
          "value": "Betaald parkeren, openbaar parkeren en parkeervergunningen",
          "subfeatures": null
        }
      ]
    }
  ],
  "brokers": [
    {
      "id": 2482452,
      "association_code": "nvm",
      "url": "https://www.funda.nl/makelaar/24824/"
    }
  ],
  "contact": {
    "id": 2482452,
    "logo": "https://cloud.funda.nl/valentina_media/222/438/004.jpg",
    "baner": null,
    "name": "T&C",
    "association_code": "T&C",
    "phoneNumber": "02023491231",
    "url": "https://www.funda.nl/makelaar/24824",
    "is_contacting_enabled": true,
    "contact_name": "Johan Smit",
    "contact_image": null
  },
  "original_request_url": "test",
  "input_params": {
    "url": "test",
    "max_results_per_search": 20
  }
}
```

### Funda Scraper data output

The output from Funda Scraper is stored in the dataset. After the run is finished, you can download the dataset in various data formats (JSON, CSV, XML, RSS, HTML Table).

### ❓FAQ

#### Do I need proxies to scrape search results from Funda Scraper?

Proxy for this scraper is already preconfigured for optimal performance.

### Support

For more custom/simplify outputs or Bug report please contact the developer (support (at) getmediumdata.com) or report an issue.

# Actor input Schema

## `urls` (type: `array`):

List of URLs from Funda (https://www.funda.nl) that needs to be scraped

## `collectBrokerContact` (type: `boolean`):

Collect broker contact data for every listing

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]",
      "maxResultsPerSearch": 10
    }
  ],
  "collectBrokerContact": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        {
            "url": "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]",
            "maxResultsPerSearch": 10
        }
    ],
    "collectBrokerContact": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("ivanvs/funda-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": [{
            "url": "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]",
            "maxResultsPerSearch": 10,
        }],
    "collectBrokerContact": False,
}

# Run the Actor and wait for it to finish
run = client.actor("ivanvs/funda-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    {
      "url": "https://www.funda.nl/zoeken/koop?selected_area=[%22amsterdam%22]",
      "maxResultsPerSearch": 10
    }
  ],
  "collectBrokerContact": false
}' |
apify call ivanvs/funda-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ivanvs/funda-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Funda Scraper",
        "description": "Extract data from funda.nl for data on thousands of apartments and house listings. Scrape house location, extract descriptions, images, prices, addresses, names, and all other listing details. Unlimited and extremely fast!",
        "version": "0.0",
        "x-build-id": "tjQUUxZgs0V3uuxif"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ivanvs~funda-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ivanvs-funda-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ivanvs~funda-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ivanvs-funda-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ivanvs~funda-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ivanvs-funda-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "List of URLs",
                        "type": "array",
                        "description": "List of URLs from Funda (https://www.funda.nl) that needs to be scraped",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "title": "URL that needs to be scraped",
                                    "description": "Funda.nl link that needs to be scraped",
                                    "type": "string",
                                    "minLength": 1
                                },
                                "maxResultsPerSearch": {
                                    "title": "Maximum number of search results to scrape from this URL",
                                    "description": "Maximum number of search results to scrape from this URL. If URL is not search page, this parameter is ignored.",
                                    "type": "integer",
                                    "minimum": 1
                                }
                            },
                            "required": [
                                "url"
                            ],
                            "additionalProperties": false
                        }
                    },
                    "collectBrokerContact": {
                        "title": "Collect broker contact data",
                        "type": "boolean",
                        "description": "Collect broker contact data for every listing",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
