Live contact-sheet sample · Berlin, Germany
Eight Berlin tax advisors. One row per unique place_id. Leftover-email 0. About $0.24.
On August 21, 2026, a single live run of the Google Maps Email Extractor (run reyHSgfydYMPXK3ak, build 1.0.12) searched steuerberater in Berlin, Germany with maxResults 8. It returned exactly 8 contact rows — one per unique place_id, with a leftover-email count of 0, meaning every extracted email landed attached to the place it belongs to. Each row carries the business name, address, phone, website, the email itself, where the email was found (email_source), and a confidence score. This page is written for agencies, franchise teams, B2B sales operations, and market researchers who need a niche-and-city contact sheet built the same way.
The run's email-verify option stayed off: the confidence score reflects where and how the address was found on the business's own site, not a mailbox check. If your buying requirement is deliverability testing, this is not that product — this is source-evidenced public contact research, deduplicated per place.
No form backend, cookies, tracking pixels, or analytics. The email code identifies this case study only after you send the draft.
place_id values across 8 returned rows — one contact row per place, no duplicate businesses.The Berlin proof run
The run used the Google Maps Email Extractor build 1.0.12 — the same build currently on the Store as benthepythondev/google-maps-email-scraper. Run reyHSgfydYMPXK3ak searched one niche in one city: steuerberater (tax advisor) in Berlin, Germany, capped at maxResults 8. The output was 8 rows keyed by 8 unique place_id values, and the run's leftover-email counter finished at 0. That counter is the card's own honesty check: an email the site crawl finds but cannot tie back to a specific place is counted as leftover instead of being forced onto the nearest row. Zero means the sheet is clean.
The first row of the sheet
This is the published first-screen sample from the run — one of the 8 rows, shown field by field so you can judge the schema. The other seven rows have the same shape; they belong to the run output, not to this page.
| Field | Value |
|---|---|
name | JTR Tax & Advisory GmbH |
place_id | 0x47a851c73895685b:0x1e56030e73c342b1 |
primary_email | info@jtr-tax.de |
phone | +491719937927 |
website | https://www.jtr-tax.de/ |
address | Budapester Str. 46, 10787 Berlin, Germany |
email_source | website |
email_confidence | 90 |
email_source: website means the address was extracted from the business's own site, not guessed from a pattern. email_confidence scores that evidence; it is not a mailbox or deliverability check.
Why the card lock matters to a list buyer
Most contact-sheet complaints come down to two failure modes: the same business appearing three times under slightly different listings, and emails glued onto the wrong company. This card locks against both. Deduplication runs on place_id — Google's stable identifier for a physical place — so a chain location and its duplicate map entries collapse to one row each. And the leftover-email counter makes misassignment visible instead of silent: if the crawl finds an address it cannot attribute, that address is reported as leftover, not padded into a row. For an agency building a Berlin outreach list, a franchise team scouting a territory, or a researcher sizing a niche, that means the row count you pay for is the business count you get.
How the extraction works
1. Stable identity
place_id is the primary identity. One contact row per unique place — duplicate map listings collapse instead of inflating the sheet.
2. Website-sourced email
The crawl visits the business's own site and records where each email was found in email_source. DACH Impressum pages are supported.
3. Confidence, not guesses
email_confidence scores the evidence behind each address. The email-verify option stayed off in this run; no mailbox checks are implied.
4. Leftover-email honesty
An email that cannot be tied to a specific place is counted as leftover rather than forced onto a row. This run finished at 0.
What this run cost
Store pricing is per result: $0.01 per place, $0.02 more when an email is attached, $0.01 more when a phone is attached, with the email-verify option off. Eight Berlin tax advisors with emails and phones came to about $0.24005 before discounts. That per-row price is the self-serve path; the managed feed below prices the service around it — scoping, filters, refreshes, and delivery — not the raw rows.
How a managed feed delivers a sheet like this
A pilot starts with a live probe of your exact niche and region. Email coverage is measured in that sample — some niches publish contact addresses widely, some do not — and it is never guaranteed up front.
Limits I keep in the product
Eight rows describe one query, not a market. This was a single capped run of one niche in one city. It demonstrates the schema and the card lock on live data; it is not a Berlin market census.
Confidence is evidence, not deliverability. The score reflects where the address was found. No mailbox, bounce, or deliverability testing happened in this run, and none is implied.
Email coverage varies by niche. A working tax-advisor run does not prove every niche publishes emails at the same rate. The pilot sample measures coverage before a quote.
Public data only. The feed collects contact details businesses publish themselves. It does not include outbound campaigns, consent management, or legal advice.
Self-serve or managed
You can run the Actor in your own Apify account at Store pricing and export the sheet yourself. A managed package covers scoping the niche and region, filters, an agreed schema, delivery, and optional refreshes.
One niche and region
Local business research pilot
$750 one-time
- One niche and region, up to 1,000 enriched businesses
- One row per unique place_id, leftover-email reported
- Email coverage measured in the sample first
- Optional refresh of the same scope: $250
Up to five niche/region searches
Local business Growth feed
$1,750 setup + $900/month
- Up to five niche and region combinations
- Recurring refreshes on an agreed schedule
- Normalized schema across searches
- CSV, Sheet, webhook, or CRM-ready delivery
Apify platform usage, Actor charges, residential proxies, and third-party APIs are separate unless a written quote includes a cap. A recurring service starts only after the sample and schema pass the agreed acceptance check.