Discover/Funda in Business API
live

Funda in Business APIfundainbusiness.nl ↗

Search and retrieve Dutch commercial property listings from fundainbusiness.nl. Offices, retail, industrial, and land for sale or rent across the Netherlands.

Endpoint health
verified 2h ago
search_listings
get_listing
2/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

What is the Funda in Business API?

The funda in business API provides access to Dutch commercial real estate data through 2 endpoints. Use search_listings to query offices, retail spaces, industrial halls, hospitality venues, and land across the Netherlands by location slug, offer type, price range, and area — then call get_listing to retrieve full detail on any individual listing including address, floor area, energy label, price, photos, and a structured features table grouped by the site's own section headings.

This call costs1 credit / call— charged only on success
Try it
1-based results page; each page holds 15 rows.
Result ordering. relevance and date are descending; city, postal_code, address and rent_per_m2 ascending; area and units descending (the directions the site offers).
Site location slug: lowercase letters, digits and hyphens, e.g. amsterdam, gemeente-amsterdam, provincie-utrecht, or a 4-digit postal code area such as 1031.
Upper price bound in euros, same unit rules as min_price. Requires offer_type koop or huur.
Lower price bound in euros. For koop this is the asking price; for huur it is measured in rent_price_unit. Requires offer_type koop or huur.
Search radius around the location. The site accepts only 0, 1, 2, 5, 10, 15, 30, 50 or 100; other values are rejected with a 422.
Whether to return properties for sale (koop), for rent (huur) or both (beide).
Maximum unit size in m².
Minimum unit size in m².
Property category to search within. Omitted = all commercial property.
Unit in which min_price/max_price are interpreted when offer_type is huur: total rent per year, per month, or rent per m² per year. Ignored otherwise.
→ api.parse.bot/scraper/135866f8-6d2c-4445-9954-af605c73156e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/135866f8-6d2c-4445-9954-af605c73156e/search_listings?location=gemeente-amsterdam&offer_type=huur&property_type=kantoor' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace fundainbusiness-nl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: search commercial listings in Amsterdam and drill into a detail page."""
from parse_apis.fundainbusiness_nl_api import (
    FundaInBusiness,
    OfferType,
    PropertyType,
    SortOrder,
    InputNotFound,
)

client = FundaInBusiness()

# Search office spaces for rent in Amsterdam, newest first
for listing in client.listing_summaries.search(
    location="gemeente-amsterdam",
    property_type=PropertyType.KANTOOR,
    offer_type=OfferType.HUUR,
    sort=SortOrder.DATE,
    limit=5,
):
    print(listing.address, listing.city, listing.price_display, listing.area_m2)

# Drill into the first result to get full detail (photos, description, features)
summary = client.listing_summaries.search(
    location="amsterdam",
    offer_type=OfferType.HUUR,
    limit=1,
).first()

if summary is not None:
    # Navigate from summary to full listing via typed method
    detail = summary.details()
    print(detail.address, detail.postal_code, detail.province)
    print("price:", detail.price_display, "area:", detail.area_m2, "m²")
    print("energy label:", detail.energy_label)
    print("photos:", len(detail.photos))
    print("description:", detail.description[:120])

# Direct point lookup when you already know the listing id
try:
    office = client.listings.get(listing_id="80974101")
    print(office.address, office.price_display, office.status)
except InputNotFound:
    print("listing no longer available")

print("exercised: listing_summaries.search / summary.details / listings.get")
All endpoints · 2 totalmissing one? ·

