# Address Parser DACH (`zentrafoundry/address-parser-dach`) Actor

Raw DACH addresses -> street, ZIP, city, region, country and geocoding-ready fields.

- **URL**: https://apify.com/zentrafoundry/address-parser-dach.md
- **Developed by:** [Zentra](https://apify.com/zentrafoundry) (community)
- **Categories:** AI, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 result delivereds

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/platform/actors/running/actors-in-store#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

## Address Parser DACH

Raw DACH addresses -> street, ZIP, city, region, country and geocoding-ready fields.

### What this Actor does

- Runs the exact `address-parser-dach` contract against only the inputs and sources documented below.
- Emits records that are validated against the bundled dataset schema before they are written.
- Keeps source references and stable record identifiers in the output when those fields are declared.
- Provides a bounded sample path for Store inspection; the sample path does not emit a paid event.

### Inputs

- `buyerQuery`: Buyer-safe query or scope for the records returned by this product.
- `taskIntent`: Stable product-specific purpose for this saved Apify task.
- `sourceMode`: Sample emits public-safe Apify Actor Record rows. Approved live source mode keeps the same output fields and only uses owner-approved public URLs.
- `outputMode`: Use sample records for Apify Store QA or buyer-ready records for approved Apify Actor Record delivery.
- `startUrls`: Public URLs to use for live Apify Actor Record extraction after source-policy approval. Leave empty for sample mode.
- `maxItems`: Caps the number of Apify Actor Record rows written to the dataset.
- `perSourceLimit`: Caps validated rows from any one source before cross-source deduplication.
- `maxTotalChargeUsd`: Buyer-selected spend ceiling; the Apify run-level maximum remains authoritative.
- `overallTimeoutSecs`: Stops additional source work once the bounded run deadline is reached.
- `requestTimeoutSecs`: Timeout applied independently to each approved source request.
- `maxRequestRetries`: Bounded retry count for transient source failures.
- `sinceLastRun`: Uses stable Actor state to skip logical records delivered by earlier runs.
- `deltaMode`: Preserves stable deduplication keys for recurring tasks and schedules.

### Sources and access boundary

- https://www.govdata.de/
- User-supplied public or authorized source URLs provided through `startUrls`; live mode fails closed when neither an approved fallback nor a supplied URL exists.

Only public or user-authorized inputs may be processed. The Actor does not bypass authentication, paywalls, CAPTCHAs, access controls, or source terms.

### Output

The default dataset exposes these Actor-relevant fields:

- `entityName`: Public-safe entity or subject of the record.
- `signalType`: Buyer-facing signal category.
- `recordId`: Record Id value.
- `sourceName`: Source Name value.
- `sourceUrl`: Source Url value.
- `retrievedAt`: Retrieved At value.
- `confidence`: Normalized record confidence.
- `errors`: Errors value.
- `runSummary`: Run Summary value.

The output link exposed by `.actor/OUTPUT_SCHEMA.json` points to the default dataset: `{{links.apiDefaultDatasetUrl}}/items`.

### Sample run

```json
{
  "buyerQuery": "buyer-ready records with source evidence",
  "taskIntent": "buyer-ready-product-run",
  "sourceMode": "sample",
  "outputMode": "sample-records",
  "startUrls": [],
  "maxItems": 1,
  "perSourceLimit": 25,
  "maxTotalChargeUsd": 5,
  "overallTimeoutSecs": 900,
  "requestTimeoutSecs": 30,
  "maxRequestRetries": 2,
  "sinceLastRun": false,
  "deltaMode": true
}
```

Example fields from the bundled deterministic sample:

```json
{
  "entityName": "Address Parser DACH sample",
  "signalType": "sample",
  "recordId": "address-parser-dach-sample-1",
  "sourceName": "Address Parser DACH",
  "sourceUrl": "https://www.govdata.de/",
  "retrievedAt": "2026-01-15T09:00:00Z",
  "confidence": 0.9,
  "errors": [],
  "runSummary": {}
}
```

Sample values are labeled as sample data and are not claims about a live source result.

### Pricing and cost control

This source package preserves the Actor's current Apify pay-per-event configuration. The authenticated current event definitions are:

- `result-delivered`: Charged once for each validated buyer-facing result written to the dataset.

The per-result source event is `result-delivered`. Production output uses Apify's charged dataset push path and checks the returned charge limit before continuing. Sample, demo, test, and quality-validation paths do not emit a paid event. Start production runs with a small `maxItems` and an Apify run spending limit.

### Reliability and limitations

- Live results depend on the supplied source availability and the fields the source actually returns.
- Missing values remain missing, null, or warning-backed according to the schema; they are not invented.
- A live run that cannot produce a schema-valid result fails instead of publishing a generic substitute.
- Output is decision-support data and does not replace legal, financial, medical, safety, procurement, or compliance review.

### Existing public Actor identity

- Owner: `zentrafoundry`
- Actor ID: `ixvlro4MZylJmltKB`
- Slug: `address-parser-dach`
- Store URL: https://apify.com/zentrafoundry/address-parser-dach

This package updates that exact existing public Actor in place. It does not create, clone, upsert, duplicate, draft, privatize, or change pricing or visibility.

# Actor input Schema

## `buyerQuery` (type: `string`):

Buyer-safe query or scope for the records returned by this product.

## `taskIntent` (type: `string`):

Stable product-specific purpose for this saved Apify task.

## `sourceMode` (type: `string`):

Sample emits public-safe Apify Actor Record rows. Approved live source mode keeps the same output fields and only uses owner-approved public URLs.

## `outputMode` (type: `string`):

Use sample records for Apify Store QA or buyer-ready records for approved Apify Actor Record delivery.

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

Public URLs to use for live Apify Actor Record extraction after source-policy approval. Leave empty for sample mode.

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

Caps the number of Apify Actor Record rows written to the dataset.

## `perSourceLimit` (type: `integer`):

Caps validated rows from any one source before cross-source deduplication.

## `maxTotalChargeUsd` (type: `number`):

Buyer-selected spend ceiling; the Apify run-level maximum remains authoritative.

## `overallTimeoutSecs` (type: `integer`):

Stops additional source work once the bounded run deadline is reached.

## `requestTimeoutSecs` (type: `integer`):

Timeout applied independently to each approved source request.

## `maxRequestRetries` (type: `integer`):

Bounded retry count for transient source failures.

## `sinceLastRun` (type: `boolean`):

Uses stable Actor state to skip logical records delivered by earlier runs.

## `deltaMode` (type: `boolean`):

Preserves stable deduplication keys for recurring tasks and schedules.

## Actor input object example

```json
{
  "buyerQuery": "buyer-ready records with source evidence",
  "taskIntent": "buyer-ready-product-run",
  "sourceMode": "sample",
  "outputMode": "sample-records",
  "startUrls": [],
  "maxItems": 1,
  "perSourceLimit": 25,
  "maxTotalChargeUsd": 5,
  "overallTimeoutSecs": 900,
  "requestTimeoutSecs": 30,
  "maxRequestRetries": 2,
  "sinceLastRun": false,
  "deltaMode": 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 = {
    "buyerQuery": "buyer-ready records with source evidence",
    "taskIntent": "buyer-ready-product-run",
    "sourceMode": "sample",
    "outputMode": "sample-records",
    "startUrls": [],
    "maxItems": 1,
    "perSourceLimit": 25,
    "maxTotalChargeUsd": 5,
    "overallTimeoutSecs": 900,
    "requestTimeoutSecs": 30,
    "maxRequestRetries": 2,
    "sinceLastRun": false,
    "deltaMode": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("zentrafoundry/address-parser-dach").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 = {
    "buyerQuery": "buyer-ready records with source evidence",
    "taskIntent": "buyer-ready-product-run",
    "sourceMode": "sample",
    "outputMode": "sample-records",
    "startUrls": [],
    "maxItems": 1,
    "perSourceLimit": 25,
    "maxTotalChargeUsd": 5,
    "overallTimeoutSecs": 900,
    "requestTimeoutSecs": 30,
    "maxRequestRetries": 2,
    "sinceLastRun": False,
    "deltaMode": True,
}

# Run the Actor and wait for it to finish
run = client.actor("zentrafoundry/address-parser-dach").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "buyerQuery": "buyer-ready records with source evidence",
  "taskIntent": "buyer-ready-product-run",
  "sourceMode": "sample",
  "outputMode": "sample-records",
  "startUrls": [],
  "maxItems": 1,
  "perSourceLimit": 25,
  "maxTotalChargeUsd": 5,
  "overallTimeoutSecs": 900,
  "requestTimeoutSecs": 30,
  "maxRequestRetries": 2,
  "sinceLastRun": false,
  "deltaMode": true
}' |
apify call zentrafoundry/address-parser-dach --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zentrafoundry/address-parser-dach",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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