Kamernet Scraper — Dutch Rooms & Apartments
Pricing
from $4.00 / 1,000 results
Kamernet Scraper — Dutch Rooms & Apartments
Scrape rental listings from Kamernet.nl: rooms, apartments and studios with prices, sizes, availability dates, deposits and exact locations. Supports filters and a new-listings-only monitoring mode.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Philipp Merz
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 hours ago
Last modified
Categories
Share
Kamernet Scraper — Dutch Rooms, Apartments & Studios
Extract rental listings from Kamernet.nl, the largest room-rental platform in the Netherlands, as clean structured JSON. Search any city, filter by rent, size and property type, and get every field that matters: price, surface area, availability dates, deposit, exact address with GPS coordinates, house rules and photos.
Built for the Dutch housing market's #1 problem: speed. Rooms in Amsterdam or Utrecht are gone within hours — the built-in monitoring mode outputs only listings that are new since your last run, so you can pipe fresh listings straight into alerts, a Slack channel or your own app within minutes of them going live.
What you get
Each listing is one JSON object:
{"listingId": 2380154,"url": "https://kamernet.nl/en/for-rent/room-amsterdam/gerard-schaepstraat/room-2380154","listingType": "room","city": "Amsterdam","street": "Gerard Schaepstraat","postalCode": "1052GK","latitude": 52.379791,"longitude": 4.875219,"totalRentalPrice": 1503,"currency": "EUR","utilitiesIncluded": false,"deposit": 2750,"agencyFee": 250,"surfaceArea": 84,"furnishing": "unfurnished","availabilityStartDate": "2026-07-01T00:00:00","availabilityEndDate": null,"title": "In search of a roommate","description": "LOOKING FOR ROOMMATE / ROOM AVAILABLE in shared flat…","candidatePetsAllowed": false,"candidateSmokingAllowed": false,"isNewAdvert": true,"imageUrls": ["https://resources.kamernet.nl/image/…"],"scrapedAt": "2026-07-02T21:40:00.000Z"}
Turn off Fetch full details for a faster, cheaper run with the core fields only (price, size, type, street, availability, photo).
Use cases
- Rental alerts — run on a 15–30 min schedule with New listings only enabled; connect a webhook, Zapier/Make, or email integration and beat the crowd to every new room.
- Market research — rent per m² by city or neighbourhood, supply trends, furnishing and deposit statistics across the NL housing shortage.
- Relocation & expat services — feed live inventory for clients moving to the Netherlands.
- Aggregators & portals — keep your Dutch rental coverage complete and current.
Input
| Field | Type | Notes |
|---|---|---|
cities | array | One or more Dutch cities, e.g. ["Amsterdam", "Utrecht", "Den Haag"] |
listingTypes | array | Any of room, apartment, studio; empty = all |
maxRentEur | integer | Max monthly rent in € (Kamernet filters in €100 steps) |
minSizeM2 | integer | Minimum surface in m² |
radiusKm | integer | 1, 2, 5, 10 or 20 km around the city |
sort | string | newest (default), cheapest, most_expensive |
maxListings | integer | Cap per run (default 200) — keeps costs predictable |
fetchDetails | boolean | Full record incl. description, address, deposit, coordinates (default true) |
newListingsOnly | boolean | Monitoring mode: only listings not seen in previous runs of the same search |
language | string | en (default) or nl for title/description |
Minimal example:
{"cities": ["Utrecht"],"maxRentEur": 900,"newListingsOnly": true}
Monitoring mode — how it works
With newListingsOnly enabled, the actor remembers which listing IDs it has already output per search configuration (same cities + filters = same memory). Each run outputs only genuinely new listings — no client-side deduplication needed. Change the filters and you get a fresh memory automatically.
Typical setup: schedule the actor every 15–30 minutes, add the platform's webhook or email integration on new dataset items, and you have a real-time Kamernet alert service for exactly the search you care about.
Export & integrations
Results land in an Apify dataset — export as JSON, CSV, Excel or XML with one click or via API, or connect Zapier, Make, Slack, Google Sheets, webhooks and the other platform integrations.
# Run via API and get JSON backcurl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"cities": ["Amsterdam"], "maxRentEur": 1200}'
Data & fair use
- Only publicly visible listing data is collected — the same information any visitor sees.
- No landlord or account data: advertiser names, photos, IDs and activity are deliberately excluded (GDPR-conscious by design).
- Respectful request rates with modest concurrency; the actor reads Kamernet's lightweight page data rather than hammering search pages.
- Listing descriptions may contain whatever the advertiser wrote; treat them accordingly if you republish.
FAQ
Do I need proxies? No — Kamernet currently works without any proxy. The input has a proxy option as a safety valve should that ever change.
How fresh is the data? It's scraped live at run time, directly from Kamernet's own page data — no caches, no third-party APIs.
A run returned 0 items in monitoring mode — is that a bug? No: it means nothing new appeared since the previous run for that search. That's the signal doing its job.
City name doesn't work? Use the Dutch spelling Kamernet uses (e.g. Den Haag, not The Hague). The actor logs a warning when a city page can't be found.
Support
Found an issue or missing a field you need? Open an issue on the actor's Issues tab — it's monitored continuously and fixes usually ship within hours, not days.