Immowelt Scraper - Germany Real Estate & Agent Leads avatar

Immowelt Scraper - Germany Real Estate & Agent Leads

Pricing

from $0.55 / 1,000 property listings

Go to Apify Store
Immowelt Scraper - Germany Real Estate & Agent Leads

Immowelt Scraper - Germany Real Estate & Agent Leads

Scrape Immowelt.de property listings: rent and purchase price, service charges, rooms, living space, year built, energy class, address, coordinates and photos, plus each listing agency and its contact details. Independent tool, not affiliated with Immowelt.

Pricing

from $0.55 / 1,000 property listings

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by AVIV Germany GmbH or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Immowelt" is referenced only to describe the publicly available website this Actor collects data from.

Turn any Immowelt search into a clean spreadsheet of German property listings - cold rent, warm rent, service charges, deposit, purchase price, rooms, living space, plot size, year built, heating, energy certificate, address and coordinates, every photo and floor plan - plus the estate agency behind each listing with its contact person, phone, website and imprint.

No API key and no login. Give it a city (berlin), a district (berlin-lichtenberg) or paste Immowelt search URLs. Works for apartments, houses, plots of land, temporary and furnished living, and retail units, to rent or to buy.

Why this Immowelt scraper?

Two levels of depth, and you pick per run - so a market survey stays cheap and a shortlist gets everything Immowelt publishes.

DataListing (always)Full detail (opt-in)
Title, price, price label, price per m²
Rooms, living space, availability
District, city, postcode
Photos + photo count, teaser text
Agency name + contact person
Cost breakdown - service charges, heating, warm rent, deposit
Exact street address + latitude / longitude
Year built, condition, heating system, energy source
Energy certificate - class, demand, type, validity
Agency phone, website, imprint URL, profile URL, private-owner flag
Floor plans, videos, 3D-tour flag, documents
Amenities by category + detected features
Plot area, commission text, reference number, listed / updated dates

Full detail is off by default. Switch on Scrape full listing details to enable it; those rows are charged as the detail event instead of the standard one, never on top of it.

Use cases

  • Rental and sale market analysis - cold rent, warm rent, service charges and price per m² across as many districts as you like, in one dataset.
  • Estate-agent lead lists - every listing names the agency and its contact person; with full detail on, you also get the phone, website and imprint. A search doubles as a prospect list for proptech, photography, financing and energy-certificate services.
  • Investment sourcing - filter by price, rooms and living space, then sort by price per m² to find what is mispriced in a district.
  • Energy and building datasets - energy class, demand, heating system, energy source, year built and condition are the columns retrofit, ESG and heat-pump businesses need.
  • New-listing alerts - monitor mode remembers what it has returned, so a scheduled run emits only what is new.
  • Relocation and portfolio tooling - coordinates, exact address, floor plans and amenity lists feed map-based search products.

How to use

  1. Sign up for Apify - the free plan is enough to try this Actor.
  2. Open the Immowelt Scraper, enter one or more locations, choose rent or buy and a property type, and click Start.
  3. Watch listings stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML or RSS - or pull results programmatically through the Apify API.

How deep does a search go?

Read this before you plan a big export - it is the one thing that decides how you should configure a run.

Immowelt does not publish a crawlable "page 2". Its results pages paginate through routes that immowelt.de/robots.txt disallows, so this Actor does not request them. One search page therefore returns the 25-42 listings Immowelt renders on it, not the whole result set.

Two supported ways to get real volume, both using Immowelt's own published pages:

  1. Search narrower places. A city URL and a district URL are each one page of results - but a district page is a much larger share of its own market than a city page is of the city. Pass many district slugs rather than one city.
  2. Turn on Follow Immowelt's related searches. Every results page publishes dozens of narrower searches of its own - top neighbourhoods, nearby towns, room-count splits, property sub-types and feature searches - each with its own result count. With this on, the Actor follows them, bounded by Max search pages.

Input

