# Germany Das Telefonbuch Scraper - B2B Leads (`dach_leads/germany-dastelefonbuch-scraper`) Actor

High-speed B2B lead extractor for Das Telefonbuch (dastelefonbuch.de). Extract verified German company names, categories, direct phone numbers, addresses, and official websites by City & Keyword across Germany.

- **URL**: https://apify.com/dach_leads/germany-dastelefonbuch-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 Telefonbuch Scraper (National Business Directory Leads)

Extract verified German local business leads, direct telephone numbers, physical street addresses, websites, and ratings directly from **Das Telefonbuch (dastelefonbuch.de)** — Germany's premier and largest national telecommunications directory (over **30 million** business and professional listings).

```json
{
  "company_name": "Andreas Lammel und Thomas Patschinski Lammel & Partner GbR",
  "category": "IT-Beratung",
  "street_address": "Göllweg 15",
  "postal_code": "12107",
  "city": "Berlin",
  "full_address": "Göllweg 15, 12107 Berlin",
  "phone": "+49 30 6692 0010",
  "website": "http://www.lammel-gbr.de",
  "rating": "5.0",
  "dastelefonbuch_url": "https://adresse.dastelefonbuch.de/Berlin/1-IT-Beratung-Andreas-Lammel...",
  "enrich_ceo_with_actor": "https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper?website=http%3A%2F%2Fwww.lammel-gbr.de"
}
```

***

### 📌 Overview: Why Das Telefonbuch is Germany's Largest Directory

**Das Telefonbuch** (`dastelefonbuch.de`) is the official national phone and business registry of Germany, co-published by Deutsche Telekom and regional directory publishers. With over **30 million registered entities** across all 16 German federal states, it is the most comprehensive database in the DACH region for discovering:

- 🏢 **German Corporations & SMEs (*Mittelstand*)**
- 🔨 **Tradespeople & Contractors (*Handwerker*)**
- 🩺 **Medical Practices & Specialists (*Ärzte*)**
- ⚖️ **Law Firms, Tax Advisors & Notaries (*Kanzleien*)**
- 💼 **Consultants, Agencies & Service Providers**

Unlike unverified map scrapers, **Das Telefonbuch data is officially tied to registered German telecommunications lines**, providing clean, active contact data.

***

### ⚡ Key Features & Capabilities

- **🚀 30 Million+ Record Coverage:** The single largest public directory database in Germany.
- **📞 De-obfuscated Direct Phone Lines:** De-obfuscates split DOM nodes and anti-scraping spans to deliver the complete, verified telephone number.
- **📍 Complete German Street Addresses:** Full street name, house number, 5-digit postal code (*PLZ*), and city name.
- **🌐 Clean External Website Extraction:** Discovers verified official company website domains directly from directory listings.
- **⭐ Star Ratings & Reviews:** Captures customer review ratings to highlight top-rated local service providers.
- **🇩🇪 Full German Umlaut & Regional Support:** Handles special characters (`ä`, `ö`, `ü`, `ß`) cleanly across major metropolises (*Berlin, München, Hamburg, Frankfurt, Köln*) 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 Telefonbuch leads directly into **Google Sheets, Airtable, HubSpot, or Instantly** every week!

```mermaid
flowchart LR
    A["⏰ Trigger<br/>(On Demand / Weekly)"] --> B["🇩🇪 Step 1: Das Telefonbuch 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 Telefonbuch 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 | `Andreas Lammel & Partner GbR` |
| **`category`** | String | Targeted trade or sector category | `IT-Beratung` |
| **`street_address`** | String | Street name and building number | `Göllweg 15` |
| **`postal_code`** | String | German 5-digit postal code (*PLZ*) | `12107` |
| **`city`** | String | City or municipality | `Berlin` |
| **`full_address`** | String | Combined formatted German address | `Göllweg 15, 12107 Berlin` |
| **`phone`** | String | De-obfuscated direct telephone number | `+49 30 6692 0010` |
| **`website`** | String | Official company website URL | `http://www.lammel-gbr.de` |
| **`rating`** | String | Customer star rating / review score | `5.0` |
| **`dastelefonbuch_url`** | String | Direct profile URL on dastelefonbuch.de | `https://adresse.dastelefonbuch.de/...` |
| **`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-dastelefonbuch-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-dastelefonbuch-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

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

#### cURL (Direct HTTP API)

```bash
curl "https://api.apify.com/v2/acts/dach_leads~germany-dastelefonbuch-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 Telefonbuch uses predictable page route indexing (`/Branchen/{Keyword}/{City}/{PageNumber}`). The scraper automatically steps through result pages and decodes the standard schema.org 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 `dastelefonbuch.de`, de-obfuscates split phone spans, 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 Telefonbuch 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 Telefonbuch 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 5,000).

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

Use Apify Proxy to bypass Cloudflare anti-bot blocks automatically.

## Actor input object example

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

# 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",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("dach_leads/germany-dastelefonbuch-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",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("dach_leads/germany-dastelefonbuch-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",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call dach_leads/germany-dastelefonbuch-scraper --silent --output-dataset

```

## MCP server setup

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