Immowelt Scraper for German Property Listing Data

We build and run the crawler, resolve every Immowelt geo id and expose UUID, and hand back Immowelt data on your schedule as CSV, JSON, XLSX or an API.

Plans from €169/month · Free project assessment · Reply within 1 business day

Immowelt Scraper
Solutions

Delivery and scheduling

You describe the target - regions, segments, fields, frequency. We build the crawler, run it, and keep it working when Immowelt changes its markup. Output arrives as CSV, JSON, XLSX or an API endpoint, on the schedule you set: once, nightly, or several times a day for fast-moving city rentals.

The schema is fitted to your side, not ours. Column names, units, currency handling, one row per expose or one row per expose per run for change tracking, and the UUID kept intact so the data joins to what you already hold. When a page does not serve on a given run, the record is marked as not collected rather than filled with a guess.

Fields we extract from an Immowelt expose

An Immowelt expose prints the seller's declared numbers and the portal's own computed ones in one layout. A usable extract keeps them apart.

  • Rent block - Immowelt shows Warmmiete (gross rent) first, then a row labelled davon Kaltmiete zzgl. Nebenkosten (of which base rent plus service charges), then Nebenkosten on its own line, and a note reading Heizkosten in Warmmiete enthalten when heating is bundled. We split that composite row into separate numeric columns and keep the heating flag.
  • Sale block - Kaufpreis (purchase price), price per square metre, Provision (agent commission) with the percentage sentence beside it, plus Kaufnebenkosten (incidental purchase costs).
  • Portal estimates - Immowelt labels Geschätzte Gesamtkosten (estimated total cost) as its own calculation, and we mark those cells so an estimate is never read as a declared number.
  • Extras - Zusaetzliche Kosten entries such as Miete pro Stellplatz (parking space rent), and Kaution (deposit), which arrives as free text, not a number.
  • Size and layout - Wohnflaeche (living area), Grundstuecksflaeche (plot area), Zimmer (rooms), floor, and the availability line frei ab with its date.
  • Bausubstanz und Energie - Baujahr (year built), the Energieausweis class, Zustand der Immobilie (condition), Heizungsart (heating type) and Wesentliche Energieträger (main energy sources). Where the seller filled none of it in, the block says so, and we record that absence.
  • Merkmale - the feature chips, such as Einbaukueche, Personenaufzug, Tiefgarage and Terrasse.
  • Provider - the publishing company or person, plus the role label Immowelt prints beneath it, such as Maklerbüro.
  • Location - municipality and postcode. Many sellers withhold the street, and the expose then states that the exact address was not released. We carry that as a status, not an empty field.
  • Media - the numbered gallery and the Grundrisse (floor plans) group, kept apart from the photographs.

Fields we extract from an Immowelt expose
Identifiers, geography and the search grammar

Identifiers, geography and the search grammar

Immowelt identifies a listing with a UUID. An expose URL reads /expose/0af2db2b-9b04-43e5-b8dc-6f63c12f7120. Older project listings still use a short code instead, as in /projekte/expose/k2dc732. The UUID is the join key we carry into every delivery.

Geography sits in a token at the end of the search path, and the prefix marks the level. ad04de is a Bundesland (bayern/ad04de9), ad06de a Kreis (harburg-03353/ad06de37), ad08de a city or municipality (munchen-80331/ad08de6345), and ad09de or nbh2de a Stadtteil (stuttgart-70173/botnang-70195/ad09de353). The number inside the slug is not decoration: at Kreis level it is the five-digit official Kreisschlüssel, as in recklinghausen-05562, while city and Stadtteil slugs carry a Postleitzahl.

The same token drives the search URLs. Munich is ad08de6345 in the readable path and AD08DE6345 as the locations value in a parameterised search URL. Filters ride in the path as stacked segments - privat, ohne-provision, wbs-ja, wohnen-auf-zeit, wohngemeinschaft, zimmer-3, guenstig. We build the crawl frontier from these, so a brief such as two-room rentals from private sellers in three Stadtteile of Leipzig becomes a concrete list of URLs rather than a search box someone has to drive by hand.

What Immowelt is and who runs it

Immowelt runs immowelt.de, a German property portal operated by AVIV Germany, part of the Aviv Group. The corporate structure matters when you plan a crawl. In 2015 the Bundeskartellamt cleared a joint venture that placed immowelt.de and immonet.de under the same roof, and the two catalogues have been converging ever since.

That convergence is now visible on the wire. Every immonet.de path now redirects to www.immowelt.de, so immonet is no longer a separate source and collection targets immowelt directly. The path is discarded and only the query string survives, so a request for /immobiliensuche/sel.do?suchart=2&city=87991 lands on the Immowelt home page rather than on an equivalent Immowelt search. Anyone still treating immonet.de as a second German source is collecting a redirect. One Immowelt scraper now covers what used to be two targets.

The portal splits its inventory three ways at the top of the URL: mieten for rentals, kaufen for sales and zwangsversteigerung for forced auctions. Beneath those sit the residential types and a full commercial set - office, retail, warehousing, hospitality, agriculture and parking. The sitemap index at /sitemaps/sitemap_index.xml listed 204 sitemap files, and each file is one facet of that catalogue.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Immowelt Scraping Plans and Pricing

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Delivery: CSV, JSON or XLSX files, our API or a JSON feed. MCP server on request.

Full plan details →

Why teams scrape Immowelt

A single snapshot answers what is on the market today. Repeat collection answers what the market is doing. Because each expose keeps a stable UUID, the same listing can be matched across runs, and the differences become the dataset: a Kaltmiete cut, a Provision that changed, a listing that vanished, a listing that came back.

