# WG-Gesucht Scraper \[Only $2/1k💰] | WG Rooms | Rent | Germany (`ahmed_jasarevic/wg-gesucht-de-scraper`) Actor

Extract WG-Zimmer flatshare and 1-Zimmer-Wohnung listings from WG-Gesucht.de: rent, warm/cold costs, size, district, availability, and contact data as structured JSON. For German housing market research, rent price monitoring, and student accommodation.

- **URL**: https://apify.com/ahmed\_jasarevic/wg-gesucht-de-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## WG-Gesucht Scraper — Extract German Flatshare & Rental Listings

Extract WG-Zimmer flatshare and 1-Zimmer-Wohnung listings from WG-Gesucht.de, Germany's largest room-sharing marketplace, for **rental price monitoring, student accommodation research, and German housing market analysis**.

### Main Use Cases

- **WG-Zimmer price monitoring** across Berlin, München, Hamburg, Köln, Frankfurt and 200+ German cities
- **Student accommodation research** — the platform's core audience is students looking for flatshare rooms
- **Building structured flatshare databases** for German housing market analysis and Mietspiegel-style research
- **Relocation support** for employees and internationals moving to German cities
- **1-Zimmer-Wohnung and studio apartment extraction** for rental market comparison
- **New listing alerts** — track newly published rooms and their asking rents over time

### How It Works

The actor runs a Cheerio crawler over the publicly available, server-rendered search pages of WG-Gesucht.de. In `basic` mode it extracts the full listing card of every search result (rent, size, district, availability, contact name). In `full` mode it additionally opens each listing detail page to capture cost breakdowns (deposit, utilities, buyout), photos, full description and the advertiser's phone number.

German number formats are parsed automatically: `1.234,56 €` becomes the number `1234.56`, so rent comparisons and price analysis work without manual cleaning. Pagination is followed automatically for every search URL you provide.

### Extract Flatshare Listings For German Housing Market Research

Every WG-Zimmer listing is returned with structured fields: rent in euros, room size in m², type of WG (2er WG, 3er WG, …), city, district, street, availability date and the advertiser's public name. The `full` mode adds deposit, utilities, buyout amount, room photos and telephone contact.

Typical outputs from a real test run:

| City | District | Rent | Size | Type |
|------|----------|------|------|------|
| Berlin | Lichterfelde | 400 € | 26 m² | 8er WG |
| München | Bogenhausen | 795 € | 13 m² | 4er WG |
| Hamburg | Winterhude | 700 € | 15 m² | 2er WG |
| Köln | Sülz | 640 € | 18 m² | WG |
| Halle (Saale) | Nördliche Innenstadt | 180 € | 20 m² | 6er WG |

### Monitor WG-Zimmer Prices Across German Cities

Average warm WG rents in major German cities (Moses Mendelssohn Institute Mietspiegel, 2026, via Studis Online):

| City | Average warm WG rent |
|------|----------------------|
| München | 800 € |
| Frankfurt am Main | 694 € |
| Berlin | 650 € |
| Hamburg | 650 € |
| Köln | 620 € |

Running this actor weekly on city search URLs produces a time series of actual asking rents — a ground-truth dataset for Mietspiegel comparisons, neighborhood trend detection and budget planning for students and tenants.

### Build A Student Accommodation Database

WG-Gesucht.de is where most German students find their first WG-Zimmer. Collect the full flatshare offering of a university city — including WG type, room size, availability date and rent — and build your own student housing database for university services, relocation offices or dormitory planning research.

### Extract 1-Zimmer-Wohnung & Apartment Listings

The same crawler works on the `1-zimmer-wohnungen` category of WG-Gesucht.de. Pass a category search URL (e.g. `1-zimmer-wohnungen-in-Muenchen.91.1.1.0.html`) and get studio apartments with rent, size, district and contact data. Useful for comparing studio vs flatshare prices in the same city.

### Input: Configure Your WG-Gesucht Search

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `startUrls` | array of objects | ✅ | — | WG-Gesucht search/listing page URLs. The actor follows pagination automatically. |
| `maxItems` | integer | — | `50` | Maximum number of listings to extract per run. |
| `detailLevel` | enum `full` / `basic` | — | `basic` | `basic` scrapes search-result cards only; `full` opens each listing page for contact data, costs and photos. |
| `proxyConfiguration` | object | — | `{ "useApifyProxy": true }` | Apify proxy with automatic retries; works without configuration. |

Example `startUrls` for major cities (verified against live WG-Gesucht.de pages):

```json
[
  { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html" },
  { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Muenchen.90.0.1.0.html" },
  { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Hamburg.55.0.1.0.html" },
  { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Koeln.73.0.1.0.html" },
  { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Frankfurt-am-Main.41.0.1.0.html" }
]
```

### Output: Flatshare Listings With Rent, Size & Contact Data

`basic` mode dataset fields:

