icon

Funda Scraper

Scrape Listings and Property Prices from Funda

Extract koopwoningen and huurwoningen listings, vraagprijs and huurprijs, plus woonoppervlakte and locality data from the Netherlands' #1 real estate portal. Funda ranks #1 in Dutch real estate with around 32.5M monthly visits and sits behind an Akamai bot challenge that greets bot traffic with a 'Je bent bijna op de pagina die je zoekt' interstitial. Scrape.do handles it automatically.

START SCRAPING FOR FREE

Start scraping today with 1000 free credits. No Credit Card Required

Funda screenshot

32.5M Monthly Visits. The Netherlands' #1 Real Estate Portal. One API.

Funda is the #1 real estate portal in the Netherlands by SimilarWeb category rank, pulling in around 32.5M monthly visits with 93% of traffic from the Netherlands in 2026. Founded in 2001 in Amsterdam, it is the default place Dutch consumers search for homes, and real estate association NVM (which represents roughly half of Dutch estate agents) is a major shareholder, so nearly every home for sale in the country lands on Funda first.

For scrapers this is the dataset for Dutch residential real estate. With Scrape.do you can pull vraagprijs and huurprijs down to the postcode, track price per m² of woonoppervlakte, monitor new koopwoningen, huurwoningen, and nieuwbouw listings as they go live in Amsterdam, Utrecht, Rotterdam, and Den Haag, and feed valuation models or NL lead-gen tools with slaapkamers, bouwjaar, and energielabel data through a single API call.

32.5M Monthly Visits. The Netherlands' #1 Real Estate Portal. One API.

Akamai Bot Manager. Dutch Geo-Wall. Handled.

Funda runs on Akamai, and its bot manager does not always answer with a clean 403. Send a request that looks automated or comes from a non-Dutch datacenter IP and Funda returns a stripped 'Je bent bijna op de pagina die je zoekt' interstitial (You are almost on the page you are looking for) instead of the listing HTML, asking to verify you are a real person. Repeated hits from the same IP get throttled, and the portal is built Netherlands-first, so foreign traffic sees a degraded experience.

Scrape.do routes Funda requests through Dutch residential IPs with NL geo-targeting, rotates sessions automatically, and clears the Akamai challenge so you get the full property HTML back. No proxy lists, no CAPTCHA solvers, no maintenance, with a single super-mode call returning the complete detail page.

Akamai Bot Manager. Dutch Geo-Wall. Handled.

How to Scrape Funda

1

Select a Target

Property Detail Page screenshot
2

Send API Request

import requests
import urllib.parse

token = "<SDO-token>"
targetUrl = "https://www.funda.nl/detail/huur/amsterdam/appartement-nieuwe-osdorpergracht-70/80847174/"
render = "false"  # set to "true" to enable JavaScript rendering
super = "true"  # set to "false" to disable residential proxies
geoCode = "nl"

encodedUrl = urllib.parse.quote(targetUrl)
url = f"https://api.scrape.do/?token={token}&url={encodedUrl}&render={render}&super={super}&geoCode={geoCode}"

response = requests.get(url)

print(response.text)
3

Get HTML

HTML
<!DOCTYPE html>
<html lang="nl">
<head>
  <meta charset="utf-8">
  <title>Appartement te huur: Nieuwe Osdorpergracht 70 1068 HV Amsterdam | Funda</title>
  <script type="application/ld+json">
  {
    "@context": "http://schema.org/",
    "@type": ["Appartement", "Product"],
    "name": "Nieuwe Osdorpergracht 70",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Nieuwe Osdorpergracht 70",
      "addressLocality": "Amsterdam",
      "addressRegion": "Noord-Holland"
    },
    "offers": { "@type": "Offer", "priceCurrency": "EUR", "price": 2485 }
  }
  </script>