Analysts use Immowelt price series to calibrate valuation models against asking levels at Gemeinde and Stadtteil resolution. Developers size local demand before committing to a site. Agencies watch competitor inventory - which Makler (estate agents) are adding stock, which are letting listings age, which are cutting asking rents. Proptech teams use the feed to seed their own search products.

The private-seller split is the part that usually goes unused. Immowelt exposes a privat facet in the URL, so private listings can be counted as a real share of a local market instead of estimated. The ohne-provision facet does the same for commission-free stock, which is a direct read on how much of a market moves without an agent. Both survive into the delivered rows as flags, so the split can be cut by region and by month.

Related Case Studies

230,000 Daily Rows Standardized Across 5 EU Property Sites

230,000 Daily Rows Standardized Across 5 EU Property Sites

Monitoring of real estate listings on funda.nl, pararius.com, rentberry.com, rentola.com, and zimmo.be to support the growth of a European property portal.

Learn More about 230,000 Daily Rows Standardized Across 5 EU Property Sites
85K Rows of Houses/Day Into CRM via API - Set up in 7 Days

85K Rows of Houses/Day Into CRM via API - Set up in 7 Days

Daily detection of new private property listings in Switzerland on Homegate.ch and ImmoScout24.ch, giving the agency first access to high-value leads.

Learn More about 85K Rows of Houses/Day Into CRM via API - Set up in 7 Days
226K Listings + 3.4m Images from Immobilienscout24

226K Listings + 3.4m Images from Immobilienscout24

Scraping residential listings from Immobilienscout24.de in Germany and Mallorca, including complete data and resized images.

Learn More about 226K Listings + 3.4m Images from Immobilienscout24
Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

Scraping Property Portals by Region: Best Real Estate Platforms That Actually Matter

Scraping Property Portals by Region: Best Real Estate Platforms That Actually Matter

Real estate teams work in a fragmented data landscape. The sites that drive demand in Boston look nothing like the ones that matter in Berlin, São Paulo, Dubai, or Mumbai.

7 Real Estate Websites to Scrape in 2026: Plus 2 Hidden Gems

7 Real Estate Websites to Scrape in 2026: Plus 2 Hidden Gems

Real estate teams are operating in a data environment that is bigger, faster, and more fragmented than ever. Listings go live and disappear in hours, price cuts happen quietly, and the portals that matter most in each country are rarely the same global “top 5.”

Benefits of Web Scraping for Real Estate: 6 Use Cases From Our Projects

Benefits of Web Scraping for Real Estate: 6 Use Cases From Our Projects

October 9, 1180

Six jobs that scraped property data does, each backed by a ScrapeIt project: seller leads, listing monitoring, image datasets, weekly market supply, sold records and unit-level rentals. For every use case - the fields it needs and how often to refresh them.

scrapeit logo

About ScrapeIt

ScrapeIt is a managed web scraping agency. We are not selling a library, a proxy pool or a dashboard you have to learn. We agree the fields with you, build the crawler, run it on your schedule and repair it when the source changes. You receive data, not maintenance work. Most Immowelt projects start with one region and one segment, then widen once the schema has been checked against real rows.

FAQ

Do you offer an Immowelt API?

Yes. The ScrapeIt Immowelt API returns Kaltmiete, Nebenkosten and Warmmiete, Kaufpreis and Provision, Wohnflaeche, Zimmer, the Energieausweis class and the expose UUID as JSON from an endpoint we host, refreshed on the schedule you set. The same data also comes as CSV or XLSX files or straight into your database.

Is it legal to scrape Immowelt?

Yes. We collect only publicly available data - the rent and sale blocks, Wohnflaeche, Zimmer, the Energieausweis class, feature chips and the provider a visitor can see on Immowelt - and we collect it legally, without log-ins. Search paths serve simple requests, while expose detail pages sit behind bot protection, so detail collection runs through a real browser engine at a measured rate, and a page that will not serve is marked rather than invented.

Will the data include seller and agent names or phone numbers?

Only if you ask for it. Immowelt listings can carry a named private seller or a named contact at a Maklerbüro, so the provider block is the one place where output can touch personal data. Our default is listing and commercial data - price, size, rooms, location, features, dates, listing id and the provider's company name. Personal contact details can be excluded on request, and the provider block can be suppressed entirely. Under the GDPR you are the controller for whatever you choose to store, so the scope is worth deciding before the first run rather than after. We build the extract to the boundary you set.

How do you handle listings that disappear?

Immowelt takes an expose down once the property is let or sold, and the UUID is what lets you notice. Each run records which ids were still present in the result pages, so a listing that stops appearing is dated rather than quietly dropped. From that you get time on market and a price change history per listing. We also flag likely relistings by matching municipality, Wohnflaeche, Zimmer and provider across runs, which catches a property that returns under a different id. Historical rows are kept rather than overwritten, so the series stays auditable.

How much can you collect, and how do I check the numbers?

Coverage is defined by the URL set, not by a quota. Immowelt prints its own result count in the page title, which gives you a check against our row counts: the Berlin rental search read 6.808 Angebote, Munich 2.656 and Hamburg 3.058. Those figures move daily, so treat them as measurements with a date attached, not as constants. Depth is the part that needs care. On the readable /suche/ path a page parameter did not change what the server returned in our test, so we get depth by splitting geography instead - ad06de Kreis, then ad08de Gemeinde, then ad09de or nbh2de Stadtteil - until each slice is small enough to walk to the end.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

Immowelt data from €169/month. Free project assessment, reply within 1 business day.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582