# Germany Das Örtliche Scraper (Local Business Directory Leads) (`dach_leads/germany-dasoertliche-scraper`) Actor

High-speed B2B lead extractor for Das Örtliche (dasoertliche.de). Extract company names, trade categories, direct phone numbers, addresses, emails, and official websites by City & Keyword across Germany.

- **URL**: https://apify.com/dach_leads/germany-dasoertliche-scraper.md
- **Developed by:** [Samarth Bhalerao](https://apify.com/dach_leads) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$1.00 / 1,000 results

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

## 🇩🇪 Germany Das Örtliche Scraper (Local Business Directory Leads)

Extract verified German local business leads, direct phone numbers, physical addresses, websites, emails, and ratings directly from **Das Örtliche (dasoertliche.de)** — Germany's premier and most visited local telecommunications directory.

```json
{
  "company_name": "Veloce IT Solutions GmbH",
  "category": "IT-Beratung",
  "street_address": "Friedrichstraße 176",
  "postal_code": "10117",
  "city": "Berlin",
  "full_address": "Friedrichstraße 176, 10117 Berlin",
  "phone": "+49 30 2096 4500",
  "email": "kontakt@veloce-it.de",
  "website": "https://veloce-it.de",
  "dasoertliche_url": "https://www.dasoertliche.de/Themen/Berlin/Veloce-IT-Solutions.html",
  "rating": "4.9 (42 Bewertungen)",
  "enrich_ceo_with_actor": "https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper?website=https%3A%2F%2Fveloce-it.de"
}
```

***

### 📌 Overview: Why Das Örtliche is Germany's #1 Local Business Directory

**Das Örtliche** (`dasoertliche.de`) is Germany’s official telecommunications and regional business registry. With over **4 million registered commercial entities** across all 16 German federal states, it is the primary directory used by German tradespeople (*Handwerker*), medical clinics (*Ärzte*), tax advisors (*Steuerberater*), law firms (*Kanzleien*), IT specialists, and local businesses.

Unlike generic search engines or social listings which frequently include inactive businesses or scraped duplicates, **Das Örtliche records are officially maintained and telephone-verified**, ensuring unmatched accuracy for outbound sales, recruiting, and regional market research.

***

### ⚡ Key Features & Capabilities

- **🚀 Deep Directory Coverage:** Access millions of registered German businesses across all 16 federal states (*Bundesländer*).
- **⚡ High-Speed handlerData Extraction:** Reverse-engineers Das Örtliche’s internal JavaScript dataset to extract 25 pre-verified leads per page in under 0.4 seconds.
- **📞 Verified Direct Phone Numbers:** Voice telephone lines are extracted and formatted cleanly, eliminating manual lookups.
- **🌐 Clean External Website Extraction:** Strips tracking redirects and publisher ad parameters to deliver the company's real external domain.
- **📧 Public Email Discovery:** Captures listed contact emails (`info@`, `kontakt@`) when available on the directory profile.
- **📍 Complete German Street Addresses:** Full physical street address, building number, 5-digit postal code (*PLZ*), and city name.
- **⭐ Star Ratings & Reviews:** Captures customer ratings and review counts to highlight top-rated local service providers.
- **🇩🇪 Full German Umlaut & Regional Support:** Decodes German special characters (`ä`, `ö`, `ü`, `ß`) cleanly across major metropolises (*München, Köln, Düsseldorf, Nürnberg*) and small municipalities alike.
- **🤖 Autonomous AI Agent & n8n Ready:** Pure Pay-Per-Event (PPE) schema allows n8n, Make, LangChain, Claude, and custom outbound automations to query German leads on demand.

***

### 🔄 1-Click n8n Automation Template (Recurring CRM Sync)

Automate your lead generation by syncing fresh Das Örtliche leads directly into **Google Sheets, Airtable, HubSpot, or Instantly** every week!

```mermaid
flowchart LR
    A["⏰ Trigger<br/>(On Demand / Weekly)"] --> B["🇩🇪 Step 1: Das Örtliche Scraper<br/>(Pulls 50–500 Companies)"]
    B --> C{"Filter<br/>Has Website?"}
    C -->|Yes| D["👔 Step 2: Impressum Extractor<br/>(Extracts CEO & Email)"]
    D --> E["📊 Final Output<br/>(Google Sheets / CRM)"]
```

> 📥 **Ready-to-Use n8n Template:** Download our ready-to-import n8n workflow JSON:\
> [**german_b2b_lead_machine_n8n_template.json**](https://github.com/dach-leads/n8n-german-b2b-lead-pipeline) — Copy and paste directly onto your n8n canvas!

***

### 💡 The 2-Step B2B Power Funnel: From Directory to CEO Inbox

This scraper is engineered as the **Upstream Discovery Engine** for your German B2B outreach:

```
[ Step 1: Das Örtliche Scraper ] ───►  Extracts 500–2,000 German companies, websites & direct phones ($1.00 / 1k)
                │
                └───► (Export CSV / Website URLs)
[ Step 2: Impressum Extractor  ] ───►  Crawls company websites to extract the Managing Director (CEO / Geschäftsführer)
                                       and legal registration under German federal law (§ 5 DDG)
```

> 🎯 **Cross-Sell Pro-Tip:** Take the company websites extracted by this tool and feed them into our **[Germany B2B Lead & Impressum Extractor](https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper)** to legally extract the **Managing Director (*Geschäftsführer / Inhaber*)** names and personal direct emails!

***

### 📥 Input Parameters

| Field | Type | Required | Default | Description | Example |
| :--- | :--- | :---: | :--- | :--- | :--- |
| **`searchTerm`** | String | **Yes** | `IT-Beratung` | Business category, profession, or trade keyword | `Handwerker`, `Zahnarzt`, `Steuerberater`, `Rechtsanwalt`, `Elektriker` |
| **`city`** | String | **Yes** | `Berlin` | German city name or 5-digit postal code (*PLZ*) | `München`, `Hamburg`, `Frankfurt`, `Köln`, `10115` |
| **`maxResults`** | Integer | No | `50` | Maximum number of leads to scrape (1 to 5,000) | `100`, `500`, `2000` |

***

### 🎯 Top High-Value German Niches to Scrape

| Industry Keyword | Target City / Region | Target Audience / Commercial Value |
| :--- | :--- | :--- |
| `Steuerberater` | `München` | Certified German Tax Advisors with high-ticket retainers |
| `Finanzberatung` | `Frankfurt am Main` | Wealth managers, financial brokers, and asset consultants |
| `Maschinenbau` | `Stuttgart` | Industrial machinery & German *Mittelstand* manufacturers |
| `Softwareentwicklung` | `Berlin` | Fast-growing SaaS startups and digital agencies |
| `Rechtsanwälte` | `Hamburg` | Commercial law firms, patent attorneys, and corporate counsels |
| `Immobilienmakler` | `Düsseldorf` | Commercial and residential real estate brokerages |
| `Zahnarzt` | `Köln` | High-income private dental practices and medical clinics |
| `Elektrotechnik` | `Nürnberg` | Commercial electrical contractors and engineering firms |

***

### 📊 Output Dataset Specification

Data is exported in **Excel (.xlsx), CSV, JSON, or XML** with the following structured attributes:

| Column Name | Type | Description | Sample Value |
| :--- | :--- | :--- | :--- |
| **`company_name`** | String | Official registered business name | `Veloce IT Solutions GmbH` |
| **`category`** | String | Targeted trade or sector category | `IT-Beratung` |
| **`street_address`** | String | Street name and building number | `Friedrichstraße 176` |
| **`postal_code`** | String | German 5-digit postal code (*PLZ*) | `10117` |
| **`city`** | String | City or municipality | `Berlin` |
| **`full_address`** | String | Combined formatted German address | `Friedrichstraße 176, 10117 Berlin` |
| **`phone`** | String | Cleaned direct telephone number | `+49 30 2096 4500` |
| **`email`** | String | Contact email address (if listed) | `kontakt@veloce-it.de` |
| **`website`** | String | Official company website URL | `https://veloce-it.de` |
| **`dasoertliche_url`** | String | Direct profile URL on dasoertliche.de | `https://www.dasoertliche.de/Themen/Berlin/...` |
| **`rating`** | String | Star rating and customer review count | `4.9 (42 Bewertungen)` |
| **`enrich_ceo_with_actor`** | String | 1-click link to extract CEO with Impressum Scraper | `https://apify.com/dach_leads/...` |

***

### 💻 Programmatic Usage & API Integration

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "searchTerm": "Steuerberater",
    "city": "München",
    "maxResults": 100
}

run = client.actor("dach_leads/germany-dasoertliche-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['company_name']} | {item['phone']} | {item['website']}")
```

#### Node.js (`apify-client`)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });

const input = {
    searchTerm: 'IT-Beratung',
    city: 'Berlin',
    maxResults: 100,
};

const run = await client.actor('dach_leads/germany-dasoertliche-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(`Extracted ${items.length} German leads from Das Örtliche.`);
```

#### cURL (Direct HTTP API)

```bash
curl "https://api.apify.com/v2/acts/dach_leads~germany-dasoertliche-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"searchTerm": "Handwerker", "city": "Hamburg", "maxResults": 50}'
```

***

### 💰 Transparent Pay-Per-Event (PPE) Pricing

- **Only $1.00 per 1,000 verified leads** ($0.001 per result) — **70% cheaper** than generic enterprise lead scrapers.
- **$0.00 Actor Start Fee** — Zero upfront cost to spin up runs.
- **Zero Platform Surcharge** — Pure pay-per-event pricing without hidden compute charges.
- **Free Test Allowance** — Free tier users can test and scrape business records without credit card commitments.

***

### ❓ Frequently Asked Questions (FAQ)

##### Q: How does this scraper handle pagination across multiple pages?

**A:** Das Örtliche uses offset-based indexing (`recFrom=1`, `recFrom=26`, `recFrom=51`). The scraper automatically steps through result pages and decodes the embedded structured business data, extracting hundreds of companies smoothly.

##### Q: Are the extracted phone numbers and websites real?

**A:** Yes. The Actor parses the official listings on `dasoertliche.de`, extracts real business telephone numbers, and strips tracking parameters and ad-network redirects from company websites.

##### Q: How can I get the CEO / Managing Director (*Geschäftsführer*) names?

**A:** Das Örtliche provides commercial contact data and verified websites. To legally extract the personal name of the CEO (*Geschäftsführer* or *Inhaber*), VAT ID (*USt-IdNr*), and Handelsregister number, feed the extracted website URLs into our **[Germany B2B Lead & Impressum Extractor](https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper)**.

##### Q: Does this scraper require residential proxies?

**A:** No. Das Örtliche responds reliably to direct requests using polite delay throttling, so you don't need expensive residential proxy subscriptions.

# Actor input Schema

## `searchTerm` (type: `string`):

Business trade, category, profession, or keyword (e.g. IT-Beratung, Handwerker, Zahnarzt, Steuerberater, Rechtsanwalt, Hotel)

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

German city name or 5-digit PLZ postal code (e.g. Berlin, München, Hamburg, Frankfurt, Köln, Stuttgart, 10115)

## `maxResults` (type: `integer`):

Target number of business records to scrape (1 to 2,000).

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

Use Apify Proxy (RESIDENTIAL or DATACENTER in Germany) to prevent rate limiting.

## Actor input object example

```json
{
  "searchTerm": "IT-Beratung",
  "city": "Berlin",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "DE"
  }
}
```

# Actor output Schema

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

Direct access link to the scraped dataset records

# 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 = {
    "searchTerm": "IT-Beratung",
    "city": "Berlin"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dach_leads/germany-dasoertliche-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 = {
    "searchTerm": "IT-Beratung",
    "city": "Berlin",
}

# Run the Actor and wait for it to finish
run = client.actor("dach_leads/germany-dasoertliche-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 '{
  "searchTerm": "IT-Beratung",
  "city": "Berlin"
}' |
apify call dach_leads/germany-dasoertliche-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dach_leads/germany-dasoertliche-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/LOd0gWdnti6ARdEns/builds/64h8oTTnBPYFpeX1S/openapi.json