</head>
<body>
  <h1 class="font-semibold">Nieuwe Osdorpergracht 70
    <span class="text-neutral-60">1068 HV Amsterdam</span>
  </h1>

  <ul class="flex">
    <li class="flex">
      <span>€ 2.485</span>
      <span class="ml-1 hidden text-neutral-50 md:inline-block">per maand</span>
    </li>
    <li class="flex">
      <span>102</span>
      <span class="ml-1 hidden text-neutral-50 md:inline-block">m² woonoppervlakte</span>
    </li>
    <li class="flex">
      <span>3</span>
      <span class="ml-1 hidden text-neutral-50 md:inline-block">slaapkamers</span>
    </li>
  </ul>

  <dl data-testid="category-overdracht">
    <dt class="text-neutral-50">Huurprijs</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">
      <span>€ 2.485 per maand (servicekosten onbekend)</span>
    </dd>
    <dt class="text-neutral-50">Aanvaarding</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">In overleg</dd>
    <dt class="text-neutral-50">Status</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">Beschikbaar</dd>
  </dl>

  <dl data-testid="category-bouw">
    <dt class="text-neutral-50">Soort appartement</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">Portiekflat (appartement)</dd>
    <dt class="text-neutral-50">Soort bouw</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">Nieuwbouw</dd>
    <dt class="text-neutral-50">Bouwjaar</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">
      <span class="mr-2">2026</span>
    </dd>
  </dl>

  <dl data-testid="category-afmetingen">
    <dt class="text-neutral-50">Wonen</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">ca. 102 m²</dd>
    <dt class="text-neutral-50">Inhoud</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">265 m³</dd>
  </dl>

  <dl data-testid="category-indeling">
    <dt class="text-neutral-50">Aantal kamers</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">4 kamers (3 slaapkamers)</dd>
    <dt class="text-neutral-50">Aantal badkamers</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">1 badkamer en 1 apart toilet</dd>
  </dl>

  <dl data-testid="category-energie">
    <dt class="text-neutral-50">Energielabel</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">A++</dd>
    <dt class="text-neutral-50">Isolatie</dt>
    <dd class="flex items-center border-b border-neutral-20 pb-2 text-neutral-80">Volledig geïsoleerd</dd>
  </dl>
  <!-- ... remaining page content ... -->
</body>
</html>

Scrape.do has been a game-changer with powerful scraping tools, but what truly sets them apart is their excellent customer support.

user avatar
Rogerio C.

CTO

timertimer
capterra best customer support
< 5 min

Average Response Time

No tickets connect with expert engineers.

like changelike change
99.98%

Success rate

hierarchyhierarchy
110 Million

Proxies

trellotrello
+40%

Faster gateway than the closest competitor.

  • Trustpilot Reviews
  • G2 Reviews
  • Capterra Reviews
  • scrapedo capterra most recommended
  • scrapedo capterra best ease of use
  • scrapedo capterra best value
  • capterra best customer support
  • scrapedo capterra front runners

Reliable, Scalable,Unstoppable Web Scraping

START SCRAPING FOR FREE

Sounds great, but I have a few questions..

Yes. Funda runs Akamai Bot Manager and serves a 'Je bent bijna op de pagina die je zoekt' verification interstitial to bot traffic and non-Dutch IPs instead of the listing HTML. Scrape.do routes requests through Dutch residential IPs with super mode, clears the challenge, and returns the full detail page. Success rates exceed 95% on /detail/ and /zoeken/ pages.

You can extract vraagprijs and huurprijs, price per m², woonoppervlakte and perceeloppervlakte, aantal kamers and slaapkamers, badkamers, property type (appartement, huis, nieuwbouw), full adres and postcode, bouwjaar, energielabel, isolatie and verwarming details, the listing agent (makelaar), photos, and neighbourhood benchmarks like gemiddelde vraagprijs per m².

Yes for reliable results. Funda is a Netherlands-first portal that deprioritizes foreign traffic and hands datacenter IPs the Akamai challenge page. Use Scrape.do's geoCode=nl with super=true so requests look like normal Dutch residential traffic, which is what returns the complete 162K+ property HTML in our recon.