Gelbe Seiten Scraper & API - German Business Leads & Emails avatar

Gelbe Seiten Scraper & API - German Business Leads & Emails

Pricing

$1.20 / 1,000 results

Go to Apify Store
Gelbe Seiten Scraper & API - German Business Leads & Emails

Gelbe Seiten Scraper & API - German Business Leads & Emails

Gelbe Seiten scraper and API: German B2B leads from gelbeseiten.de by category (Branche) and city. One result = one business: name, phone, email, website, address, rating, reviews, opening hours, services, fax, social links. Emails included. No login, no start fee. $1.20 per 1,000.

Pricing

$1.20 / 1,000 results

Rating

0.0

(0)

Developer

Giovanni Rich

Giovanni Rich

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

This Gelbe Seiten scraper turns gelbeseiten.de, Germany's biggest business directory, into clean B2B lead lists: give it categories (Branchen) like Elektriker, Steuerberater or Zahnarzt and German cities, and get one row per business with name, phone, email, website, full address, rating and reviews, opening hours, fax, social links, services, payment methods and coordinates, as JSON, CSV or Excel. Use it as a Gelbe Seiten API, a German business directory scraper, a Germany lead generation tool for cold outreach and sales prospecting, or a gelbeseiten.de email extractor from your own code, Make, Zapier or n8n.

It reads the public category pages and business pages over plain HTTP, with no headless browser and no login. 120 businesses with email and opening hours take about 8 seconds.

What you get

  • Contact: business name, phone (as listed and in +49 format), email, website, fax, Facebook / Instagram / LinkedIn links.
  • Address: street, postal code (PLZ), city, district, one-line address, latitude and longitude, distance from the city centre.
  • Reputation: average rating and number of reviews.
  • Business profile: main category and all categories, services / keywords (Leistungsumfang), description, opening hours per day, payment methods, schema.org business type (Dentist, Electrician, Attorney ...), logo, premium-listing flag, last-updated date.
  • Search context: the category and city that found it, its position in the Gelbe Seiten results and how many businesses that search lists.

Sample output

Real rows from the prefilled cloud run (Elektriker in Berlin, 20 businesses), a few of the 38 fields:

namecategoryphoneemailwebsitecityrating
Bahrke Elektroinstallation u. -geräte GmbHElektroinstallationen030 82 70 30 30bahrke-berlin@t-online.debahrke-elektro.de10713 Berlin5.0 (2)
Herzog Elektro-Anlagen GmbHElektroinstallationen030 7 65 92 90info@herzog-elektro.deherzog-elektro.de12309 Berlin4.8 (2)
EF-ES-WE Elektroanlagen GmbHElektroinstallationen030 6 90 08 00kontakt@efeswe.deefeswe.de13503 Berlin4.8 (39)
Griesbach ElektroanlagenElektroinstallationen030 78 71 81 31info@elektro-griesbach.deelektro-griesbach.de12103 Berlin4.7 (17)
Elektro-Anlagen Südwest Elektromeister GmbHElektroinstallationen030 80 90 84 80info@e-a-s.berline-a-s-gmbh.de14167 Berlin4.8 (314)

All 20 rows of that run have a phone number and an email. Fill rates in a bigger 120-business test (Steuerberater and Zahnarzt in München and Hamburg): phone, address and coordinates 100%, email 93%, website 90%, services 73%, opening hours 62%, rating 23%, fax 23%, social links 13%.

Use cases

  • B2B lead generation in Germany: build call and email lists of tradespeople, tax advisors, lawyers, dentists, agencies or any other Branche, city by city
  • Sales territory planning: count and map every business of a category in your cities (coordinates included)
  • Local SEO and marketing agencies: find businesses without a website, with few reviews or with a low rating, and pitch them
  • Market research: compare how many providers a category has across German cities, and what services they list
  • CRM enrichment: add phone, email, website, hours and address to the companies you already track

Pricing

$1.20 per 1,000 businesses (pay per result; one result = one business saved to the dataset). The two most-used Gelbe Seiten scrapers on the Store charge $2.00 and $1.40 per 1,000, plus a start fee per run.

