Local Business Lists with Contact Routes
Pricing
from $12.00 / 1,000 contact profiles
Local Business Lists with Contact Routes
Local businesses by everyday category and town from open map data (Overture Maps, 18 countries), with the public contact route from each business's own website and its source page.
Pricing
from $12.00 / 1,000 contact profiles
Rating
0.0
(0)
Developer
Tom J
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Build local business lists by category and town from open map data (Overture Maps, 18 countries) and add each business's public contact route from its own website, with the source page. Type everyday words like "kapper", "boulangerie", "plumber" or "Friseur" and a town. No Google scraping, no platform scraping. From $2 per 1,000 businesses + $12 per 1,000 contact profiles.
What you can do with it
- Build a lead list for any local category: hairdressers in Ghent, bakeries in Lille, accountants in Eindhoven.
- Get a source-backed contact route (email, phone or form) from each business's own website.
- Include businesses without a website, with name, address and category from open data.
- Leave out chains if you only want independent businesses.
How to build a local business list in 3 steps
- Enter categories (1–10, in Dutch, French, English or German) and a town, and pick the country.
- Set limits: how many websites to scan and how many businesses without a website to list.
- Click Start.
Input
| Field | Meaning | Default |
|---|---|---|
categories | Everyday words, e.g. kapper, coiffeur, Friseur, fiduciaire; Overture codes like hair_salon also work | required |
location | Municipality or city, e.g. Gent, Pelt, Lille | required |
country | BE NL LU FR DE AT CH GB IE DK SE NO FI ES PT IT PL CZ | BE |
maxWebsites | Business websites scanned for contact routes | 100 (max 500) |
includeWithoutWebsite | Add rows for businesses without a website | on |
maxListedRows | Upper limit for those rows | 100 (max 3,000) |
excludeChains | Leave out chain branches | off |
contactPurpose | any, sales, general, support | any |
emailScope | role_person or all | role_person |
channelScope | core or all | core |
conversionRoutes | Proven booking and quote routes | off |
maxPages, maxRunSeconds, maxConcurrency | Scan limits | 5, 600, 5 |
Output
One row per business. With a website: the contact profile (chosen email or route, up to 25 observed emails, each with its source page). Without a website: name, address, category and any phone or social link from the listing, marked as not verified. Chain branches are marked (listing.chain, with the reason) unless you leave them out.
How much does a business list cost?
| Event | Price |
|---|---|
| Business listed (no own website) | $0.002 |
| Website checked | $0.002 |
| Contact profile | $0.012 |
Booking or quote route (with conversionRoutes) | $0.005 |
| Actor start | $0.00005 |
Example: 800 websites checked, 456 with a contact profile, plus 100 businesses without a website = $1.60 + $5.47 + $0.20 = $7.27.
What you are not charged for
Rows beyond maxListedRows, chains you excluded, and anything a resumed run already charged. Rows are stored before they are charged.
Measured coverage
In four test municipalities (Pelt, Hasselt, Gent-centre, Eindhoven) the open data listed 2,200–12,000 places each, 73–84% with their own website, and 5–15× more business websites than OpenStreetMap alone. On 200 sampled businesses with a website, 57% returned a usable contact profile and 43% an email address. Email selection precision of the underlying scanner: 97.4–97.9% in a 300-site blind benchmark. Results on samples, not a guarantee.
Integrate with any app
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("olliolli/open-business-lists").call(run_input={"categories": ["kapper"], "location": "Gent", "country": "BE"})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
Send the list to Google Sheets, a CRM, Make, Zapier or n8n through Apify's integrations.
Privacy
Personal email addresses (e.g. of sole traders) are labelled personal_data: true; follow the GDPR rules for B2B outreach in your country.
Good to know
- Open map data is not a complete business register; listings can be outdated. Local shops and services are well covered, trades and offices less so.
- Large cities: at most 3,000 places are read, highest data confidence first.
- An empty result does not mean the business has no email or phone.
- Sources: Overture Maps Places (CDLA Permissive 2.0 / Apache 2.0 / CC0 per source); municipality boundaries from Overture Divisions (© OpenStreetMap contributors, ODbL).
FAQ
How is this different from a Google Maps scraper? It uses open map data instead of Google, and adds a source-backed contact route from each business's own website.
Which countries are supported? BE, NL, LU, FR, DE, AT, CH, GB, IE, DK, SE, NO, FI, ES, PT, IT, PL, CZ.
Can I type categories in Dutch or French? Yes, and in English or German.
Why does a business show no website? The open data has none for it. You still get its name, address and category.
Need help?
Open an issue on the Issues tab.