FieldWhat it does
LocationsCity or district slugs as Immowelt writes them - berlin, muenchen, koeln, berlin-lichtenberg.
Property typesApartments, houses, plots, temporary living, retail units. A pick-list; leave empty for all types.
Deal typeFor rent (mieten) or for sale (kaufen).
Search URLsPaste Immowelt search URLs. A direct /expose/ listing URL also works when full detail is on.
Search URLs from a file or pasted listThe same as a pasted block, or one link to a .txt/.csv/Google Sheet/Drive/key-value-store record.
Scrape full listing detailsOpens each listing's own page for the complete record. Off by default because it costs more per listing.
Follow Immowelt's related searchesDepth, as described above.
Max listings per search / Max listings in total / Max search pagesCaps.
Min/Max price, Min/Max rooms, Min/Max living spaceFilters, applied before billing - filtered listings are never charged.
Only private owners / Only with a floor planFilters. Both need full detail on.
Output fieldsTick exactly the columns you want.
Monitor modeEmit only listings not seen on previous runs. Ideal on a schedule.

Rent listings are matched on the cold rent (Kaltmiete); sale listings on the purchase price.

Output

One row per listing. A rented apartment, with full detail on:

{
"type": "listing",
"classifiedId": "264C9FHP3E4H",
"url": "https://www.immowelt.de/expose/5ea9bbf0-2214-4886-adca-4b54a78b77c6",
"title": "Wohnung zur Miete auf Zeit - Erstbezug",
"dealType": "RENT",
"propertyType": "APARTMENT",
"priceText": "1.799 €/Monat",
"priceLabel": "Kaltmiete",
"price": 1799,
"pricePerSqm": 20.52,
"costs": [
{ "label": "Nebenkosten", "text": "240 €/Monat", "amount": 240 },
{ "label": "Heizkosten", "text": "110 €", "amount": 110 },
{ "label": "Warmmiete", "text": "2.149 €/Monat", "amount": 2149 }
],
"deposit": "3 Nettokaltmieten",
"rooms": 3,
"livingSpaceSqm": 87.7,
"availability": "frei ab sofort",
"yearOfConstruction": 2025,
"condition": "Erstbezug",
"heatingSystem": "Fußbodenheizung",
"energySource": "Fernwärme",
"energyEfficiencyClass": "B",
"energyDemand": "64 kWh/(m²·a)",
"street": "Archenholdstraße 21",
"district": "Friedrichsfelde",
"city": "Lichtenberg",
"zipCode": "10315",
"latitude": 52.50751686007757,
"longitude": 13.50397718192735,
"agencyName": "STRATEGIS AG",
"contactPerson": "Stefan Prill",
"phone": "030 44353300",
"website": "https://www.strategis.eu/",
"publisherType": "AGENCY",
"isPrivateOwner": false,
"imageCount": 27,
"hasVirtualTour": true
}

Three dataset views ship with it: Listings overview, Agency & contact leads, and Building & energy.