You scrapeYou pay
100 businesses$0.12
1,000 businesses$1.20
10,000 businesses$12.00
100,000 businesses$120.00

No start fee, and the same price with or without the business-page details (emails, hours, fax). The Apify free plan's $5 monthly credit covers about 4,150 businesses. The prefilled input (Elektriker in Berlin, 20 businesses with emails) costs $0.024 and took about 6 seconds in a cloud test. Businesses skipped by your filters, duplicates, categories that do not exist, removed listings and failed requests are never charged. If you set a maximum cost per run, the scraper stops cleanly when it reaches it.

Why this one

  • Cheaper than the most-used Gelbe Seiten scrapers, with no start fee.
  • Emails at the same price: each business page is opened for email, fax, opening hours and services.
  • Filters before you pay: keep only businesses with an email, a website, a phone number or a minimum rating.
  • Ready for your CRM: phone in +49 format, full address, coordinates and every category in each row.
  • Fast and light: plain HTTP, no browser, no login; 120 businesses with emails in about 8 seconds.

FAQ

Does it need a browser, cookies or a Gelbe Seiten account? No. Plain HTTPS requests to the public pages, no login.

Which proxy should I use? None: leave the default. The actor connects directly and retries any blocked request through Apify Proxy automatically (datacenter, then German residential).

Is scraping Gelbe Seiten legal? The actor only reads public business listings that robots.txt allows. You are responsible for how you use the data: business contact data of sole traders can count as personal data under the GDPR, and German law (UWG) restricts unsolicited advertising emails and calls, so check your outreach before sending.

Why is my category not found? Gelbe Seiten uses fixed German category names. Open gelbeseiten.de, search your category in your city, and paste the resulting /branchen/... URL into Gelbe Seiten URLs; if the page you land on is a /suche/... URL, it is a free-text search and cannot be scraped.

Is there a cheaper mode without business pages? The price per business is the same; turning scrapeDetails off only makes the run faster (about 50 businesses per request instead of one request per business) and returns fewer emails.

