Immowelt Scraper - German Real Estate Listings avatar

Immowelt Scraper - German Real Estate Listings

Pricing

Pay per usage

Go to Apify Store
Immowelt Scraper - German Real Estate Listings

Immowelt Scraper - German Real Estate Listings

Scrape real estate listings from Immowelt.de — Germany's #2 property portal. Search apartments and houses for sale or rent. Get prices, addresses, rooms, surfaces, energy ratings, photos, and agent details.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Immowelt Scraper

Extract property listings from Immowelt.de — Germany's #2 real estate portal — into structured JSON with prices, locations, rooms, surfaces, energy ratings, photos, and full property details.

What is Immowelt Scraper?

Immowelt Scraper lets you extract structured real estate data from one of Germany's largest property platforms, helping you monitor the market, compare prices, and automate property research — all without manual browsing or login.

  • Track market prices by city and district: extract listings with prices, surface areas, and price-per-m2 to build price maps across German cities
  • Monitor new listings automatically: schedule daily runs to catch new properties the moment they appear
  • Build property datasets for analysis: export thousands of listings for valuation models, investment screening, or academic research
  • Compare rental vs. sale markets: switch between Kaufen and Mieten to analyse yield gaps and rental demand
  • Feed your CRM or dashboard: export structured data to Google Sheets, Airtable, or any BI tool via Apify integrations

Immowelt.de has no public API and no bulk export feature. This scraper is the only way to get structured data out at scale.

What data does Immowelt Scraper extract?

  • Title and full property description
  • Address — street, postal code, city, district
  • Price — asking price for sale or monthly rent
  • Price per m2 — calculated if not provided
  • Listing type — sale or rent
  • Property details — type, rooms, bedrooms, bathrooms, surface (m2), land surface (m2), floor, build year
  • Energy data — energy efficiency rating, consumption value, heating type
  • Condition and availability date
  • Agency/agent name and URL
  • All images — main photo and full gallery
  • Features — amenities and equipment list
  • Direct URL to the listing on Immowelt.de

How to scrape Immowelt data

The input is simple: choose your search criteria and hit run. You can configure the scraper through the Apify Console UI or programmatically via the API.

Input fields

FieldTypeDefaultDescription
startUrlsArrayImmowelt search result URLs or individual listing URLs
searchQueryString"Berlin"City or region to search (e.g., "Muenchen", "Hamburg", "Koeln")
listingTypeString"kaufen""kaufen" (buy) or "mieten" (rent)
propertyTypeString"wohnungen""wohnungen" (apartments), "haeuser" (houses), or "wohnungen-und-haeuser" (all)
maxResultsInteger100Maximum number of listings to return (1-10,000)
proxyConfigurationObjectProxy settings (DE residential recommended)

Tips for best results

  • Use searchQuery for quick location searches: type a city name like "Berlin" or "Muenchen" to target a specific area
  • Use startUrls for advanced filtering: apply filters on Immowelt.de (price range, number of rooms, balcony, etc.), copy the URL, and paste it as a start URL to preserve all filters
  • Proxy is recommended. Immowelt has bot detection. Use DE residential proxy for large runs to avoid rate limits
  • Start with a small maxResults (e.g., 20) to verify the output, then scale up
  • Schedule daily runs to track new listings — Immowelt sees hundreds of new properties per day across Germany

Output

Results are stored in a dataset that you can download in JSON, CSV, Excel, XML, or HTML format directly from the Apify Console.

JSON example

{
"listingTitle": "Wohnung zum Kauf in Berlin-Mitte",
"price": 350000,
"pricePerSqm": 5000,
"currency": "EUR",
"url": "https://www.immowelt.de/expose/2y5e94d",
"scrapedAt": "2026-06-07T10:30:00.000Z",
"listingType": "sale",
"propertyType": "apartment",
"address": "Mitte, Berlin (10115)",
"city": "Berlin",
"postalCode": "10115",
"district": "Mitte",
"latitude": null,
"longitude": null,
"rooms": 3,
"bedrooms": 2,
"bathrooms": 1,
"surface": 70,
"landSurface": null,
"floor": "2. OG",
"buildYear": 1998,
"energyRating": "C",
"energyConsumption": "120 kWh/(m2*a)",
"heatingType": "Zentralheizung",
"condition": "Gepflegt",
"availableFrom": "sofort",
"imageUrl": "https://media.immowelt.de/photos/abc123/1.jpg",
"imageUrls": [
"https://media.immowelt.de/photos/abc123/1.jpg",
"https://media.immowelt.de/photos/abc123/2.jpg",
"https://media.immowelt.de/photos/abc123/3.jpg"
],
"description": "Helle 3-Zimmer-Wohnung in zentraler Lage mit Balkon und Einbaukueche. Naehe U-Bahn Rosenthaler Platz.",
"features": ["Balkon", "Einbaukueche", "Aufzug", "Keller"],
"agencyName": "ABC Immobilien GmbH",
"agencyUrl": "https://www.immowelt.de/anbieter/abc-immobilien"
}