Good to know

  • Search pages are read over ordinary HTTP - no browser, and a few seconds per page.
  • Listing detail pages sit behind bot protection. They are fetched over a residential IP and retried on a fresh one if refused - no API key of any kind is needed. This is why full detail is opt-in and costs more per listing than list data. A detail page that still cannot be read is reported and never charged.
  • Robots.txt is honoured. Only /liste/, /suche/ and /expose/ pages are requested. URLs Immowelt disallows (/classified-search?…, /classified-map?…, /classifiedList/, *bff/*, /liste/getlistitems) are skipped and named in the run's status message.
  • wohnen-auf-zeit is rent-only. Immowelt does not publish it for sale, so that combination is skipped before the request and nothing is charged.
  • Some fields depend on the property type. Plots of land carry no room count or living space; houses report a total area and a plot area; only apartments report a floor. Sale listings show no price label on the results page - that arrives with full detail.
  • Coordinates only when the advertiser publishes the address. Immowelt returns an exact point for a published address and an approximate area otherwise. This Actor emits latitude/longitude only for a real point and sets locationIsApproximate: true for the rest - it never invents a coordinate.
  • A run never fails on a transient block. It ends Succeeded with whatever it collected plus a status message explaining what happened, and stops before its own time limit rather than timing out.

Listings on Immowelt name estate agents and, on some listings, private sellers, so the contact columns are personal data. See Data & lawful use below before you use them.

How much does it cost to scrape Immowelt?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Property listing - One property listing returned from an Immowelt search - price, rooms, living space, address, photos and the listing agency. Listings filtered out by your price, room, living-space, owner or floor-plan filters are never charged.
  • Full listing detail - Charged in addition to the listing only when 'Scrape full listing details' is on AND that listing's own page was actually read - full cost breakdown, deposit, year built, heating, energy certificate, exact street address, coordinates, all photos, floor plans and the agency's phone, website and imprint. Immowelt protects listing pages with DataDome, so each one is fetched through Bright Data Web Unlocker. A detail page that could not be read is never charged.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

Automate & schedule

Run this Actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/immowelt-scraper').call({
// your input - see the Input section above
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} records`);

Integrate with any app

Connect the dataset to thousands of apps - no code required:

  • Make - multi-step automation scenarios.
  • Zapier - push new records straight into your CRM or spreadsheet.
  • Slack - get notified when a scheduled run finds something new.
  • Google Drive / Sheets - auto-export every run to a spreadsheet.
  • Airbyte - pipe results into your data warehouse.
  • GitHub - trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this Actor from Claude, ChatGPT or any agent framework through the Apify MCP server - describe the data you need and let the assistant run this Actor for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Related Actors in the same category:

Tips

  • Districts beat cities. Pass ten district slugs instead of one city slug and you will end up with far more of the market for the same number of requests.
  • Two-pass workflow. Survey with full detail off, then re-run with it on over the shortlist - detail rows cost more, so spend them where they matter.
  • Let the site find the depth for you. Turn on Follow Immowelt's related searches and raise Max search pages rather than hand-writing dozens of URLs.
  • Agent prospecting. Deduplicate on agencyName with full detail on to get one row per agency, complete with phone, website and imprint.
  • Watch a district. Monitor mode plus a daily Schedule gives you new listings only, and you pay for nothing else.

FAQ

How is this Actor billed? Pay-per-event: you pay only for the results it delivers, with no monthly rental and no start fee. The per-event price is shown on the Pricing tab.

Can I schedule it and get results automatically? Yes - create a Schedule and add a webhook or an integration (Google Sheets, Slack, Make, Zapier) to push each run's dataset wherever you need it.

Which export formats are available? Every run's dataset can be downloaded as JSON, CSV, Excel (XLSX), XML, HTML or RSS from the Apify Console or the API.

Can I run it from code or an AI agent? Yes - through the Apify API and client libraries, or from Claude, ChatGPT and other assistants via the Apify MCP server.

Is it legal to scrape Immowelt? This Actor collects publicly available data only. You are responsible for using the output in compliance with applicable laws (including data-protection law where personal data is involved) and the source's terms. See Data & lawful use and the Disclaimer below.

Is this an official Immowelt tool? No. It is an independent, third-party Actor with no affiliation to, endorsement by or sponsorship from AVIV Germany GmbH. See the Disclaimer below.

Data & lawful use

This Actor reads public listings and the seller information shown on them. Sellers on Immowelt include private individuals, so seller names, usernames and any contact details are personal data. If you are in the EU or UK you are the data controller for what you do with them: have a lawful basis, use the data for market research, price monitoring or lawful sourcing, honour deletion requests, and do not send private sellers unsolicited marketing.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by AVIV Germany GmbH or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Immowelt" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Immowelt product, is not authorised or certified by AVIV Germany GmbH, and does not distribute Immowelt software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the Actor's Issues tab, or visit the Apify help center. Feature requests are welcome - this Actor is actively maintained.