ImmoScout24 Search
Search and retrieve property listings from ImmoScout24.de using their mobile API. No browser needed — bypasses DataDome anti-bot completely.
Prerequisites
Requires immoscout Python package:
pip3 install --break-system-packages immoscout
Quick Start
Search listings
# Apartments for sale in Passau area, max €300k, 2+ rooms
python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --min-rooms 2
# Houses for sale in Passau area, max €350k
python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type housebuy --max-price 350000
# JSON output for machine processing
python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --format json
Get expose details (heating, energy, parking)
python3 scripts/immoscout24-search.py --expose 166875438
python3 scripts/immoscout24-search.py --expose 166875438 --format json
Expose details include:
- Heizungsart (heating type): Zentralheizung, Fußbodenheizung, Etagenheizung, etc.
- Energieträger (energy source): Erdgas, Fernwärme, Wärmepumpe, Öl, Pellets, etc.
- Garage/Stellplatz (parking): Tiefgarage, Carport, Stellplatz, etc.
- Baujahr (year built), Objektzustand (condition)
- Energieverbrauchskennwert (energy rating)
- Internal fields:
obj_heatingType, obj_parkingSpace, obj_condition, obj_purchasePrice
Real Estate Types
| Type |
Description |
apartmentbuy |
Apartments for sale (Eigentumswohnung) |
housebuy |
Houses for sale (Haus kaufen) |
apartmentrent |
Apartments for rent (Mietwohnung) |
houserent |
Houses for rent (Haus mieten) |
Region Format
Regions use the path format: /de/{bundesland}/{kreis-oder-stadt}
Common regions:
| Region |
Path |
| Passau (Kreis) |
/de/bayern/passau-kreis |
| Passau (Stadt) |
/de/bayern/passau |
| München |
/de/bayern/muenchen |
| Berlin |
/de/berlin/berlin |
| Hamburg |
/de/hamburg/hamburg |
| Köln |
/de/nordrhein-westfalen/koeln |
| Frankfurt |
/de/hessen/frankfurt-am-main |
Parameters
| Parameter |
Description |
--region |
Region geocode (required for search) |
--type |
Real estate type (default: apartmentbuy) |
--max-price |
Maximum price in EUR |
--min-rooms |
Minimum number of rooms |
--max-pages |
Max result pages to fetch (default: 5, 20 items/page) |
--expose |
Get details for a specific expose ID |
--format |
Output format: text or json |
Typical Workflow for Property Reports
- Search multiple regions and types:
python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --min-rooms 2 --format json > /tmp/is24-apt.json
python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type housebuy --max-price 350000 --format json > /tmp/is24-house.json
- Get expose details for interesting listings to check heating type:
python3 scripts/immoscout24-search.py --expose 166875438 --format json
Filter based on heating, condition, energy rating, parking.
Compile report with URLs, prices, heating info, and location details.
Notes
- Uses IS24 mobile API (
api.mobile.immobilienscout24.de) — no browser or authentication needed
- Rate limiting is lenient but don't hammer it — add small delays between expose lookups
- Listing URLs follow pattern:
https://www.immobilienscout24.de/expose/{id}
- Search returns: id, title, price, area, rooms, address, postcode, published date
- Expose returns: full details including heating, energy, parking, condition, year built
1---2name: immoscout24-search3description: Search ImmoScout24 (Germany) real estate listings using their mobile API. Bypasses anti-bot/DataDome protection. Search apartments, houses for buy/rent with filters. Get full expose details including heating, energy, parking, condition. Use when searching German property listings, checking ImmoScout24 exposes, or building property reports. Triggers on "immoscout", "immobilienscout24", "IS24", "Wohnung kaufen Deutschland", "Haus kaufen Bayern", or any German real estate search.4---56# ImmoScout24 Search78Search and retrieve property listings from ImmoScout24.de using their mobile API. No browser needed — bypasses DataDome anti-bot completely.910## Prerequisites1112Requires `immoscout` Python package:13```bash14pip3 install --break-system-packages immoscout15```1617## Quick Start1819### Search listings2021```bash22# Apartments for sale in Passau area, max €300k, 2+ rooms23python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --min-rooms 22425# Houses for sale in Passau area, max €350k26python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type housebuy --max-price 3500002728# JSON output for machine processing29python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --format json30```3132### Get expose details (heating, energy, parking)3334```bash35python3 scripts/immoscout24-search.py --expose 16687543836python3 scripts/immoscout24-search.py --expose 166875438 --format json37```3839Expose details include:40- **Heizungsart** (heating type): Zentralheizung, Fußbodenheizung, Etagenheizung, etc.41- **Energieträger** (energy source): Erdgas, Fernwärme, Wärmepumpe, Öl, Pellets, etc.42- **Garage/Stellplatz** (parking): Tiefgarage, Carport, Stellplatz, etc.43- **Baujahr** (year built), **Objektzustand** (condition)44- **Energieverbrauchskennwert** (energy rating)45- Internal fields: `obj_heatingType`, `obj_parkingSpace`, `obj_condition`, `obj_purchasePrice`4647## Real Estate Types4849| Type | Description |50|------|-------------|51| `apartmentbuy` | Apartments for sale (Eigentumswohnung) |52| `housebuy` | Houses for sale (Haus kaufen) |53| `apartmentrent` | Apartments for rent (Mietwohnung) |54| `houserent` | Houses for rent (Haus mieten) |5556## Region Format5758Regions use the path format: `/de/{bundesland}/{kreis-oder-stadt}`5960Common regions:61| Region | Path |62|--------|------|63| Passau (Kreis) | `/de/bayern/passau-kreis` |64| Passau (Stadt) | `/de/bayern/passau` |65| München | `/de/bayern/muenchen` |66| Berlin | `/de/berlin/berlin` |67| Hamburg | `/de/hamburg/hamburg` |68| Köln | `/de/nordrhein-westfalen/koeln` |69| Frankfurt | `/de/hessen/frankfurt-am-main` |7071## Parameters7273| Parameter | Description |74|-----------|-------------|75| `--region` | Region geocode (required for search) |76| `--type` | Real estate type (default: apartmentbuy) |77| `--max-price` | Maximum price in EUR |78| `--min-rooms` | Minimum number of rooms |79| `--max-pages` | Max result pages to fetch (default: 5, 20 items/page) |80| `--expose` | Get details for a specific expose ID |81| `--format` | Output format: `text` or `json` |8283## Typical Workflow for Property Reports84851. **Search** multiple regions and types:86```bash87python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type apartmentbuy --max-price 300000 --min-rooms 2 --format json > /tmp/is24-apt.json88python3 scripts/immoscout24-search.py --region /de/bayern/passau-kreis --type housebuy --max-price 350000 --format json > /tmp/is24-house.json89```90912. **Get expose details** for interesting listings to check heating type:92```bash93python3 scripts/immoscout24-search.py --expose 166875438 --format json94```95963. **Filter** based on heating, condition, energy rating, parking.97984. **Compile report** with URLs, prices, heating info, and location details.99100## Notes101102- Uses IS24 mobile API (`api.mobile.immobilienscout24.de`) — no browser or authentication needed103- Rate limiting is lenient but don't hammer it — add small delays between expose lookups104- Listing URLs follow pattern: `https://www.immobilienscout24.de/expose/{id}`105- Search returns: id, title, price, area, rooms, address, postcode, published date106- Expose returns: full details including heating, energy, parking, condition, year built