POST /data/v1/listings/searchAggregator API
Search open Dutch listings for rent and for sale through a REST API. Results come newest first.
Request
POST/data/v1/listings/search
Response
{
"data": [
{
"id": "0b7c7a8e-4f3e-4a51-9a39-2f1d3f5c6a10",
"listingType": "for-sale",
"propertyType": "apartment",
"priceCents": "42500000",
"livingAreaM2": 92,
"bedrooms": 2,
"rooms": 3,
"constructionYear": 1932,
"energyLabel": "c",
"furnishingStatus": null,
"hasApplicationFee": false,
"listedAt": "2026-11-08T16:04:46.864Z",
"location": {
"municipality": {
"slug": "amsterdam-gsxxzjaz98rj",
"displayName": "Amsterdam"
},
"locality": {"slug": "amsterdam-c7sh2t", "displayName": "Amsterdam"},
"district": {
"slug": "grachtengordel-west-mavt2wcj84gj",
"displayName": "Grachtengordel-West"
},
"neighborhood": {
"slug": "langestraat-e-o-jtvr6xz675kh",
"displayName": "Langestraat e.o."
},
"postalCode": {"slug": "1015-cc-7j7dqke625ht", "displayName": "1015 CC"},
"publicSpace": {
"slug": "keizersgracht-9z4dabpr",
"displayName": "Keizersgracht"
}
},
"houseNumber": "999",
"houseLetter": null,
"houseNumberAddition": "2",
"propertySlug": "amsterdam-keizersgracht-999-2-k8d3m2p9x4qz",
"images": [
{
"url": "https://listing-media.voseno.com/images/0b7c7a8e-4f3e-4a51-9a39-2f1d3f5c6a10-1.webp"
}
]
}
],
"pagination": {"nextCursor": null, "limit": 20}
}
200 OK1 creditSample response
Sample data from the published API contract.
- 1 creditper search
- 50listings on a page, at most
- 10places in one search, at most
- Newest firsta fixed order, by listing time
Endpoints
The base address is https://api.huisly.nl. Send your API key in the X-API-Key header.
- POST/data/v1/listings/searchSearch open listings in 1 to 10 places.1 credit
- GET/data/v1/places/searchFind places and their slugs by name, postal code or street. Returns up to 5 places.Free
- GET/data/v1/balanceCheck your API key and your credit balance.Free
Filters
All optional.
- Property type
- Price
- Living area
- Bedrooms
- Rooms
- Construction year
- Energy label
- Furnishing
- Application fee
Paging
nextCursorA page has up to 50 listings, 20 by default, newest first. To read on, send the nextCursor of a page as cursor in the next request.
Linked to the Property API
propertySlugA listing that is linked to an address has the slug of its property, in propertySlug.
Property APIAbout the data
Listings come from 3,000+ Dutch housing websites that Huisly monitors.
Huisly merges 99% of duplicate listings for properties with a full address. Listings without an address are not deduplicated.
Call it from your code
Cost
A listing search costs 1 credit and returns up to 50 listings. The place search and the balance are free. A failed request costs nothing.
API keys start with vos_live_.
curl -X POST https://api.huisly.nl/data/v1/listings/search \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"listingType":"for-sale","places":[{"type":"municipality","slug":"amsterdam-gsxxzjaz98rj"}],"limit":20}'const response = await fetch("https://api.huisly.nl/data/v1/listings/search", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
listingType: "for-sale",
places: [{ type: "municipality", slug: "amsterdam-gsxxzjaz98rj" }],
limit: 20,
}),
})
const { data, pagination } = await response.json()import requests
response = requests.post(
"https://api.huisly.nl/data/v1/listings/search",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"listingType": "for-sale",
"places": [{"type": "municipality", "slug": "amsterdam-gsxxzjaz98rj"}],
"limit": 20,
},
)
page = response.json()Try it with free credits
A new organization can claim free trial credits to try the API.