# Willhaben Immobilien Listing Scraper

Free template. Extract rental prices, floor area, room counts, providers and prices per square meter from willhaben apartment searches. Export to Excel or CSV without coding.

- Template page: [https://www.octoparse.com/template/willhaben-immobilien-listing-scraper](https://www.octoparse.com/template/willhaben-immobilien-listing-scraper)
- Categories: Real Estate
- Status: `PUBLISHED`
- Run mode: `BOTH`

## Pricing

Free.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from web pages.

## Output

The current workflow extracts 11 fields, including `Adresse`, `Anbieter`, `Anzeige_URL`, `Fläche`, `Kategorie`, `Merkmale`, `Preis`, `Preis_pro_m_`, `Seite`, `Titel`, `Zimmer`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete Listing Page URLs (up to 20,000), Maximum Pages per URL and start the template in local or cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Listing Page URLs (up to 20,000)

Required. Listing Page URLs (up to 20,000) Constraints: minItems=1; maxItems=20000; items.minLength=1; items.maxLength=10000.

### Maximum Pages per URL

Optional. Maximum Pages per URL Constraints: minimum=1, maximum=10000.

## How to Use

# Willhaben Immobilien Listing Scraper

Collect rental apartment listings from willhaben by pasting a filtered rental search URL. Use the export to compare asking rent, floor area, price per square meter and provider across regions.

- **Input:** Filtered search URLs for rental apartments.
- **Output:** 11 fields, including address, floor area, room count, provider, price and price per square meter.
- **Scope:** Search results up to **Maximum Pages per URL**. Listings per page can vary.
- **Export:** Excel, CSV, HTML, JSON or XML; Google Sheets; SQL Server, MySQL, Oracle or PostgreSQL; Google Drive, Dropbox or Amazon S3.

## Requirements and cost

The template is free. **Cloud runs require IP Proxy. Enable it in the Octoparse app. Where available, use a fixed proxy location in a German-speaking region.** **Octoparse IP Proxy is a paid option and uses credits at $3 per GB.** See [IP Proxy setup and pricing](https://helpcenter.octoparse.com/en/articles/6470932-set-up-ip-proxies).

## Run the template

1. Open **Willhaben Immobilien Listing Scraper** and sign in to Octoparse.
2. Enter a filtered rental apartment search URL, for example:
   `https://www.willhaben.at/iad/immobilien/mietwohnungen/mietwohnung-angebote?areaId=6`
3. Set **Maximum Pages per URL** to the maximum number of results pages per URL. Check one results page to estimate export size: **Estimated listings ≈ pages × listings per page.**
4. Run the task.
5. Export the data.

## Tips for cleaner results

- **Keep the region filter:** Select an Austrian federal state in the rental search. The Styria example uses `areaId=6`. Reopen the copied URL to confirm the intended region is still selected.
- **Mark missing values:** Treat blank `Zimmer` or `Merkmale` values as not stated. Count missing feature information separately when estimating how many listings include a balcony.
- **Match listings across exports:** Keep one row per `Anzeige_URL` in each export. Use the same search filters in both runs when looking for newly observed listings. Use `Anzeige_URL` as the deduplication key.
- **Parse prices:** Exported labels are in German. Parse `€ 18,08/m²` as `18.08` euros per square meter.
- **Missing listings:** Open the input URL in a browser to check which listings are still available, and check the page limit.
- `Mietwohnung` means rental apartment; `Genossenschaft` means housing cooperative.

## Fields and uses

| Fields | Use |
|---|---|
| `Adresse`, `Fläche`, `Preis_pro_m_` | Compare asking rents per square meter by postal code and similar floor area; use as a benchmark. |
| `Zimmer`, `Merkmale`, `Preis` | Count listings that fit budget, room-count and feature requirements; assess options in the area. |
| `Anbieter`, `Anzeige_URL`, `Adresse` | Track where housing cooperatives or agents add listings; repeated searches show provider activity. |

The template takes publicly visible willhaben page URLs as input; no willhaben API key is required.

## Work with willhaben data in an AI assistant (MCP)

Connect Octoparse to Claude, ChatGPT or Cursor with Octoparse MCP. Example prompt:

> Group the rental apartments in the Willhaben Immobilien Listing Scraper results by postal code. For each group, calculate the median asking rent per square meter from `Preis_pro_m_` and report the number of listings.

Set up Octoparse MCP: https://www.octoparse.com/mcp

## Legal requirements

Collect publicly visible information and follow the platform’s terms and applicable privacy rules. Seek legal advice if you are unsure how those rules apply to your use.

- willhaben terms of use: https://www.willhaben.at/iad/nutzungsbedingungen
- Web scraping legal overview: https://www.octoparse.com/blog/is-web-crawling-legal-well-it-depends

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Immowelt Immobilien Listing Scraper](https://www.octoparse.com/template/immowelt-immobilien-listing-scraper)
- [Willhaben Job Scraper (Listing)](https://www.octoparse.com/template/willhaben-job-scraper-listing)
- [Willhaben Auto Listing](https://www.octoparse.com/template/willhaben-auto-listing)
- [Willhaben Job Scraper (Details)](https://www.octoparse.com/template/willhaben-job-scraper-details)
- [Booking.com Hotel Listing Scraper](https://www.octoparse.com/template/booking-com-scraper)

## Input Schema

```json
{
  "title": "Willhaben Immobilien Listing Scraper input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "listing_Page_URLs": {
      "title": "Listing Page URLs (up to 20,000)",
      "description": "Listing Page URLs (up to 20,000)",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 10000
      },
      "minItems": 1,
      "maxItems": 20000,
      "x-octoparse": {
        "apiEnabled": true
      }
    },
    "maximum_Pages_per_URL": {
      "title": "Maximum Pages per URL",
      "description": "Maximum Pages per URL",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000,
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": [
    "listing_Page_URLs"
  ]
}
```

## Input JSON Example

No verified real input/output examples are currently available.


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "Adresse": {
      "type": "string",
      "description": ""
    },
    "Anbieter": {
      "type": "string",
      "description": ""
    },
    "Anzeige_URL": {
      "type": "string",
      "description": ""
    },
    "Fläche": {
      "type": "string",
      "description": ""
    },
    "Kategorie": {
      "type": "string",
      "description": ""
    },
    "Merkmale": {
      "type": "string",
      "description": ""
    },
    "Preis": {
      "type": "string",
      "description": ""
    },
    "Preis_pro_m_": {
      "type": "string",
      "description": ""
    },
    "Seite": {
      "type": "string",
      "description": ""
    },
    "Titel": {
      "type": "string",
      "description": ""
    },
    "Zimmer": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Willhaben Immobilien Listing Scraper output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

No verified real input/output examples are currently available.

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

No verified real input/output examples are currently available.

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `willhaben-immobilien-listing-scraper`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/willhaben-immobilien-listing-scraper.json)
- [Manifest](https://www.octoparse.com/templates/willhaben-immobilien-listing-scraper-manifest.json)
