Gelbe Seiten Scraper for German Business Leads avatar

Gelbe Seiten Scraper for German Business Leads

Pricing

from $2.10 / 1,000 results

Go to Apify Store
Gelbe Seiten Scraper for German Business Leads

Gelbe Seiten Scraper for German Business Leads

Scrape gelbeseiten.de, the German yellow pages, by trade and city. Get names, addresses, phone numbers, ratings, geo data, and opening hours, plus a market summary of the local competitive landscape per query. Built for lead generation, DACH sales teams, and AI agents.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

Skootle

Skootle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Need German business leads with phone numbers you can actually call? This actor pulls structured business records from Gelbe Seiten, the German yellow pages, by trade and city. Run it three ways: type a trade and a city and press Start, schedule it to refresh a lead list weekly, or call it from your CRM pipeline or AI agent through the Apify API. Every run also ships a market summary record that tells you how crowded the local market is before you spend a cent on outreach.

Gelbe Seiten Scraper for German Business Leads

TL;DR

You give it a branche (trade, like friseur, steuerberater, zahnarzt) and an ort (city or postcode, like berlin or 20095). You get back one record per business with name, category, street, postcode, city, district, phone, ratingScore, reviewCount, openingStatus, website, detailUrl, and a fieldCompletenessScore so you can filter thin records out before they hit your CRM. Turn on fetchDetails and each record is enriched from the business detail page with latitude, longitude, and openingHours. Every run also writes one MARKET_SUMMARY record: total businesses listed for that search, phone coverage, rating distribution, review volume, and the top rated competitors. That is the part no other Gelbe Seiten scraper ships.

The pain it kills: manually copying names and phone numbers out of gelbeseiten.de into a spreadsheet, one listing at a time, with no idea whether you got 50 of 80 or 50 of 800.

If this actor saves you an afternoon of copy-paste, please leave a quick review on the Reviews tab. Reviews are how small, honest tools get found.

What does the Gelbe Seiten scraper do?

It searches gelbeseiten.de exactly like a person would: https://www.gelbeseiten.de/suche/<branche>/<ort>. It then reads every result card, follows the site's own pagination until it has the number of records you asked for, validates every record against a versioned schema, and writes clean JSON to the dataset. No browser, no proxy tricks, no session juggling. Gelbe Seiten serves this data openly, and the actor fetches it the cheap, polite way: plain HTTP.

Three things it does that a copy-paste session or a cheaper scraper does not:

  1. It tells you the size of the whole market, not just your page. The site says how many businesses exist for your search. The market summary reports it, so "50 records captured, 821 available" is a fact you get on run one.
  2. It scores every record. fieldCompletenessScore (0 to 100) tells you how much of the record is filled in. Sort by it, and your outreach list starts with businesses that have a phone, a rating, and a district.
  3. It fails honestly. If the site returns results and the actor parses zero, the run fails with a snapshot saved for debugging. You will never pay for a green run with an empty dataset.

Why scrape Gelbe Seiten instead of Google Maps?

Google Maps data is expensive to scrape at scale, aggressively defended, and mixes registered businesses with unverified pins. Gelbe Seiten is the registry-grade directory German businesses actually pay to be listed in. Records carry the business's own submitted category, address, and phone number. For DACH lead generation, that means fewer dead numbers and cleaner segmentation by trade. It is also dramatically cheaper to collect, and this actor passes that saving on: the platform cost of a thousand records here is a couple of cents, and pricing starts at $3.00 per 1,000 records.

Who is this for?

  • Lead-gen agencies building call and mail lists for German SMB niches: dentists in Hamburg, tax advisors in Munich, hair salons in Berlin.
  • DACH sales teams sizing a territory before hiring or planning a route.
  • Local service marketplaces seeding supplier databases city by city.
  • AI agents and automations. Every record carries agentMarkdown, a compact, LLM-ready block, and every run writes an AGENT_BRIEFING file to the key-value store, so an agent can read one artifact and know what happened.
  • Market researchers who need rating distributions and competitor density per city, which is exactly what the MARKET_SUMMARY record contains.

