ZVG-Portal APIzvg-portal.de ↗
Access German foreclosure auction listings from ZVG-Portal via API. Search by state or court, retrieve property details, valuations, and document links.
What is the ZVG-Portal API?
The ZVG-Portal API provides structured access to German foreclosure auction data across all 16 federal states through 3 endpoints. Use search_auctions to query active listings filtered by state abbreviation, court ID, or auction type, then call get_auction_detail to retrieve the full record for any listing — including market valuation, auction venue, property description, and attached document links.
curl -X GET 'https://api.parse.bot/scraper/390e8bb9-1861-46a3-9443-1777fb06d267/search_auctions?art=0&page=1&ger_id=0&land_abk=bw&all_results=false' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace zvg-portal-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ZVG Portal SDK — German foreclosure auction search and detail drill-down."""
from parse_apis.ZVG_Portal_API__German_Foreclosure_Auctions_ import (
ZvgPortal, State, AuctionType, AuctionNotFound,
)
zvg = ZvgPortal()
# List available courts for a state to find court IDs for filtering
for state_info in zvg.state_courtses.list(limit=3):
print(state_info.code, state_info.name, len(state_info.courts), "courts")
# Search foreclosure auctions in Nordrhein-Westfalen, filtered by type
for summary in zvg.auction_summaries.search(land_abk=State.NW, art=AuctionType.FORECLOSURE, limit=3):
print(summary.aktenzeichen, summary.date, summary.value)
# Drill into the first result for full auction details
summary = zvg.auction_summaries.search(land_abk=State.BY, limit=1).first()
if summary:
try:
auction = summary.details()
print(auction.objekt_lage, auction.verkehrswert, auction.ort_der_versteigerung)
for doc in auction.documents:
print(doc.name, doc.url)
except AuctionNotFound as exc:
print(f"Auction gone: {exc}")
print("exercised: state_courtses.list / auction_summaries.search / summary.details")
Search for foreclosure auctions in a specific German state. Results are sorted by auction date and paginated (~20 per page). Supports filtering by auction type and court. Each result carries a zvg_id and land_abk pair needed to fetch full details. The total_count field reflects the full matching set server-side.
| Param | Type | Description |
|---|---|---|
| art | string | Auction type filter. |
| page | integer | Page number for pagination (1-based). |
| ger_id | string | Court ID from get_courts endpoint (e.g. 'R3101' for Aachen). '0' returns all courts in the state. |
| land_abkrequired | string | Two-letter German state abbreviation. |
| all_results | boolean | If true, attempts to retrieve all results at once instead of paginating. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"results": "array of AuctionSummary objects",
"total_count": "integer, total number of matching auctions"
},
"sample": {
"data": {
"page": 1,
"results": [
{
"date": "Freitag, 12. Juni 2026, 08:30 Uhr",
"court": "in Nordrhein-Westfalen",
"value": "104.000,00 €",
"zvg_id": "167535",
"land_abk": "nw",
"description": "Kfz-Stellplatz, Garage, Einfamilienhaus, Doppelhaushälfte:Bergstraße 12, 41836 Hückelhoven",
"last_update": "letzte Aktualisierung 17-04-2026 12:07",
"aktenzeichen": "0003 K 0005/2025"
}
],
"total_count": 1038
},
"status": "success"
}
}About the ZVG-Portal API
Searching Auctions
The search_auctions endpoint accepts a required land_abk state abbreviation (e.g., nw for North Rhine-Westphalia, by for Bavaria) and returns a paginated list of auction summaries. Each result object includes zvg_id, aktenzeichen (case reference), court, description, value, date, and last_update. You can narrow results with ger_id (a specific district court ID), and art to filter by auction type — '0' for Zwangsvollstreckung (foreclosure) or '1' for Insolvenz (insolvency proceedings). Set all_results to true to request all matching records without paginating.
Auction Detail
get_auction_detail takes a zvg_id and the matching land_abk from search results and returns the full auction record. Key response fields include Termin (auction date/time), Objekt/Lage (property type and location), Beschreibung (detailed description), Verkehrswert in € (estimated market value), Ort der Versteigerung (venue address), and a documents array with names and URLs for any attached appraisal or legal documents. The land_abk must correspond to the auction's origin state — mixing states will not return results.
Court Lookup
get_courts requires no parameters and returns a map of all German states, each with a name and a courts array of objects containing id and name. These court IDs are the valid values for the ger_id filter in search_auctions. For example, court ID R3101 corresponds to Aachen. Passing '0' as ger_id returns listings from all courts within the specified state.
The ZVG-Portal API is a managed, monitored endpoint for zvg-portal.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zvg-portal.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official zvg-portal.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor new foreclosure listings in a specific German state by polling search_auctions with a land_abk filter
- Build a property investment screening tool using Verkehrswert (market value) fields from get_auction_detail
- Map active auction listings to district courts across Germany using get_courts IDs
- Aggregate and compare auction dates and estimated values across multiple states for deal-flow analysis
- Retrieve attached appraisal documents via the documents array in get_auction_detail for due diligence workflows
- Filter insolvency-only auctions using the art='1' parameter to track distressed asset sales
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ZVG-Portal have an official developer API?+
How do I filter auction results to a specific district court?+
get_courts to retrieve the full list of district courts and their IDs for each German state. Then pass the relevant id value as the ger_id parameter in search_auctions alongside the matching land_abk. For example, court ID R3101 targets Aachen within the nw (North Rhine-Westphalia) state scope. Pass ger_id='0' to include all courts in the state.Are historical or closed auctions accessible through this API?+
last_update field on each result indicates freshness. Auctions that have already concluded and been removed from the portal are not available. You can fork this API on Parse and revise it to add any archival or historical tracking logic you require.Does the API expose auction outcome data, such as final sale prices or winning bids?+
What does the documents field in get_auction_detail contain?+
documents field is an array of objects, each with a name (document label, typically an appraisal report or court notice) and a url pointing directly to the file on ZVG-Portal. Not every auction has attached documents; the array may be empty for listings without uploaded files.