Kamernet Rentals Scraper & New Listing Alerts
Pricing
from $0.40 / 1,000 rental listing returneds
Kamernet Rentals Scraper & New Listing Alerts
Kamernet rentals in the Netherlands: rooms, studios and apartments for rent, one row per listing with rent, size, furnishing and availability. Monitor a city and get new-listing or rent-below alerts in Slack, Discord or Telegram. No login or key; empty searches are free.
Pricing
from $0.40 / 1,000 rental listing returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Type a Dutch city, get its current rentals from Kamernet: rooms, studios and apartments, one row per listing with the monthly rent, whether utilities are included, size in m², furnishing, the dates it is available and the link. Switch on monitoring and the actor flags new listings and rentals asking less than your limit, then posts them to Slack, Discord or Telegram within minutes of Kamernet showing them.
It reads the public search pages, newest first. No login, no Kamernet account and no key.
Who uses this
- Room and flat hunters who need to be first to message a landlord, and want a Telegram or Discord ping the moment a rental appears in their city under their budget.
- Housing and relocation services that watch rents and supply in Amsterdam, Utrecht, Rotterdam or the whole country in a sheet or an n8n / Make / Clay workflow.
- Researchers and analysts who export current asking rents by city, type and size.
Try it in 30 seconds
Press Start with the pre-filled input. It reads the newest Amsterdam rentals and returns 20 rows:
{ "cities": ["amsterdam"], "propertyType": "any", "maxItems": 20 }
One city per line. A city name, netherlands for the whole country, or a pasted kamernet.nl search link (only its city is used):
amsterdamDen Haaghttps://kamernet.nl/en/for-rent/properties-utrecht
What you get
| Field | Meaning |
|---|---|
listingId, url | Kamernet's listing number and the link to the rental. |
propertyType, street, city | room, apartment or studio; street name (no house number); city. |
rent, rentIncludes | Total monthly rent in EUR and whether utilities are in it. |
sizeM2, furnished | Surface area; furnished, unfurnished or uncarpeted. |
availableFrom, availableTo | Dates the rental is available; the end date is empty for open-ended rentals. |
promoted, imageUrl | Whether the landlord paid for a top spot; the preview photo. |
changeType, previousRent, alertType | With monitoring on: new, price-drop, price-rise or unchanged, the rent seen last time, and the alert that fired. |
Narrow it with property type, highest rent and smallest size, and keep only the city you typed with Only the city I typed (Kamernet's city page also lists neighbouring towns). Filters on rent, size and city are applied after each page is read, because Kamernet ignores them in the search link.
Monitoring: a new-room alert in three steps
- Set the Cities (for example
amsterdam), your Highest rent, and tick Remember listings between runs. Tick Seed silently so the first run only learns what is already listed. - Paste a Discord or Slack webhook, or a Telegram bot link (
https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat id>), into Send alerts to. - Save the input as a Task and add a Schedule every 10 to 15 minutes. Each run reads newest first and stops at the first page it already knows, so a quiet run costs one page and bills nothing.
Alerts are posted only for rows that were billed, a failed message never fails the run, and the webhook link is stored encrypted and never written to the results.
Example runs
Three ready-made starting points. Each is a saved input for this actor.
- Kamernet new room alert, Amsterdam.
{"cities":["amsterdam"],"propertyType":"room","maxRent":900,"cityOnly":true,"deltaMode":true,"skipFirstRun":true,"alertOn":"new-listing","maxItems":50}with a Telegram or Discord link innotifyUrl, on a 10 minute schedule. - Kamernet scraper export.
{"cities":["amsterdam","utrecht","rotterdam"],"propertyType":"any","maxItems":100}once a day, to Google Sheets through the Apify integration. - Rooms for rent in the Netherlands, alert.
{"cities":["netherlands"],"propertyType":"room","maxRent":800,"deltaMode":true,"skipFirstRun":true,"alertOn":"new-listing","maxItems":50}with a webhook innotifyUrl.
Limits, stated plainly
- Only what the public search pages show a logged-out visitor: type, street, city, rent, size, furnishing and availability. Publish date, postcode and minimum stay are on the listing page only, so they are not returned.
- Contacting a landlord needs a Kamernet account and subscription. This actor never logs in, never messages anyone and never reads landlord or tenant details. You get the link and reach out yourself.
- A city search lists neighbouring towns too; turn on Only the city I typed to drop them.
- Each city returns at most 510 rentals (30 pages of 17); a whole-country search returns the newest of them.
- Kamernet's terms restrict automated access to its site. You are responsible for how you use the data.
- Runs on Apify's default datacenter proxy; no residential proxy is needed. Measured 2026-10-28: 50 rentals from 3 page reads in 10 seconds, platform cost about $0.012 per 1,000 rows. A search that finds nothing is never billed.
How to use
- In the Apify Console. Open the actor page and click Start — the
citiesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~kamernet-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"cities":["amsterdam"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"cities": ["amsterdam"]}
One city per line: Amsterdam, Den Haag, or netherlands for the whole country. A pasted kamernet.nl search link works too (only its city is used; pick the property type below). Each city returns one row per rental listing, newest first. Accepted formats: amsterdam, Den Haag, netherlands, https://kamernet.nl/en/for-rent/properties-utrecht.
Output
One row per rental, for example:
| query | found | status | listingId | url | title | propertyType | street | city | rent | rentIncludes | sizeM2 | furnished | availableFrom | availableTo | promoted | imageUrl | checkedAt | changeType | previousRent | alertType | notifyErrors | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| amsterdam | true | OK | <property type> | <rent (eur a month)> | <size (m²)> | <previous rent (eur)> | 1970-01-01T00:00:00.000Z |
A search that finds nothing, a blocked request or a city Kamernet does not know comes back as one row with "found": false and a message, and is never charged.
Pricing
- Rental listing returned: $0.8 per 1,000 listings
Plus a $0.003 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~kamernet-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"cities":["amsterdam"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~kamernet-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"cities":["amsterdam"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~kamernet-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"cities":["{{search}}"]}, mapping the row's search into the cities array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Kamernet Scraper: Rentals & New Listing Alerts" — the agent will find and run this actor.