How do I run it?

The prefilled input works out of the box: friseur in berlin. Press Start and you get 50 hair salons and one market summary in under 15 seconds.

{
"branche": "steuerberater",
"ort": "muenchen",
"maxItems": 100,
"fetchDetails": false,
"emitMarketSummary": true
}
  • branche: what to find. German terms work best (friseur, steuerberater, zahnarzt, elektriker, restaurant).
  • ort: where. City name or postcode. Umlauts are handled, muenchen and münchen both work.
  • maxItems: how many records. The actor paginates the site until it reaches this number or runs out of results.
  • fetchDetails: visit each business's own Gelbe Seiten page for latitude, longitude, and openingHours. Slower, one extra page fetch per business, and worth it when you need territory maps or call-window planning.
  • emitMarketSummary: on by default. Adds the one landscape record per run.

What does the output look like?

Real rows from this actor's verification runs (Berlin hair salons, July 2026):

{
"name": "Hair Affair",
"category": "Friseure",
"street": "Friesenstr. 8",
"postcode": "10965",
"city": "Berlin",
"district": "Kreuzberg",
"phone": "030 6 91 90 89",
"ratingScore": null,
"reviewCount": 0,
"openingStatus": "OPEN",
"website": null,
"detailUrl": "https://www.gelbeseiten.de/gsbiz/dbb0b6e7-fc4d-48ee-8309-909beb906c9c",
"fieldCompletenessScore": 90
}
{
"name": "Ihr Frisör Er Sie Es",
"category": "Friseure",
"street": "Falkenseer Chaussee 31",
"postcode": "13583",
"city": "Berlin",
"district": "Falkenhagener Feld",
"phone": "030 3 72 17 23",
"ratingScore": 5,
"reviewCount": 1,
"openingStatus": "OPEN",
"detailUrl": "https://www.gelbeseiten.de/gsbiz/..."
}

And the market summary that came with them:

  • Gelbe Seiten lists 821 hair salons for Berlin; the run captured the 50 requested.
  • 95.4% of captured businesses list a phone number.
  • 73.8% carry customer ratings, average 4.69 of 5, with 260 reviews across the set.
  • Top rated with 3+ reviews: Salon Buckwitz (5.0 from 38 reviews), Nickel Ingo Friseursalon (5.0 from 25), Bfriends Friseure (5.0 from 19).

That last list is a ready-made "who do I have to beat" answer for any local business client, and a "call the ones with zero reviews first" answer for anyone selling reputation management.

