# German Real Estate Foreclosure & ZVG-Portal Scraper (`agrunert/german-real-estate-foreclosure-zvg-scraper`) Actor

Bulk scraper for German real estate foreclosure auctions (zvg-portal.de / Zwangsversteigerungen) across all 16 states. Extracts market values (Verkehrswert) & PDF appraisals.

- **URL**: https://apify.com/agrunert/german-real-estate-foreclosure-zvg-scraper.md
- **Developed by:** [André Grunert](https://apify.com/agrunert) (community)
- **Categories:** Real estate, Lead generation, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 property scrapeds

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🏠 German Real Estate Foreclosure & ZVG-Portal Scraper

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?logo=apify)](https://apify.com)
[![Pricing](https://img.shields.io/badge/Pricing-$0.01%20per%20property-green)](https://apify.com)
[![Fast Engine](https://img.shields.io/badge/Engine-Zero--Playwright%20Fast%20HTTP-blue)](https://apify.com)

The ultimate B2B, PropTech, and Real Estate Investment scraper for the official German judicial auction and foreclosure portal (**[zvg-portal.de](https://www.zvg-portal.de)**).

Extract upcoming foreclosure auctions across all 16 German federal states, complete with **official court valuations in EUR (float)**, auction dates, courtroom addresses, property categories, and **direct download links to official appraisal reports (*Verkehrswertgutachten*) and court notices (*Amtliche Bekanntmachung*)**.

***

### 🎥 48-Second Live Video Showcase (1080p HD)

[![Watch German B2B Data Suite Live Video Showcase](https://raw.githubusercontent.com/andregrunert-ctrl/german-b2b-data-suite/main/docs/b2b_showcase_banner.png)](https://youtu.be/ERydgz1hGk8)

*Part of the official German B2B Data Suite: Automate B2B lead generation, GDPR-compliant impressum enrichment (§ 5 DDG), real-time Handelsregister (XJustiz) & insolvency KYB audits, ZVG foreclosures, and public tenders via Apify, n8n, Make.com, or AI Agents (MCP).*

***

### 🎯 Why Use This Actor?

The official German foreclosure portal (`zvg-portal.de`) is notoriously difficult to automate:

- **No official REST API:** Information is trapped in legacy HTML tables.
- **Strict Referer & Encoding Walls:** Official appraisal PDFs (*Gutachten*) fail with a cryptic `error` response unless specific HTTP referer headers are sent, and responses mix legacy Windows CP1252 and UTF-8 characters.
- **Manual Browsing Overhead:** Investors and PropTech analysts spend hours clicking through court dropdowns and deciphering PDF attachments.

**This Actor solves it completely:**

- ⚡ **Lightweight & Fast:** Uses high-throughput asynchronous HTTP streaming without heavy browser overhead. Runs in seconds and consumes under 150 MB RAM.
- 💰 **Fair Pay-Per-Event (PPE) Pricing:** Pay only **$0.01 USD per property** ($10.00 / 1,000 properties). Invalid inputs or empty results are never charged.
- 📑 **Direct Official PDF Links:** Extracts direct download URLs for official appraisal reports, property photos, and court decrees.
- 🔍 **Rich Filtering:** Filter by Bundesland, City, 5-digit German Postal Code (PLZ), Property Type, and exact Min/Max Market Value in EUR.
- 🤖 **Ready for AI Agents & Workflow Automation:** Seamlessly integrate with **Make.com**, **n8n**, **Zapier**, or connect as an **Apify MCP Tool** in Claude, Cursor, and ChatGPT.

***

### 🏢 Supported German Federal States (`states`)

Pass either canonical two-letter codes, full German names, or `"ALL"`:

| Code | State Name | Code | State Name |
| :--- | :--- | :--- | :--- |
| `bw` | Baden-Württemberg | `by` | Bayern (Bavaria) |
| `be` | Berlin | `br` | Brandenburg |
| `hb` | Bremen | `hh` | Hamburg |
| `he` | Hessen (Hesse) | `mv` | Mecklenburg-Vorpommern |
| `ni` | Niedersachsen | `nw` | Nordrhein-Westfalen (NRW) |
| `rp` | Rheinland-Pfalz | `sl` | Saarland |
| `sn` | Sachsen (Saxony) | `st` | Sachsen-Anhalt |
| `sh` | Schleswig-Holstein | `th` | Thüringen (Thuringia) |
| `ALL`| **All 16 Federal States in one run** | | |

***

### ⚙️ Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `states` | `Array<String>` | `["sn"]` | Federal states to search (e.g. `["sn", "be"]`, `["Bayern"]`, or `["ALL"]`). |
| `city` | `String` | `null` | Filter by city name (e.g. `"Leipzig"`, `"Berlin"`, `"München"`). |
| `postal_code` | `String` | `null` | Filter by 5-digit German postal code (e.g. `"04109"`, `"10115"`). |
| `property_type`| `String` | `"ALL"` | Category filter: `"Eigentumswohnung"`, `"Einfamilienhaus"`, `"Mehrfamilienhaus"`, `"Gewerbe"`, `"Grundstück"`. |
| `min_market_value` | `Number` | `null` | Minimum court-assessed market value in EUR (e.g. `100000`). |
| `max_market_value` | `Number` | `null` | Maximum court-assessed market value in EUR (e.g. `500000`). |
| `max_items` | `Integer` | `50` | Maximum listings to extract (controls your budget strictly). |
| `include_details` | `Boolean` | `true` | When true, fetches full court descriptions, courtroom locations, and appraisal PDF links. |
| `proxyConfiguration` | `Object` | `null` | Optional Apify proxy settings (datacenter or residential). |

#### Example Input: High-Value Foreclosures in Saxony & Berlin

```json
{
  "states": ["sn", "be"],
  "property_type": "Eigentumswohnung",
  "min_market_value": 150000,
  "max_market_value": 750000,
  "max_items": 25,
  "include_details": true
}
```

***

### 📊 Output Schema

Each pushed record represents a verified German foreclosure listing:

```json
{
  "zvg_id": "14468",
  "case_number": "0030 K 0106/2025",
  "court": "Amtsgericht Kreuzberg",
  "state": "be",
  "property_type": "Eigentumswohnung (1 bis 2 Zimmer)",
  "title": "Eigentumswohnung (1 bis 2 Zimmer): Eldenaer Straße 10, 10247 Berlin, Friedrichshain",
  "address": "Eldenaer Straße 10, 10247 Berlin, Friedrichshain",
  "postal_code": "10247",
  "city": "Berlin",
  "market_value_eur": 190000.0,
  "currency": "EUR",
  "auction_date": "Dienstag, 27. Oktober 2026, 10:00 Uhr",
  "auction_location": "Amtsgericht Kreuzberg, Möckernstr. 130, 10958 Berlin, Saal A144",
  "land_register": "Friedrichshain Blatt 24783N",
  "status_notes": null,
  "is_cancelled": false,
  "description": "Es handelt sich um eine 1-Zimmerwohnung mit Küche, Bad, Flur und Balkon. Die Wohnfläche beträgt ca. 38 m²...",
  "creditor_info": "Frau Oltmanns (DZ HYP AG), Az: RVSA-A/ol 331 0237 700",
  "pdf_urls": [
    "https://www.zvg-portal.de/index.php?button=showAnhang&land_abk=be&file_id=67771&zvg_id=14468",
    "https://www.zvg-portal.de/index.php?button=showAnhang&land_abk=be&file_id=67772&zvg_id=14468"
  ],
  "documents": [
    {
      "title": "amtliche Bekanntmachung",
      "url": "https://www.zvg-portal.de/index.php?button=showAnhang&land_abk=be&file_id=67771&zvg_id=14468",
      "file_type": "pdf",
      "file_size": "122.9 kB"
    },
    {
      "title": "Gutachten",
      "url": "https://www.zvg-portal.de/index.php?button=showAnhang&land_abk=be&file_id=67772&zvg_id=14468",
      "file_type": "pdf",
      "file_size": "2690.63 kB"
    }
  ],
  "detail_url": "https://www.zvg-portal.de/index.php?button=showZvg&zvg_id=14468&land_abk=be",
  "scraped_at": "2026-10-27T17:30:00.000Z"
}
```

***

### 💡 Commercial Use Cases

1. **PropTech & Investment Deal Flow:** Automatically feed high-yield German foreclosure opportunities below market valuation into your CRM or internal scoring algorithm.
2. **Real Estate Appraisal & Automated Valuation Models (AVM):** Collect historical and upcoming court appraisal values (*Verkehrswertgutachten*) for neighborhood price benchmarks.
3. **Banking & Distressed Asset Monitoring:** Monitor non-performing loan auctions and collateral proceedings across relevant jurisdictions.
4. **Make / n8n Daily Alerts:** Schedule automated runs every morning to send Telegram, Slack, or email notifications whenever a new property in your target PLZ is scheduled for auction.

***

### 🔒 Strict Pay-Per-Event (PPE) Guarantee

- Charged strictly at **$0.01 USD per pushed property** (`event_name: "property-scraped"`).
- If a search returns 0 listings, or if invalid parameters are supplied, **no charge is ever applied**.

***

### 🤖 Plug-and-Play: AI Agents (MCP), n8n & Make.com

Our actors are built natively for the next generation of automation: seamless integration into **Claude Desktop**, **Cursor AI**, **AI Agent Frameworks (LangChain, AutoGen, CrewAI)**, and visual workflow builders like **n8n** and **Make.com**.

#### 1. AI Agents & Model Context Protocol (MCP)

Give your AI coding assistant or desktop agent real-time access to this actor using the official Apify MCP server.

##### Option A: Single-Actor MCP Setup (`claude_desktop_config.json` / Cursor)

Add this to your `%APPDATA%\Claude\claude_desktop_config.json` (Windows) or `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):

```json
{
  "mcpServers": {
    "apify-zvg": {
      "command": "npx",
      "args": ["-y", "@apify/actors-mcp-server", "--actors", "AGrunert/german-real-estate-foreclosure-zvg-scraper"],
      "env": {
        "APIFY_TOKEN": "YOUR_APIFY_TOKEN"
      }
    }
  }
}
```

> **💡 Pro Tip – Equip your AI Agent with our Complete German B2B & Compliance Suite:**\
> Pass all 6 specialized DACH actors in a single command so your agent can discover B2B leads, extract Impressum data, verify commercial register & insolvency records, search tenders, monitor real estate foreclosures, and issue tax-compliant e-invoices autonomously:
>
> ```bash
> npx -y @apify/actors-mcp-server --actors AGrunert/german-b2b-leads-directory-scraper,AGrunert/german-impressum-b2b-lead-enricher,AGrunert/german-company-kyb-insolvency-scraper,AGrunert/german-public-tenders-vergabe-scraper,AGrunert/german-real-estate-foreclosure-zvg-scraper,AGrunert/german-e-invoice-zugferd-xrechnung-suite
> ```
>
> *Hosted SSE Endpoint (for Cursor / remote agents):*\
> `https://mcp.apify.com?actors=AGrunert/german-real-estate-foreclosure-zvg-scraper&token=YOUR_APIFY_TOKEN`

***

#### 2. 1-Click Synchronous API (cURL, n8n, Make.com)

No async job polling required! Call our synchronous endpoint directly in a single HTTP request node to run the actor and receive clean parsed dataset items immediately:

```bash
curl -X POST "https://api.apify.com/v2/acts/AGrunert~german-real-estate-foreclosure-zvg-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"states":["by","be","nw"],"property_type":"all","min_market_value":150000,"max_items":10,"include_details":true}'
```

***

#### 3. Schlüsselfertige Workflow-Vorlagen im Repository (`integrations/`)

In our GitHub repository and Actor build package, you will find pre-built, production-tested templates in the `integrations/` folder:

- **`integrations/n8n_workflow.json`**: Ready-to-import n8n workflow with automated foreclosure auction extraction and 2-step chaining into our KYB Scraper to audit involved companies and creditors. Just copy-paste the JSON into your n8n canvas.
- **`integrations/make_com_blueprint.json`**: Official Make.com scenario blueprint with pre-configured HTTP request & data mapping.
- **`integrations/mcp_claude_cursor_config.json`**: Pre-configured MCP server manifest for Claude Desktop, Cursor AI, and Windsurf.

***

### 🔗 Complete German B2B, Compliance & PropTech Suite by AGrunert

Combine our specialized German business actors to build end-to-end automated pipelines for B2B lead generation, corporate due diligence, public procurement, real estate intelligence, and tax-compliant e-invoicing:

| Actor | Category & Pricing | Key Capabilities | Preconfigured Public Tasks |
| :--- | :--- | :--- | :--- |
| [**German B2B Leads, Crafts & Business Directory Scraper**](https://apify.com/AGrunert/german-b2b-leads-directory-scraper) | **Lead Generation**<br>`$0.008 / lead` ($8.00 / 1k) | Multi-query round-robin extraction across German business directories (`11880`, `Gelbe Seiten`), verified E.164 phone numbers (97.5% coverage), and domain verification (`require_website: true`). | • [German Crafts, Solar & Construction Lead Finder](https://apify.com/AGrunert/german-crafts-trades-lead-finder)<br>• [German B2B Company & Domain Finder](https://apify.com/AGrunert/german-b2b-domains-for-impressum-enrichment) |
| [**German & DACH B2B Impressum, Contact & Legal Enricher (§ 5 DDG)**](https://apify.com/AGrunert/german-impressum-b2b-lead-enricher) | **Data Enrichment**<br>`$0.005 / domain` ($5.00 / 1k) | Automatic legal notice discovery (§ 5 DDG / § 25 MedienG), de-obfuscation of executive emails, management board/CEOs, court & registration number (`HRB`), VAT ID (`DE...`), and social profiles. | • [German B2B Impressum, CEO & Contact Extractor](https://apify.com/AGrunert/german-b2b-impressum-contact-extractor)<br>• [DACH Website to Handelsregister & VAT ID Enricher](https://apify.com/AGrunert/impressum-to-handelsregister-kyb-enricher) |
| [**German Company KYB, Handelsregister & Insolvency Scraper**](https://apify.com/AGrunert/german-company-kyb-insolvency-scraper) | **Risk & Compliance**<br>`$0.025 / check` ($25.00 / 1k) | Official XJustiz 3.5.1 extraction (directors, share capital, business purpose, court) + live insolvency check (`insolvenzbekanntmachungen.de`) with bulk company list support. | • [Complete German KYB Audit](https://apify.com/AGrunert/full-kyb-audit)<br>• [Fast German Insolvency Screener](https://apify.com/AGrunert/fast-insolvency-screener)<br>• [Bulk German Company KYB Batch Check](https://apify.com/AGrunert/bulk-kyb-batch-check) |
| [**German Public Tenders & Procurement Scraper (`service.bund.de`)**](https://apify.com/AGrunert/german-public-tenders-vergabe-scraper) | **B2B Tenders & Contracts**<br>`$0.010 / tender` ($10.00 / 1k) | Daily procurement monitoring across Bund, Länder & Kommunen; zero false positives (filters AI Bietercockpit boilerplates); direct `/unterlagen/` download URLs and submission deadlines (date + time). | • [German IT, Software & AI Public Tenders Monitor](https://apify.com/AGrunert/german-it-software-public-tenders)<br>• [German Construction & Facility Management Tenders](https://apify.com/AGrunert/german-construction-facility-tenders) |
| [**German Real Estate Foreclosure & ZVG-Portal Scraper**](https://apify.com/AGrunert/german-real-estate-foreclosure-zvg-scraper) *(Current Actor)* | **PropTech & Real Estate**<br>`$0.010 / property` ($10.00 / 1k) | Bulk extraction of foreclosure auctions (`zvg-portal.de`) across all 16 states, multi-parcel market value parser (`float`), and direct PDF appraisal links (*Verkehrswertgutachten*). | • [German Foreclosure Real Estate Finder](https://apify.com/AGrunert/german-foreclosures-sample-search)<br>• [High-Value German Foreclosures (> 250k EUR)](https://apify.com/AGrunert/high-value-commercial-residential-foreclosures) |
| [**German E-Invoice (ZUGFeRD / Factur-X / XRechnung 3.0) Suite**](https://apify.com/AGrunert/german-e-invoice-zugferd-xrechnung-suite) | **Finance & Invoicing**<br>`$0.035 / invoice` ($35.00 / 1k) | Generate DIN-5008 compliant PDF/A-3 invoices from JSON, embed CII XML, and validate with official KoSIT Schematron & EN 16931 rules. | *Standalone API & Batch Suite* |

#### 💡 Multi-Actor Chain Workflows & Synergy Pipelines

- **Pipeline 1 (Top-of-Funnel Lead-to-Audit Engine):**\
  Discover companies & crafts via [**German B2B Directory Scraper**](https://apify.com/AGrunert/german-b2b-leads-directory-scraper) $\rightarrow$ Enrich managing directors, direct emails, and HRB numbers via [**German Impressum Enricher**](https://apify.com/AGrunert/german-impressum-b2b-lead-enricher) $\rightarrow$ Verify solvency, officers, and share capital via [**German KYB Scraper**](https://apify.com/AGrunert/german-company-kyb-insolvency-scraper).
- **Pipeline 2 (Public Tender Win to Compliant Billing):**\
  Monitor federal procurement opportunities via [**German Public Tenders Scraper**](https://apify.com/AGrunert/german-public-tenders-vergabe-scraper) $\rightarrow$ Win bid $\rightarrow$ Bill public authorities with compliant EN 16931 XRechnung 3.0 via [**German E-Invoice Suite**](https://apify.com/AGrunert/german-e-invoice-zugferd-xrechnung-suite).
- **Pipeline 3 (Real Estate Foreclosure Due Diligence):**\
  Scrape upcoming foreclosures via [**German Real Estate Foreclosure Scraper**](https://apify.com/AGrunert/german-real-estate-foreclosure-zvg-scraper) $\rightarrow$ Check creditor/owner companies via [**German KYB Scraper**](https://apify.com/AGrunert/german-company-kyb-insolvency-scraper).

***

### 📞 Support & Custom Extensions

Need custom courthouse scrapers, automated PDF text parsing (OCR of valuation reports), or integration into enterprise data warehouses? Contact the author via the Apify Console.

# Actor input Schema

## `states` (type: `array`):

Select or list German federal states to search. Supports 2-letter codes (e.g. 'sn', 'be', 'by', 'nw'), full names ('Sachsen', 'Berlin', 'Bayern'), or 'ALL' to search all 16 federal states.

## `city` (type: `string`):

Filter auctions by city name (e.g. 'Leipzig', 'Berlin', 'München', 'Köln').

## `postal_code` (type: `string`):

Filter by 5-digit German postal code (e.g. '04109', '10115').

## `property_type` (type: `string`):

Filter by property type (e.g. 'ALL', 'Eigentumswohnung', 'Einfamilienhaus', 'Mehrfamilienhaus', 'Gewerbe', 'Grundstück').

## `min_market_value` (type: `integer`):

Minimum official court valuation in Euros (Verkehrswert in EUR). Example: 50000.

## `max_market_value` (type: `integer`):

Maximum official court valuation in Euros (Verkehrswert in EUR). Example: 500000.

## `max_items` (type: `integer`):

Maximum number of foreclosure properties to extract in this run. Controls your pay-per-event budget precisely.

## `include_details` (type: `boolean`):

When enabled, retrieves the comprehensive court description, auction room location, land register sheet, and direct URLs to official valuation reports (Gutachten) and decrees.

## `include_cancelled` (type: `boolean`):

Include cancelled or revoked foreclosure notices. Disabled by default to protect your pay-per-event budget from empty cancelled notices.

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

Optional proxy settings. Apify datacenter or residential proxies can be used if desired.

## Actor input object example

```json
{
  "states": [
    "sn"
  ],
  "property_type": "ALL",
  "max_items": 50,
  "include_details": true,
  "include_cancelled": false
}
```

# Actor output Schema

## `datasetResults` (type: `string`):

No description

## `keyValueStore` (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 = {
    "states": [
        "sn"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agrunert/german-real-estate-foreclosure-zvg-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 = { "states": ["sn"] }

# Run the Actor and wait for it to finish
run = client.actor("agrunert/german-real-estate-foreclosure-zvg-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 '{
  "states": [
    "sn"
  ]
}' |
apify call agrunert/german-real-estate-foreclosure-zvg-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agrunert/german-real-estate-foreclosure-zvg-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/cRB4ZUoRohSfPsUBM/builds/zBIafrEqalSvK4COk/openapi.json