How to use

  1. Type Categories (Branchen) in German, one per line: Elektriker, Steuerberater, Zahnarzt, Restaurant, Immobilienmakler ... Plurals are tried as singular automatically (Hotels -> hotel).
  2. Type Locations, one per line: Berlin, München, Frankfurt am Main, Berlin Mitte. Every category is searched in every location.
  3. Or paste Gelbe Seiten URLs: category pages (https://www.gelbeseiten.de/branchen/elektriker/berlin) and single business pages (https://www.gelbeseiten.de/gsbiz/...).
  4. Set Max businesses per category + city (0 = every listing), keep Open each business page on for emails, and add filters if you only want businesses with an email, a website, a phone number or a minimum rating.
  5. Click Start and download the leads from the Output tab, or fetch them through the Apify API.

Input

FieldDefaultDescription
categories-Gelbe Seiten categories in German, e.g. Elektriker, Steuerberater
locations-German cities or districts, e.g. Berlin, München, Berlin Mitte
startUrls-Category pages (/branchen/<category>/<city>) or business pages (/gsbiz/<id>)
maxResultsPerSearch100Businesses per category-city pair. 0 = all (up to 5,000)
scrapeDetailstrueOpen each business page for email, fax, hours, services, geo
requireEmail / requireWebsite / requirePhonefalseOnly keep businesses with that contact field
minRating-Only keep businesses rated at least this (0-5)

With no input at all, a 20-business demo (Elektriker in Berlin) runs.

Input example

{
"categories": ["Steuerberater", "Zahnarzt"],
"locations": ["München", "Hamburg"],
"startUrls": ["https://www.gelbeseiten.de/branchen/rechtsanwalt/frankfurt%20am%20main"],
"maxResultsPerSearch": 100,
"scrapeDetails": true,
"requireEmail": true
}

Output example

{
"id": "ffa71c1c-ee1c-4f3d-90ed-f35f5eac5a40",
"name": "hansezahn I HAMBURG, Dr. Janke und Partner, Zahnärzte",
"category": "Zahnärzte",
"categories": ["Zahnärzte", "Schwerpunkt Endodontie", "Implantologie"],
"phone": "040 6 53 99 82",
"phoneE164": "+49406539982",
"fax": "040 6 54 76 54",
"email": "info@hansezahn-hh.de",
"website": "http://www.hansezahn-hh.de",
"socialLinks": ["https://www.facebook.com/hansezahn/?ref=settings"],
"street": "Rodigallee 250",
"postalCode": "22043",
"city": "Hamburg",
"country": "DE",
"address": "Rodigallee 250, 22043 Hamburg",
"latitude": 53.57074,
"longitude": 10.125491,
"distanceKm": 9.1,
"rating": 4.7,
"reviewCount": 3,
"openingHours": ["Monday 08:00-19:00", "Tuesday 07:30-19:00", "Wednesday 07:30-18:30", "Thursday 07:30-18:00", "Friday 08:00-15:00"],
"services": ["Brücken", "Implantologie", "Kronen", "Parodontologie", "Professionelle Zahnreinigung", "Wurzelkanalbehandlung"],
"businessTypes": ["Dentist"],
"premiumListing": true,
"lastUpdated": "2026-05-03",
"url": "https://www.gelbeseiten.de/gsbiz/ffa71c1c-ee1c-4f3d-90ed-f35f5eac5a40",
"searchCategory": "Zahnarzt",
"searchLocation": "Hamburg",
"position": 9,
"totalInSearch": 803,
"detailsScraped": true,
"scrapedAt": "2026-10-26T17:34:49.439Z"
}

(Shortened: rows also carry district, description, payment methods, logo, open-now text and the Gelbe Seiten participant number; services are cut here.)

The dataset has three views: Leads, Details and Search order. The RUN_SUMMARY record lists per category and city how many businesses Gelbe Seiten has, how many were saved, how many your filters skipped and why each search stopped, plus any category that does not exist.

API example

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("rel8ble/gelbe-seiten-scraper").call(run_input={"categories": ["Steuerberater"], "locations": ["München", "Hamburg"], "maxResultsPerSearch": 200, "requireEmail": True})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], "|", item["phone"], "|", item["email"])

One HTTP call that runs the actor and returns the rows (curl):

curl -X POST "https://api.apify.com/v2/acts/rel8ble~gelbe-seiten-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"categories": ["Elektriker"], "locations": ["Berlin"], "maxResultsPerSearch": 100}'

Integrations

  • Our Website Contact Extractor: pass the website column to collect more emails and social profiles from each company site.
  • Our Website Tech Stack Detector: see which CMS, shop system or analytics each lead's website runs.
  • Make, Zapier and n8n: run the actor and push the leads to your CRM, a mailing tool or Slack.
  • Google Sheets: export the dataset straight to a spreadsheet.
  • Apify API: start runs and download results over REST, or with the JavaScript and Python clients.
  • Webhooks: get notified when a run finishes.
  • MCP for AI agents: the Apify MCP server (https://mcp.apify.com) lets Claude, ChatGPT, Cursor and other agents call this Gelbe Seiten scraper as a tool.

Limits

  • Categories, not free text. The scraper uses Gelbe Seiten's category pages (/branchen/<category>/<city>); free-text searches (/suche/...) are not fetched because gelbeseiten.de's robots.txt excludes them. Use the German category name Gelbe Seiten uses (e.g. zahnarzt, not dentist). A category that does not exist for a city is listed in RUN_SUMMARY and costs nothing.
  • Germany only, and the city or district must be one Gelbe Seiten knows (postal codes on their own are free-text searches and are skipped).
  • Emails, fax, hours and services are only there when the business listed them; most emails come from the business page, so keep scrapeDetails on if you need them.
  • Up to 5,000 businesses per category-city pair. For bigger cities, split by district (e.g. Berlin Mitte, Berlin Pankow).
  • Gelbe Seiten sometimes lists the same business twice in one search; duplicates are saved once.