Every record also carries agentMarkdown (the same record as a compact markdown block), realId (Gelbe Seiten's own stable UUID for the business, so re-runs dedupe cleanly), scrapedAt in ISO 8601, and schemaVersion so downstream code can pin what it parses.

What does it cost?

Pricing is per result, tiered by your Apify plan: $3.00 per 1,000 records on the free plan, tapering to $2.10 per 1,000 for GOLD tier subscribers, plus a $0.01 run start fee. A 100-record city list costs about $0.31. A 1,000-record region sweep costs about $3.01 at the top rate.

For comparison, hiring a VA to copy 1,000 listings at even two minutes per listing is 33 hours of work. The going rate for German B2B contact records from list brokers is $200 to $500 per 1,000, with no completeness scoring and no market context. Competing Gelbe Seiten actors on Apify charge $1.20 to $5.00 per 1,000 and none of them ship the market summary, the completeness score, or an honest-failure contract.

The platform compute cost is on us and it is tiny: this is an HTTP-only actor, no browser, so a 50-record run finishes in about 8 seconds.

Three workflows buyers actually run

The territory list. A lead-gen agency signs a client selling salon software. Monday morning: run friseur across berlin, hamburg, muenchen, koeln, 200 records each, fetchDetails on. By lunch there is a geocoded list of 800 salons with phone numbers and call windows from opening hours, sorted by fieldCompletenessScore so the first calls hit the fullest records. The market summaries tell the client how many salons each city actually holds, which becomes the retainer conversation for next quarter.

The reputation gap hunt. An online-marketing freelancer runs zahnarzt in stuttgart and reads the market summary first: how many dentists carry ratings, what the average is, who leads. Every practice with reviewCount: 0 in a market where the leaders hold 40+ reviews is a warm prospect for a reviews-management pitch, and the actor just delivered the pitch deck numbers for free.

The scheduled refresh. A marketplace ops team schedules the actor monthly for their ten seed categories. realId keeps deduplication trivial: new IDs are new businesses to onboard, vanished IDs are churn signals worth checking. The AGENT_BRIEFING file in the key-value store gets read by an automation that posts a one-line delta to Slack, so nobody opens a dataset unless something moved.

Frequently asked questions

Which trades and cities work? Anything Gelbe Seiten covers, which is effectively every registered business category in Germany. Use German terms for branche. For ort, any German city, town, or postcode works.

How many results can I get per run? As many as the directory holds for your search. The Berlin hair salon market alone holds 800+. The actor paginates until it reaches maxItems or the end of the listings.

Do I get phone numbers? Yes, phone coverage in our verification runs was above 95% of listings. Phones come from the listing itself, as the business submitted them.

Do I get email addresses? Gelbe Seiten does not publish email addresses on listing cards, so no. You get website URLs where the business listed one, and the detailUrl for every record.

What happens when a search has no results? You get zero records, a market summary saying the market is empty, and a clean, honest run. If the site itself shows results and the actor parses nothing (for example, after a site redesign), the run fails instead of pretending, and saves a debug snapshot so the issue can be fixed fast.

Can my AI agent use this? Yes, that is a design goal. Records carry agentMarkdown, runs write an AGENT_BRIEFING markdown file to the key-value store, enums are normalized, dates are ISO 8601, and the schema is versioned. An agent can call the actor through the Apify API, read the briefing, and decide what to do next without custom parsing.

How fresh is the data? It is scraped live at run time, straight from the directory. Schedule the actor weekly or monthly to keep a lead list current; realId makes deduplication across runs trivial.

Is this legal? The actor reads publicly available business directory listings, the same pages any visitor sees, over plain HTTP at a polite rate. It collects business contact data that companies published specifically to be found and contacted. It does not log in, does not bypass access controls, and does not collect private personal data. If you use the data for outreach, you are responsible for complying with the laws that apply to you, including GDPR and UWG rules on business-to-business contact in Germany.

What makes this different from the other Gelbe Seiten scrapers?

There are several Gelbe Seiten actors on the store. Here is the honest comparison: they return listing rows, and for basic rows they work. This one is built for the step after scraping, which is deciding what to do with the data:

  • A per-run market summary with market size, phone coverage, rating distribution, and rating leaders. No incumbent ships this.
  • fieldCompletenessScore on every record, so list quality is measurable, not vibes.
  • Agent-grade output: agentMarkdown, AGENT_BRIEFING, normalized enums, ISO dates, versioned schema, stable realId for dedupe.
  • Honest failures: a run that cannot deliver fails visibly. You do not pay a start fee for an empty green run.
  • Detail enrichment mode with geo coordinates and opening hours when you need them, off by default so the basic run stays fast and cheap.

More lead and market data from the same shelf

If this actor fits your workflow, two siblings are built the same way, with the same output discipline:

Your feedback shapes this actor

Found a bug, a trade that parses oddly, or a field you need that is missing? Please open an issue on the Issues tab rather than leaving it in a review, and it gets fixed fast, usually within days. Issues come with run context, which makes the fix faster for you and everyone after you. And if the actor already does what you need, a short review on the Reviews tab genuinely helps other buyers find it.