| Field | Description |
|-------|-------------|
| `listingId` | WG-Gesucht listing identifier |
| `title` | Listing title |
| `url` | Direct link to the listing |
| `rent` | Rent in euros (German format parsed: `640` for `640 €`) |
| `size` | Room size in m² |
| `availableFrom` | Availability date or date range |
| `wgType` | Type of WG (e.g. `3er WG`, `6er WG`) |
| `city` | City of the listing |
| `district` | District/neighborhood |
| `street` | Street address |
| `contactName` | Advertiser's public name |
| `detailLevel` | `basic` or `full` |

`full` mode additionally returns (per listing page): `costs.rent`, `costs.utilities`, `costs.otherCosts`, `costs.deposit`, `costs.buyout`, `totalRent`, `roomSize`, `apartmentSize`, `wgTypes`, `wgDetails`, `objectDetails`, `photos`, `description`, `locationDescription`, `wgLifeDescription`, `otherDescription`, and `contact.telephone` / `contact.mobile`.

### Example Input

```json
{
  "startUrls": [
    { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html" }
  ],
  "maxItems": 20,
  "detailLevel": "basic",
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Example Output

```json
[
  {
    "listingId": 13104000,
    "title": "Gemütliches WG-Zimmer in heller Altbauwohnung, zentral und ruhig",
    "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin-Lichterfelde.13104000.html",
    "rent": 400,
    "size": 26,
    "availableFrom": "01.10.2026",
    "wgType": "8er WG",
    "city": "Berlin",
    "district": "Lichterfelde",
    "street": "Königsberger Straße 30",
    "contactName": "Julia",
    "detailLevel": "basic"
  }
]
```

### Integrations And Automation For Recurring Rent Monitoring

- **Apify API** — run the actor programmatically from any application
- **Webhooks** — receive a push notification whenever a new run finishes
- **Zapier / Make / Pipedream** — connect dataset output to spreadsheets, Slack or databases
- **Scheduled runs** — set a weekly or monthly schedule for continuous rent time series. Running regularly also improves the actor's Apify Store recommendation signals.

Recommended schedule: weekly for price monitoring (rents move slowly), daily for new-listing alerts.

### Related Actors

- [WG-Gesucht Property Scraper](https://apify.com/sian.agency/wg-gesucht-property-scraper) — the largest WG-Gesucht actor on Apify; property and flatshare search with multiple modes
- [WG-Gesucht Scraper](https://apify.com/logiover/wg-gesucht-scraper) — flatshare listing extraction with contact details
- [Kleinanzeigen Scraper](https://apify.com/ahmed_jasarevic/kleinanzeigen-scraper) — German classifieds including real estate and rentals for cross-portal comparison
- [ImmoScout24 Scraper](https://apify.com/benthepythondev/immobilienscout24-scraper) — Germany's #1 property portal for full apartments
- [Willhaben Scraper](https://apify.com/ahmed_jasarevic/willhaben-scraper) — Austrian property and classifieds for DACH-region coverage

### FAQ

#### Why use this actor instead of the official WG-Gesucht API?

WG-Gesucht.de does not offer a public API for listing data. Researcher access is limited to manual browsing and the site's internal (unstable, undocumented) endpoints. This actor provides a stable alternative: it reads the same public pages a human sees and returns clean structured JSON — a de facto **WG-Gesucht API alternative** for rental data.

#### Is scraping WG-Gesucht.de legal?

The actor accesses only publicly available pages, with no login bypass, no CAPTCHA solving and no access to non-public data. You are responsible for complying with WG-Gesucht's Terms of Service and applicable data-protection law (GDPR for personal data) in your use of the extracted data. See the disclaimer below.

#### What do Kaltmiete and Warmmiete mean in the data?

WG-Gesucht lists a base rent (`Kaltmiete`) and in some listings a warm rent (`Warmmiete`) that includes heating and utilities. The `rent` field is the base rent as displayed; the `full` mode `costs` block separates utilities, other costs, deposit and buyout — exactly what a tenant pays on top.

#### How much does a WG-Zimmer cost in Berlin or München?

According to the Moses Mendelssohn Institute Mietspiegel 2026 (via Studis Online), average warm WG rents are about 650 € in Berlin and 800 € in München. Actual asking rents vary strongly by district — running this actor on city URLs gives you the real, current distribution instead of averages.

#### How can I monitor WG-Zimmer rents over time?

Run the actor on the same city search URL weekly (scheduled runs), store the outputs in a dataset, and compare `rent` by district. The actor parses German number formats, so the rent fields are directly usable in calculations.

#### Which German cities are supported?

Every city WG-Gesucht hosts — the actor works with any `wg-zimmer-in-<City>.<cityId>.0.1.0.html` search URL. Verified IDs include Berlin `8`, München `90`, Hamburg `55`, Köln `73`, Frankfurt am Main `41`, Halle (Saale) `54`.

#### Can I get contact data from WG-Gesucht listings?

Yes — set `detailLevel: "full"`. Each listing page returns the advertiser's public name and, where published, telephone and mobile number. Note that this is personal data: comply with GDPR and do not use it for unsolicited outreach.

#### Can this actor extract 1-Zimmer-Wohnungen (studios) too?

Yes. Pass a `1-zimmer-wohnungen-in-<City>.<cityId>.1.1.0.html` URL (e.g. Münster `91`) and the same extraction pipeline returns studio apartment listings.

#### What are the best German flatshare marketplaces?

WG-Gesucht.de is the largest dedicated German flatshare marketplace. Alternatives include ImmoScout24, Immowelt and Kleinanzeigen — all covered by related Apify actors for cross-portal comparison.

#### How fast is the actor?

A basic run over one city page completes in ~3-5 seconds. Full-detail mode takes longer because every listing page is fetched individually — budget roughly one request per listing in that mode.

#### Do I need Apify proxy credentials?

No. The actor uses the Apify proxy with automatic rotation and retries by default (`useApifyProxy: true`). It works out of the box on all Apify plans.

#### How often should I run the actor?

Weekly for rent/market monitoring, daily if you want new-listing alerts. Because the actor is pay-per-result only (no charges for empty runs beyond the tiny start fee), frequent small runs stay cheap.

### SEO Keywords

wg gesucht scraper, wg zimmer berlin, wg zimmer münchen, wg zimmer hamburg, wg zimmer köln, wg zimmer frankfurt, flatshare germany data, german housing market data, wg gesucht api alternative, rental price monitoring germany, student accommodation daten, wg zimmer preise, mietspiegel daten, 1-zimmer-wohnung münster, german rental data, wg gesucht datenbank, wg zimmer finden, wg preisvergleich städte, deutschland wg marktdaten, wg zimmer verfügbarkeit, zwischenmiete daten, wg gesucht kontakt daten, mietpreise deutsche städte, wohngemeinschaft daten export

### For AI Agents & LLM Apps

**Purpose:** Returns structured WG-Gesucht.de flatshare listings (rent, size, district, availability, contact) plus optional full detail-page data (costs, photos, phone) for German housing market analysis.

**Minimal working input:**

```json
{
  "startUrls": [
    { "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html" }
  ],
  "maxItems": 10,
  "detailLevel": "basic"
}
```

**Variant inputs:** city search + `detailLevel: "full"` to fetch cost breakdowns, photos and phone contacts from each listing page; or a `1-zimmer-wohnungen-in-<City>.<cityId>.1.1.0.html` URL for studio apartments.

**Output fields (basic):** `listingId`, `title`, `url`, `rent` (number), `size` (m² number), `availableFrom`, `wgType`, `city`, `district`, `street`, `contactName`, `detailLevel`. Full mode adds `costs.rent/utilities/otherCosts/deposit/buyout`, `totalRent`, `roomSize`, `apartmentSize`, `wgTypes`, `wgDetails`, `objectDetails`, `photos[]`, `description`, `locationDescription`, `wgLifeDescription`, `otherDescription`, `contact.publicName/companyName/telephone/mobile/verifiedUser`.

**Behaviors an agent should know:**

- `maxItems` caps the number of listings returned — it is a cost guard; leaving it unset defaults to `50` (the input schema default).
- `detailLevel` defaults to `"basic"` per the input schema; the implementation falls back to `"full"` if the field is absent from the input object, which cancels more billed requests — always set it explicitly to control cost.
- German number formats are pre-parsed: `"1.234,56 €"` → number `1234.56`; `rent` and `size` are numeric for direct comparison.
- Run costs: $0.0005 per start + $0.002 per basic listing + $0.004 per full listing. Full mode ≈ 2× the result price of basic mode.
- Prefer specific city URLs (verified city IDs: Berlin `8`, München `90`, Hamburg `55`, Köln `73`, Frankfurt am Main `41`) over site-wide searches for faster, cheaper runs.

### Legal & Compliance Disclaimer

This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by WG-Gesucht.de** (WG-Gesucht GmbH). It accesses only information that is publicly available on wg-gesucht.de pages — it performs no login bypass, no CAPTCHA solving and no access to non-public data.

Users are responsible for complying with WG-Gesucht.de's Terms of Service and applicable data-protection law. Because listings may include personal data (advertiser names and, in full mode, telephone numbers), processing is subject to the GDPR when the data relates to individuals in the EU; personal data returned by this actor should not be used for unsolicited commercial outreach in violation of applicable law.

This README provides factual information about what the actor does; it does not constitute legal advice.

# Actor input Schema

## `startUrls` (type: `array`):

WG-Gesucht search/listing page URLs to start from (e.g. https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html). The actor follows pagination automatically.

## `maxItems` (type: `integer`):

Maximum number of listings (detail pages) to scrape. The actor follows pagination automatically until this limit is reached.

## `detailLevel` (type: `string`):

'full' opens every listing detail page to extract the cost breakdown, full address, WWG-Details, object details, photos and descriptions. 'basic' scrapes only the search cards (title, rent, size, district, available-from) — faster and cheaper.

## `proxyConfiguration` (type: `object`):

Proxy settings. Apify proxy is recommended to avoid IP blocking.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html"
    }
  ],
  "maxItems": 50,
  "detailLevel": "basic",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/wg-gesucht-de-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html" }] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/wg-gesucht-de-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html"
    }
  ]
}' |
apify call ahmed_jasarevic/wg-gesucht-de-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/wg-gesucht-de-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Uf0aaefaPH1ybBYMz/builds/osBQb8NhTbpxqXJJg/openapi.json