Searches commercial property listings for one location and returns one page of 15 results (the site's fixed page size) with the site's total result count and page count. The location is a site location slug: a city (amsterdam), a municipality (gemeente-amsterdam), a province (provincie-utrecht) or a 4-digit postal code area (1031). Results are a mix of object listings and new-build projects (kind field); featured/promoted rows appear among regular ones in the order the site shows them. The area filter is applied by the site on the size of the units offered, so the area_m2 shown per row (total floor area) can fall outside the requested range. A price range is only accepted together with offer_type koop or huur; for huur the range is interpreted in rent_price_unit. Paging is by the page parameter (default 1); has_more is true while further pages exist. An unknown location slug returns a 422 stale_input error; a page beyond the last one returns an empty listings array.

Input
ParamTypeDescription
pageinteger1-based results page; each page holds 15 rows.
sortstringResult ordering. relevance and date are descending; city, postal_code, address and rent_per_m2 ascending; area and units descending (the directions the site offers).
locationrequiredstringSite location slug: lowercase letters, digits and hyphens, e.g. amsterdam, gemeente-amsterdam, provincie-utrecht, or a 4-digit postal code area such as 1031.
max_priceintegerUpper price bound in euros, same unit rules as min_price. Requires offer_type koop or huur.
min_priceintegerLower price bound in euros. For koop this is the asking price; for huur it is measured in rent_price_unit. Requires offer_type koop or huur.
radius_kmintegerSearch radius around the location. The site accepts only 0, 1, 2, 5, 10, 15, 30, 50 or 100; other values are rejected with a 422.
offer_typestringWhether to return properties for sale (koop), for rent (huur) or both (beide).
max_area_m2integerMaximum unit size in m².
min_area_m2integerMinimum unit size in m².
property_typestringProperty category to search within. Omitted = all commercial property.
rent_price_unitstringUnit in which min_price/max_price are interpreted when offer_type is huur: total rent per year, per month, or rent per m² per year. Ignored otherwise.
Response
{
  "type": "object",
  "fields": {
    "page": "page number returned",
    "has_more": "true when a later page exists",
    "listings": "array of result rows in site order",
    "location": "echo of the location slug searched",
    "per_page": "rows per page (always 15)",
    "offer_type": "koop, huur or beide as applied",
    "total_pages": "last page number the site offers",
    "property_type": "property category code applied",
    "total_results": "total matching listings reported by the site",
    "listings[].url": "site-relative path of the listing page",
    "listings[].city": "place name",
    "listings[].kind": "object (single property) or project (new-build/multi-unit project)",
    "listings[].labels": "site badges on the row (e.g. Nieuw)",
    "listings[].address": "street and house number",
    "listings[].area_m2": "total floor area in m² as shown in the row, null when absent",
    "listings[].global_id": "site-wide numeric id of the listing",
    "listings[].image_url": "main photo URL",
    "listings[].placement": "promo (featured) or regular",
    "listings[].agent_name": "listing agent name",
    "listings[].listing_id": "numeric listing id as string; pass to get_listing (kind=object only)",
    "listings[].price_display": "price exactly as shown, e.g. '€ 129 /m²/jaar', '€ 595.000 k.k.', or 'Huurprijs op aanvraag'",
    "listings[].property_type": "site label(s) of the property function, | separated when multiple"
  },
  "sample": {
    "data": {
      "page": 1,
      "has_more": true,
      "listings": [
        {
          "url": "/kantoor/amsterdam/object-80974101-asterweg-20-p1/",
          "city": "Amsterdam",
          "kind": "object",
          "labels": [],
          "address": "Asterweg 20-P1",
          "area_m2": 481,
          "global_id": 8165102,
          "image_url": "https://cloud.funda.nl/valentina_media/235/305/913_720x480.jpg",
          "placement": "regular",
          "agent_name": "Blauwman Bedrijfsmakelaars",
          "listing_id": "80974101",
          "price_display": "€ 129 /m²/jaar",
          "property_type": "Kantoor"
        },
        {
          "url": "/alle-bedrijfsaanbod/amsterdam/project-89938061-stitch-offices/",
          "city": "Amsterdam",
          "kind": "project",
          "labels": [
            "Bedrijfsverzamelgebouw"
          ],
          "address": "H.J.E. Wenckebachweg 123",
          "area_m2": 728,
          "global_id": 7129062,
          "image_url": "https://cloud.funda.nl/valentina_media/215/734/602_720x480.jpg",
          "placement": "regular",
          "agent_name": "Spring Serviced Offices",
          "listing_id": "89938061",
          "price_display": "huurprijs op aanvraag",
          "property_type": "Kantoorruimte|Kantoor, Stitch Offices"
        }
      ],
      "location": "gemeente-amsterdam",
      "per_page": 15,
      "offer_type": "beide",
      "total_pages": 114,
      "property_type": "alle-bedrijfsaanbod",
      "total_results": 2190
    },
    "status": "success"
  }
}

About the Funda in Business API

Searching Commercial Listings

The search_listings endpoint accepts a required location parameter — a lowercase hyphenated slug such as amsterdam, gemeente-amsterdam, or provincie-utrecht — and returns up to 15 results per page (the site's fixed page size). The response includes total_results, total_pages, and a has_more flag so you can paginate programmatically. Optional filters include offer_type (koop, huur, or beide), min_price and max_price in euros, max_area_m2, and a radius_km parameter that accepts only the discrete values 0, 1, 2, 5, 10, 15, 30, 50, or 100 — other values are rejected. Results can be ordered by relevance, date, city, postal_code, address, rent_per_m2, or area.

Listing Detail

The get_listing endpoint takes a numeric listing_id from a search_listings result (only rows where kind is object are valid) and returns the full property record. Fields include address, city, province, area_m2, price (numeric, null when on request), price_display (formatted label), status (e.g. beschikbaar), construction_year, energy_label, a photos array of large image URLs, and a features object. The features object is keyed by the site's section headings — such as general characteristics, surface area breakdown, or facility details — and each section maps characteristic labels to their displayed values.

Coverage and Scope

All listings are sourced from fundainbusiness.nl, which covers commercial property across the Netherlands. The offer_type filter controls whether results are for sale, for rent, or both. Price semantics differ by offer type: for koop the price is the asking price; for huur it corresponds to the rent expressed in rent_price_unit. Listings without a public price return null for the numeric price field while price_display may show a label like "op aanvraag".

Reliability & maintenanceVerified

The Funda in Business API is a managed, monitored endpoint for fundainbusiness.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fundainbusiness.nl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official fundainbusiness.nl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a dashboard tracking available office space in a specific Dutch municipality by polling search_listings with a gemeente slug.
  • Aggregate asking prices for industrial halls across multiple provinces to produce a rent-per-m² benchmark.
  • Feed a CRM with structured listing data — address, area_m2, energy_label, features — by chaining search_listings and get_listing.
  • Alert users when new retail properties matching a price range appear in a city by comparing total_results across polling intervals.
  • Populate a comparison tool for commercial tenants by fetching full detail records including photos and features for shortlisted listing IDs.
  • Analyse energy label distribution across Dutch commercial stock by extracting the energy_label field from bulk get_listing calls.
  • Map available land plots within a 10 km radius of a logistics hub using the radius_km filter and the returned address and city fields.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does fundainbusiness.nl have an official developer API?+
Funda in business does not publish a public developer API. Data access for developers is not documented or offered on the site.
What does search_listings return for each result row, and how do I get full property details?+
Each entry in the listings array includes a listing_id, a site-relative URL, and summary fields sufficient for display. To get address parts, floor area, energy label, photos, construction year, and the full characteristics table, pass the listing_id to get_listing. Only rows where kind is object are valid inputs for get_listing.
Are there limitations on the radius_km filter in search_listings?+
Yes. The radius_km parameter only accepts the discrete values 0, 1, 2, 5, 10, 15, 30, 50, or 100. Any other integer is rejected. Location slug and radius are independent — you can combine a province-level slug with a radius if needed.
Does the API expose agent or broker contact details for listings?+
Not currently. The API covers listing attributes — address, price, area, features, photos, status, and energy label — but does not return broker name, phone number, or email. You can fork this API on Parse and revise it to add an endpoint that extracts contact information from listing pages.
Can I filter by property type — for example, only offices or only retail?+
The search_listings endpoint accepts a property_type parameter that maps to the site's category codes, and the response echoes the applied code. The current endpoint description lists it in the response fields. If you need sub-categories not currently supported by the parameter, you can fork this API on Parse and revise it to expose additional property type filters.
Page content last updated . Spec covers 2 endpoints from fundainbusiness.nl.
Related APIs in Real EstateSee all →
funda.nl API
Search for property listings on Funda.nl, the largest Dutch real estate platform. Access prices, addresses, property details, and agent contact information across Dutch cities and neighbourhoods. Supports paginated browsing and bulk retrieval of listings by area.
huislijn.nl API
Search and browse housing listings on huislijn.nl to find properties for sale, rental, or vacation stays, and view detailed information about specific homes. Get access to the newest listings posted on the platform to stay updated on available properties.
pararius.com API
Search and browse rental property listings on Pararius.com. Filter by city, price, size, and furnishing; retrieve full property details; look up listings by estate agent; and autocomplete location queries.
Pararius.nl API
Search and browse rental properties across the Netherlands from Pararius.nl, with filtering by city and detailed property information including pricing, location, and amenities. Access paginated listings to easily discover available rentals that match your needs.
holland2stay.com API
Search and browse rental properties across Holland2Stay with access to pricing, availability, location details, and direct booking links. Filter listings by city and availability status to find suitable accommodation in the Netherlands.
fincaraiz.com.co API
Search and browse real estate listings, projects, and agencies from Colombia's leading property platform, plus stay updated with the latest real estate news and market insights. Filter properties by type, view detailed listing information, and discover available inmobiliarias all in one place.
jaap.nl API
Search and browse housing listings for sale or rent across the Netherlands with detailed property information including photos, characteristics, and agent details. Find homes by location using autocomplete suggestions and easily navigate through results with pagination.
ingatlan.com API
Search real estate listings and development projects on ingatlan.com to find properties with detailed information like prices, descriptions, and project details. Get comprehensive data on available homes and construction projects even when direct access is restricted.