# Gelbe Seiten Scraper - German Business Directory (`plowdata/gelbe-seiten`) Actor

Extract German business leads and company information from Gelbe Seiten (gelbeseiten.de). Collect emails, phone numbers, addresses, reviews, and rich listing data. Export to CSV, Excel, JSON, or integrate into automation workflows.

- **URL**: https://apify.com/plowdata/gelbe-seiten.md
- **Developed by:** [Frederic](https://apify.com/plowdata) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 457 total users, 18 monthly users, 100.0% runs succeeded, 25 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.35 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Gelbe Seiten Scraper

Automate **customer-defined searches on Gelbe Seiten (gelbeseiten.de)** and return the matching public business listings as clean, structured data.

The Actor lets you choose a **search query, location, sorting, and result scope**, then processes the matching Gelbe Seiten listings and returns strongly typed records that are easy to use in analysis, enrichment, research, and automation workflows.

Each result retains its **source provenance**, including a link back to the corresponding Gelbe Seiten listing where available.

***

### 🚀 Built for structured business research

The Actor is designed for workflows that need reliable, structured access to the results of specific Gelbe Seiten searches.

- **Customer-defined searches**
  You decide what to search for, where to search, and how many result pages to process.

- **One listing = one row**
  Matching listings are emitted as individual structured records and deduplicated within the run.

- **Rich business information**
  Extract available addresses, phone numbers, websites, opening hours, industries, services, ratings, and other public listing metadata.

- **Optional detailed profile data**
  Listing detail pages can contain additional information such as social links, FAQs, reviews, media, services, and other profile metadata.

- **Source provenance**
  Results retain source information so downstream systems can identify and reference the original Gelbe Seiten listing.

- **Designed for unattended runs**
  The Actor handles transient failures, malformed records, restarts, and migrations while avoiding duplicate processing within a run.

- **Structured exports**
  Use the resulting dataset directly as JSON, CSV, Excel, XML, or through Apify's table and API interfaces.

***

### 🎯 Typical use cases

- **Business Research** – Find companies matching a particular industry, service, or location
- **Market Analysis** – Analyze business presence across categories or geographic areas
- **Company Discovery** – Identify businesses relevant to a customer-defined search
- **Data Enrichment** – Supplement existing company records with publicly listed business information
- **Competitive Research** – Compare businesses, industries, services, ratings, and locations
- **Workflow Automation** – Feed structured search results into internal tools, CRMs, analytics pipelines, or other automations

The Actor performs only the searches and result scope requested by the user.

***

### ⚙️ Input

You control the scope of every run.

| Parameter  |   Type | Description                                                            |
| ---------- | -----: | ---------------------------------------------------------------------- |
| `query`    | string | Search term corresponding to the Gelbe Seiten **Was** field. Required. |
| `location` | string | Optional geographic search corresponding to the **Wo** field.          |
| `sort`     | string | Optional result ordering, such as relevance or rating.                 |
| `maxPages` | number | Maximum number of result pages to process for this run.                |

Example:

```json
{
  "query": "Elektriker",
  "location": "Berlin",
  "maxPages": 5
}
```

The Actor processes only the result pages covered by the parameters supplied for that run.

***

### 📦 Output

Each dataset item represents one matching Gelbe Seiten listing.

The output schema is strongly typed and designed to support both simple tabular workflows and richer integrations.

#### ⭐ Common fields

- `name`
- `address`
- `phone`
- `email`
- `website`
- `rating`
- `ratingCount`
- `industries`
- `services`
- `openingHours`
- source / provenance URL

Availability depends on what is publicly present on the corresponding listing.

***

### 📘 Output structure

#### 🔹 Core listing information

- `id`, `memberId` – Listing identifiers
- `name` – Business or listing name
- `logoURL` – Logo URL when available
- `bestIndustry` – Primary industry classification
- `shortDescription` – Short profile description when available
- `highlightLevel`, `partnerLevel` – Listing metadata exposed by Gelbe Seiten

#### 🔹 Location and contact information

- `address`
- `googleMapsAddress`
- `phone`
- `additionalPhoneNumbers`
- `email`
- `website`
- `openingHours`

#### 🔹 Ratings and reviews

Where available:

- `rating`
- `ratingCount`
- `reviews[]`

Review records can contain text, ratings, timestamps, and associated metadata depending on the source listing.

#### 🔹 Business details

Depending on the listing:

- `industries`
- `services`
- `acceptedPaymentMethods`
- `brands`
- `memberships`
- `languages`
- `accessibility`
- `menu`
- `faq`
- `brochure`
- `openPositions`

#### 🔹 Media and online presence

Where exposed by the source listing:

- `images[]`
- `socialAccounts[]`

Supported account types can include Facebook, Instagram, LinkedIn, YouTube, Google Maps, TikTok, X/Twitter, Xing, and others.

#### 🔹 Additional metadata

Some listings expose additional structured information such as:

- company information
- commercial-register information
- managing directors
- employee information
- awards and certificates
- target groups
- service areas
- references
- related listings

Hotel and accommodation listings may additionally contain parsed Booking.com-related metadata when present.

#### 🔹 Provenance

Where available, each record includes provenance linking it back to the corresponding source listing.

This makes it easier to:

- verify individual records against their source;
- preserve source attribution in downstream systems;
- revisit the original listing when more context is needed; and
- distinguish extracted source information from later enrichment performed by your own workflow.

***

### 🛡️ Reliability and schema guarantees

The Actor is built around a stable, validated output schema.

- Strongly typed output
- Schema validation before records are emitted
- Graceful handling of missing optional fields
- Automatic handling of transient request failures
- Run-level deduplication
- Restart and migration support

Because individual Gelbe Seiten profiles differ substantially, optional fields may not be present for every listing.

When the source structure changes, the Actor is updated to continue producing consistent records where possible.

***

### 👥 Intended users

The Actor is suitable for:

- **Researchers and Analysts** – Structured company and market research
- **Agencies** – Customer-specific business discovery and enrichment workflows
- **Sales Operations Teams** – Research businesses matching defined criteria
- **Business Owners** – Research markets, suppliers, competitors, or partners
- **Journalists** – Identify relevant businesses and potential sources
- **Automation Builders** – Integrate customer-defined business searches into larger workflows

***

### ⚖️ Responsible use

This Actor provides software for automating user-defined queries against publicly accessible information.

Users are responsible for ensuring that their particular use of the Actor and resulting data complies with applicable laws, contractual obligations, and third-party rights.

Avoid using the Actor to access content that requires authentication or other access controls.

***

### 💬 Support

Questions, edge cases, or unexpected results?

Open a support ticket and include the affected run ID or relevant log output so the issue can be reproduced and investigated.

# Changelog

This Actor's version history is a separate document: https://apify.com/plowdata/gelbe-seiten/changelog.md

# Actor input Schema

## `query` (type: `string`):

Search query (Was) for the GelbeSeiten search.

## `location` (type: `string`):

Location (Wo) for the GelbeSeiten search, optional.

## `sort` (type: `string`):

Sort option for the GelbeSeiten search, optional, defaults to <relevanz>.

## `maxPages` (type: `integer`):

Maximum number of pages to scrape, optional, by default all pages are scraped.

## Actor input object example

```json
{
  "query": "Cafe",
  "location": "Berlin",
  "maxPages": 1
}
```

# Actor output Schema

## `companies` (type: `string`):

Extracted companies

# 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 = {
    "query": "Cafe",
    "location": "Berlin",
    "maxPages": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("plowdata/gelbe-seiten").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 = {
    "query": "Cafe",
    "location": "Berlin",
    "maxPages": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("plowdata/gelbe-seiten").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 '{
  "query": "Cafe",
  "location": "Berlin",
  "maxPages": 1
}' |
apify call plowdata/gelbe-seiten --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,plowdata/gelbe-seiten"
        }
    }
}
```

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/efqDLG1mOwIzwvqB2/builds/bXwUGlj1xs1QO1cMh/openapi.json