How much does it cost to scrape Immowelt?

Immowelt Scraper uses Playwright (real browser) because Immowelt relies on JavaScript rendering and has anti-bot protections.

ScenarioEst. costTime
20 listings~$0.20~1 min
100 listings~$0.85~5 min
1,000 listings~$8.50~45 min
5,000 listings~$42~3 hrs

Pricing breakdown:

  • Per result: $0.008
  • Start fee: $0.01

Can I integrate Immowelt Scraper with other apps?

Yes. Immowelt Scraper connects with any tool through Apify integrations:

  • Google Sheets — automatically export property data to a spreadsheet
  • Slack / Email — get notified when new listings match your criteria
  • Zapier / Make — trigger workflows when data is ready
  • Airtable — build a searchable property database
  • REST API — call the scraper programmatically from any language
  • Webhooks — get notified when a run finishes

Can I use Immowelt Scraper as an API?

Yes. Use the Apify API to run Immowelt Scraper programmatically.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/immowelt-scraper").call(run_input={
"searchQuery": "Berlin",
"listingType": "kaufen",
"propertyType": "wohnungen",
"maxResults": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['listingTitle']} -- {item['city']} -- EUR {item['price']:,}")

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('studio-amba/immowelt-scraper').call({
searchQuery: 'Berlin',
listingType: 'kaufen',
propertyType: 'wohnungen',
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Check the API tab for full documentation.

FAQ

What is Immowelt.de?

Immowelt.de is one of Germany's largest real estate portals, with hundreds of thousands of active property listings. It covers the entire German market — all 16 Bundeslaender — for both sales and rentals across apartments, houses, commercial properties, and land. It's operated by Immowelt GmbH, part of the AVIV Group (Axel Springer SE).

How does Immowelt Scraper work?

It uses a real browser (Playwright) to load Immowelt search result pages and listing detail pages, extracting structured data from the rendered HTML. Search results are parsed directly from the listing cards for speed, while detail pages are visited for full property information. Pagination is handled automatically.

Can I scrape both sale and rental listings?

Yes. Set listingType to "kaufen" for sales or "mieten" for rentals. You can also filter by property type: "wohnungen" (apartments), "haeuser" (houses), or "wohnungen-und-haeuser" for all types.

Can I filter by price, rooms, or other criteria?

Yes. Apply any filters on Immowelt.de directly, then copy the resulting URL and paste it into startUrls. The scraper will respect all URL parameters including price range, number of rooms, balcony, garden, and more.

This scraper extracts publicly available listing data that Immowelt.de displays to all visitors. The data is factual (prices, addresses, property specifications) and does not contain private personal information. As with any scraping tool, use the data responsibly and in compliance with applicable laws. No login or cookies required.

Limitations

  • Germany only. Immowelt.de covers exclusively German real estate.
  • Browser-based. Uses Playwright, which is slower and more expensive than HTTP-only scrapers — but necessary because Immowelt requires JavaScript rendering.
  • Proxy recommended. Immowelt has bot detection. DE residential proxy is recommended for runs over 100 listings.
  • Some fields may be null. Not all sellers fill in every field — landSurface, buildYear, energyRating, or bathrooms may be missing.
  • Detail page extraction is optional. Search results provide key fields (title, price, rooms, surface, city). For full data (description, images, energy ratings), use startUrls with individual expose URLs.

Other real estate scrapers

Combine Immowelt Scraper with these actors for comprehensive European property market coverage:

Your feedback

Found a bug or have a feature request? Please open an issue on the Issues tab. We actively maintain this scraper and respond to all reports.