Huislijn APIhuislijn.nl ↗
Access for-sale and rental property listings from huislijn.nl. Search by price, retrieve full listing details, and pull the newest Dutch housing market data.
What is the Huislijn API?
The huislijn.nl API exposes 3 endpoints covering Dutch residential property listings, including search, detail retrieval, and newest-listing feeds. The search_for_sale_listings endpoint returns up to 15 structured listing summaries per page — including price, room count, size, year built, energy label, and city — letting developers filter by price range and paginate through the full result set.
curl -X GET 'https://api.parse.bot/scraper/e8375b0e-b4de-4593-b13e-8e5a50e987c7/search_for_sale_listings?page=1&price_to=500000&price_from=100000' \ -H 'X-API-Key: $PARSE_API_KEY'
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 huislijn-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.
"""Huislijn.nl SDK — search Dutch housing listings and drill into details."""
from parse_apis.huislijn_nl_api import Huislijn, ListingType, ListingNotFound
client = Huislijn()
# Search for affordable homes for sale, capped at 5 results
for listing in client.listingsummaries.search(price_from=200000, price_to=400000, limit=5):
print(listing.street, listing.city, listing.price)
# Get the newest rental listings from the last 3 days
first_new = client.listingsummaries.newest(type=ListingType.RENT, days="-3", limit=1).first()
if first_new:
print(first_new.street, first_new.city, first_new.price_info.formatted)
# Drill into listing details from a search result
listing = client.listingsummaries.search(price_to=500000, limit=1).first()
if listing:
try:
detail = listing.details()
print(detail.title, detail.url)
for similar in detail.similar_listings[:3]:
print(similar.title, similar.link)
except ListingNotFound as exc:
print(f"Listing removed: {exc.url}")
print("exercised: listingsummaries.search / listingsummaries.newest / listing.details")
Search for homes for sale across the Netherlands. Supports price-range filtering and pagination. Each page returns up to ~15 listing summaries with structured property data (rooms, size, year built, energy label). The total_results count may be null when the site omits it.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| price_to | integer | Maximum price filter in EUR. |
| price_from | integer | Minimum price filter in EUR. |
{
"type": "object",
"fields": {
"url": "string, the URL that was queried",
"page": "integer, current page number",
"listings": "array of property listing objects with id, type, link, street, city, price, photo, properties, location",
"total_results": "integer or null, total number of matching listings"
},
"sample": {
"data": {
"url": "https://www.huislijn.nl/koopwoning/nederland?page=1",
"page": 1,
"listings": [
{
"id": 4379230,
"city": "Rijswijk",
"link": "/koopwoning/nederland/zuid-holland/4379230/burgemeester-elsenlaan-323-f509-rijswijk",
"type": "sale",
"photo": {
"formats": {
"m": "https://cdn-v4.huislijn.nl/objects/4379230/06e723c8e4b49452a1d551299a2e5d704554adc8/m.webp"
}
},
"price": "475000.00",
"status": "Verkocht",
"street": "Burgemeester Elsenlaan",
"zipcode": "2282MZ",
"location": {
"lat": "52.04414965",
"lon": "4.33715414"
},
"priceInfo": {
"price": "475000.00",
"status": null,
"formatted": "€ 475.000 k.k."
},
"properties": {
"KK": true,
"Buy": true,
"WoonOpp": 98,
"Bouwjaar": "2024",
"Woontype": "Appartement",
"TotAantalKamers": 3,
"AantalSlaapkamers": 2
},
"housenumber": "323 F509"
}
],
"total_results": null
},
"status": "success"
}
}About the Huislijn API
Endpoints and Data Shape
The API provides three endpoints covering the main listing surfaces on huislijn.nl. search_for_sale_listings accepts price_from, price_to, and page parameters and returns an array of listing objects, each carrying id, type, link, street, city, price, photo, properties (rooms, size, year built, energy label), and location. The total_results field reflects the site's reported match count and may be null when the site omits it.
Listing Detail
get_listing_detail takes a URL path (obtainable from the link field in search results, e.g. /koopwoning/nederland/zuid-holland/4379230/burgemeester-elsenlaan-323-f) and returns the full property record. The features object groups attributes into named categories such as Algemeen, Woningdetails, and Overige. The response also includes an agent object with the listing agent's name and URL, a free-text description, and a similar_listings array of nearby properties with their titles and links.
Newest Listings Feed
get_newest_listings filters by recency using a days parameter expressed as a negative integer string (e.g. '-7' for the past seven days) and by listing type (sale or rent). It returns the same listing-summary structure as the search endpoint, making it straightforward to monitor new additions to either market segment without re-polling the full search index.
The Huislijn API is a managed, monitored endpoint for huislijn.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when huislijn.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 huislijn.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly listed rental and for-sale homes in the Netherlands by polling
get_newest_listingsdaily with a-1days window. - Build a price-band explorer by calling
search_for_sale_listingswithprice_fromandprice_toto segment inventory across budget tiers. - Enrich a property CRM by fetching the
featuresgroups andagentdetails fromget_listing_detailfor each tracked listing URL. - Generate neighborhood comparison reports using the
similar_listingsarray returned byget_listing_detail. - Track energy-label distribution across Dutch cities by aggregating the
propertiesfield from paginated search results. - Alert users when listings matching their saved search criteria appear in the newest-listing feed filtered by
type: rent.
| 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 | 100 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 huislijn.nl offer an official developer API?+
What does `get_listing_detail` return beyond what the search endpoint provides?+
get_listing_detail returns the full features object grouped by Dutch category names (Algemeen, Woningdetails, Overige), the free-text description, the listing agent (name and URL), and a similar_listings array. The search endpoint returns only the summary fields — price, size, rooms, year built, energy label, city, and photo.What happens when `total_results` is null in `search_for_sale_listings`?+
null even when listings are returned. Rely on the length of the listings array per page and use the page parameter to iterate; a page returning fewer than ~15 results typically indicates the last page.Does the API cover rental property details, not just sale listings?+
get_listing_detail requires a URL path, which the current search endpoint only produces for for-sale listings. The get_newest_listings endpoint does surface rental summaries when type is set to rent, but there is no dedicated rental search endpoint with price filtering. You can fork this API on Parse and revise it to add a rental-specific search endpoint with equivalent filtering.