# Das Telefonbuch Lead Scraper (`kinaesthetic_millionaire/dastelefonbuch-leads-scraper`) Actor

Scrapes business leads from Das Telefonbuch (dastelefonbuch.de) – extracts name, address, phone, email, website, description, coordinates, and ratings.

- **URL**: https://apify.com/kinaesthetic\_millionaire/dastelefonbuch-leads-scraper.md
- **Developed by:** [Parsedom Inc](https://apify.com/kinaesthetic_millionaire) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Das Telefonbuch Lead Scraper

Scrapes business leads from [Das Telefonbuch](https://www.dastelefonbuch.de), Germany's leading telephone directory. Extracts company name, address, phone number, email, website, description, geographic coordinates, and ratings from category and search result pages, and saves the results as a structured dataset.

### ✨ Features

- **Business lead extraction** — pulls name, address, phone numbers, email, website, description, coordinates, and ratings for each listing
- **Pagination support** — automatically follows "next page" links to collect results across multiple pages
- **Proxy support** — configurable proxy to avoid IP blocking

### 🔧 Input Configuration

| Field                | Type                 | Required | Default                                                   | Description                                                                                      |
| -------------------- | -------------------- | -------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `startUrls`          | Array of URL objects | ✅       | `https://www.dastelefonbuch.de/Suche/Physiotherapie/Jena` | One or more listing pages (e.g., `/Suche/Physiotherapie/Jena` or `/Branchen/Bodenleger/Berlin`). |
| `maxResults`         | Integer              | —        | 5                                                         | Stop after this many detail pages (optional, null = no limit).                                   |
| `proxyConfiguration` | Object               | —        | Apify Proxy (Residential)                                 | Proxy settings for the crawler. Residential proxies are recommended to avoid blocking.           |

**Supported URL types:**

- Search result pages: `https://www.dastelefonbuch.de/Suche/<category>/<city>`
- Category (branch) pages: `https://www.dastelefonbuch.de/Branchen/<category>/<city>`

### 📦 Output

Each item in the dataset represents a single business listing scraped from a detail page.

**Sample output:**

```json
{
    "url": "https://adresse.dastelefonbuch.de/Jena/1-Physiotherapie-u-Ergotherapie-im-POST-CARRE-Jena-Engelplatz.html",
    "name": "Physiotherapie u. Ergotherapie im POST CARRE",
    "address": "Engelplatz 07743 Jena",
    "phones": ["03641236047"],
    "email": null,
    "website": null,
    "description": "Physiotherapie u. Ergotherapie im POST CARRE Physiotherapie u. Ergotherapie im POST CARRE in Jena-West erreichen Sie unter der Telefonnummer 03641 23 60 47. Während der Öffnungszeiten hilft man Ihnen dort gerne weiter. Sie möchten Physiotherapie u. Ergotherapie im POST CARRE an Bekannte oder Freunde weiterempfehlen? Sie können die Kontaktdaten einfach per Mail oder SMS versenden und auch als VCF-Datei für Ihr eigenes digitales Adressbuch speichern. Für Ihren Besuch bei Physiotherapie u. Ergotherapie im POST CARRE nutzen Sie am besten die kostenfreien Routen-Services für Jena: Lassen Sie sich die Adresse von Physiotherapie u. Ergotherapie im POST CARRE auf der Karte von Jena unter \"Kartenansicht\" inklusive Routenplaner anzeigen oder suchen Sie mit der praktischen Funktion \"Bahn/Bus\" die beste öffentliche Verbindung zu Physiotherapie u. Ergotherapie im POST CARRE in Jena.",
    "coordinates": {
        "lat": "50.926208",
        "lon": "11.583237"
    },
    "rating": {
        "average": 5,
        "count": 1
    }
}
````

### 🎯 Uses of This Data

- Building targeted B2B lead lists for sales and marketing outreach
- Local market research and competitor analysis by city or category
- Verifying and enriching existing business contact databases
- Identifying businesses without a website for digital service outreach
- Mapping business locations and ratings for location-based analysis

### 🚀 How to Use

1. [Sign up](https://apify.com/sign-up) for a free Apify account — includes **$5 monthly credit**.
2. Open the actor page and click **Try for free**.
3. Fill in the **Input** fields (start URL or search query is required).
4. Click **Start** and wait for the run to complete.
5. Download results from the **Output** tab in JSON, CSV, or Excel format.

You can also run this actor via the [Apify API](https://docs.apify.com/api/v2) or integrate it directly into your workflows using [Zapier](https://zapier.com/apps/apify), [Make](https://www.make.com/), or [n8n](https://n8n.io/).

### 📌 Notes

- **Proxy recommended for large-scale scraping** — For high-volume runs, enable the Apify Residential or Datacenter proxy to avoid blocks.
- **API integration** — This actor can be called as an API from any automation platform (Zapier, Make, n8n, custom scripts).

### 🔗 Other Actors

| Actor                                                                                   | What it does                                                                                                                                                                                                |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Booksy Leads Scraper](https://apify.com/kinaesthetic_millionaire/booksy-leads-scraper) | Extracts business profiles from Booksy including names, addresses, phone numbers, emails, social media, and ratings.                                                                                        |
| [Hipages Lead Scraper](https://apify.com/kinaesthetic_millionaire/hipages-lead-scraper) | Scrapes business details from Hipages, including names, contact information, ratings, and more. It supports pagination and proxy configuration, making it suitable for lead generation and market research. |

### 💬 Support & Contact

If you encounter any issues or have questions, please reach out:

- 📧 <info@parsedom.com>
- 🌐 <https://parsedom.com>
- 💼 Fiverr: <https://www.fiverr.com/s/rEmNqEb>
- 🤖 Apify expert page: <https://apify.com/partners/find/parsedom-inc>

You can also find more of our actors on the [Apify Store](https://apify.com/store).

# Actor input Schema

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

One or more listing pages (e.g., /Suche/Physiotherapie/Jena or /Branchen/Bodenleger/Berlin).

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

Stop after this many detail pages (optional, null = no limit).

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

Proxy settings for the crawler. Residential proxies are recommended to avoid blocking.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.dastelefonbuch.de/Suche/Physiotherapie/Jena"
    }
  ],
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.dastelefonbuch.de/Suche/Physiotherapie/Jena"
        }
    ],
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kinaesthetic_millionaire/dastelefonbuch-leads-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 = {
    "startUrls": [{ "url": "https://www.dastelefonbuch.de/Suche/Physiotherapie/Jena" }],
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("kinaesthetic_millionaire/dastelefonbuch-leads-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.dastelefonbuch.de/Suche/Physiotherapie/Jena"
    }
  ],
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call kinaesthetic_millionaire/dastelefonbuch-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kinaesthetic_millionaire/dastelefonbuch-leads-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Das Telefonbuch Lead Scraper",
        "description": "Scrapes business leads from Das Telefonbuch (dastelefonbuch.de) – extracts name, address, phone, email, website, description, coordinates, and ratings.",
        "version": "1.0",
        "x-build-id": "vVzEcF1ZVPjvVh5tu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kinaesthetic_millionaire~dastelefonbuch-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kinaesthetic_millionaire-dastelefonbuch-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/kinaesthetic_millionaire~dastelefonbuch-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kinaesthetic_millionaire-dastelefonbuch-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/kinaesthetic_millionaire~dastelefonbuch-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kinaesthetic_millionaire-dastelefonbuch-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "One or more listing pages (e.g., /Suche/Physiotherapie/Jena or /Branchen/Bodenleger/Berlin).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Stop after this many detail pages (optional, null = no limit)."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for the crawler. Residential proxies are recommended to avoid blocking."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
