No Website Maps Scraper
Under maintenancePricing
Pay per usage
No Website Maps Scraper
Under maintenancePricing
Pay per usage
Rating
0.0
(0)
Developer
Jeroen Ravensbergen
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Find every business in a city that still has no website — and get it as a ready-to-use Excel file.
What does Google Maps – bedrijven zonder website do?
This Actor searches Google Maps for businesses in an area you choose (for example Leiden), throws away everything that already has a website, and exports only the businesses without a website to a formatted .xlsx file you can open straight in Excel, Numbers or Google Sheets.
It sweeps a built-in list of ~125 common Dutch business categories — hairdressers, plumbers, restaurants, garages, bookkeepers, dog groomers and so on — so you do not have to think of every search term yourself. You can also supply your own list of search terms.
Because it runs on the Apify platform you get scheduling, an API, integrations (Slack, Google Drive, Make, Zapier), run history and monitoring for free — so you can re-run the same city every month and see which businesses are new.
Why use this Actor?
Businesses without a website are the clearest possible lead list for anyone selling web design, hosting, online marketing, Google Business Profile optimisation or booking software. Google Maps already knows who they are; it just will not give you a filtered list.
- Pre-qualified leads. Every row is a business that has a phone number and a location, but no site to send customers to.
- Warm leads, not scraped email dumps. You get the business name, what it does, its address and phone number — enough to call or walk in.
- You only pay for leads. By default Google Maps itself filters out every business that has a link, so each place you are charged for is a business without a website.
- Social-only businesses optional. Turn on
includeSocialMediaOnlyto also export businesses whose only link is a Facebook page or a Thuisbezorgd menu, flagged in the Status website column. This costs a lot more per lead, see the pricing section. - Excel-ready. No JSON wrangling: open the file, sort, filter and start calling.
How to use this Actor
- Open the Actor and go to the Input tab.
- Fill in Area — the city, town or neighbourhood to search, for example
Leiden. - Leave Search terms empty to sweep the built-in list of ~125 Dutch business categories, or type your own (
kapper,loodgieter, ...). - Set Max places to check in total to control your spend. 500 places is roughly $2.50.
- Click Start.
- When the run finishes, open the Storage → Key-value store tab and download
leads-zonder-website.xlsx. The same rows are also in the Dataset tab if you prefer CSV or JSON.
The Excel file is rewritten after every batch, so even if you stop the run halfway you still have a usable file.
Running it locally
npm installapify login # the Actor calls a paid Store Actor, so it needs your tokenapify run --purge
Input
| Field | Type | Default | What it does |
|---|---|---|---|
area (required) | string | Leiden | City, town, neighbourhood or region to search in. |
country | string | Netherlands | Appended behind the area so Google Maps knows which country you mean. Ignored when area already contains a comma. |
searchTerms | array | [] | Business types to search for. Empty means: use the built-in list of ~125 Dutch categories. |
language | string | nl | Google Maps interface language; affects the category wording and address format. |
includeSocialMediaOnly | boolean | false | Also export businesses whose only link is a social media or platform page. Much more expensive per lead. |
skipClosedPlaces | boolean | true | Leave out permanently and temporarily closed businesses. |
maxPlacesTotal | integer | 500 | Hard cap on how many places Google Maps returns and charges for. This is the cost driver. |
maxPlacesPerSearchTerm | integer | 100 | Max places returned per search term. |
maxLeads | integer | 0 | Stop after this many leads. 0 means no limit. |
maxCostPerMapsRunUsd | integer | 0 | Extra safety net: stop a single Google Maps run once it has charged this much. |
outputFileName | string | leads-zonder-website.xlsx | Name of the Excel file in the key-value store. |
searchTermsPerRun | integer | 10 | How many search terms are bundled into one Google Maps run. |
googleMapsActorMemoryMbytes | integer | 4096 | Memory given to each Google Maps run. Lower it if you hit your plan's memory limit. |
Example input:
{"area": "Leiden","country": "Netherlands","searchTerms": ["kapper", "loodgieter", "trimsalon"],"maxPlacesTotal": 300,"includeSocialMediaOnly": false}
Output
Two outputs, containing the same rows:
- Excel file —
leads-zonder-website.xlsxin the run's key-value store, with a frozen header row, filters and clickable Google Maps links. - Dataset — the same rows as JSON, CSV, Excel or HTML. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
{"Bedrijf": "Kapsalon Knip & Co","Soort bedrijf": "Kapper","Link naar Google Maps pagina": "https://www.google.com/maps/place/Kapsalon+Knip/@52.1583,4.4900,17z","Adres": "Breestraat 12, 2311 CS Leiden","Telefoonnummer": "071 512 3456","Status website": "Geen website","zoekterm": "kapper","plaats": "Leiden","postcode": "2311 CS","gevondenLink": "","placeId": "ChIJ1","aantalReviews": 34,"beoordeling": 4.6}
Data table
| Column | Description |
|---|---|
| Bedrijf | Business name as shown on Google Maps. |
| Soort bedrijf | The primary Google Maps category, e.g. Kapper, Loodgieter. |
| Link naar Google Maps pagina | Direct link to the listing — clickable in Excel. |
| Adres | Full street address. |
| Telefoonnummer | Phone number as Google shows it, or the international format when that is all there is. |
| Status website | Geen website, Alleen Facebook, Alleen Instagram, Alleen platformpagina (Thuisbezorgd), Alleen gratis Google-pagina, ... |
The dataset carries a few extra fields that are left out of the Excel file: zoekterm, plaats, postcode, gevondenLink (the raw link found, if any), placeId, aantalReviews and beoordeling.
How much does it cost to scrape Google Maps?
This Actor does not scrape Google Maps itself — it calls compass/crawler-google-places from Apify Store and pays per place that scraper returns:
| What | Price |
|---|---|
| Each place returned | ~$0.004 |
Website filter, per place returned (includeSocialMediaOnly off) | ~$0.001 |
| Each Google Maps run started | ~$0.007 |
With the default settings Google Maps only returns businesses without a website, so you pay about $0.005 per lead:
maxPlacesTotal | Rough cost |
|---|---|
| 200 | ~$1.05 |
| 500 | ~$2.60 |
| 2000 | ~$10.10 |
With includeSocialMediaOnly on, the website filter cannot be used, so you pay for every place, including all the ones that already have a website. Google Maps lists established businesses (which usually have a website) first, so a run of a few hundred places can easily return only a handful of leads.
On the Apify Free plan you get a monthly credit allowance; a run stops once it is used up. The Actor logs a cost estimate before it starts and caps itself at maxPlacesTotal.
Tips
- Start small. Run with
maxPlacesTotal: 100on your own city first to see the data before committing to a full sweep. - Target the trades.
loodgieter,klusbedrijf,stukadoor,hovenier,trimsalonandnagelstudiohave far more website-less businesses than restaurants or retail chains. - Keep
includeSocialMediaOnlyoff unless you really need the Facebook-only businesses. Off, you pay only for leads; on, you pay for every business checked. - Schedule it monthly and compare runs to spot newly opened businesses — they are the most likely to still need a website.
FAQ
Does "no website" really mean they have no website? It means no website is linked on their Google Maps listing. A business can have a site it never added to Google. In practice that is still a useful signal — an unlinked website is its own sales pitch.
Can I also get businesses that only have a Facebook page?
Yes, turn on includeSocialMediaOnly. A Facebook or Thuisbezorgd page is not a website the owner controls, so those businesses are exported too and marked in the Status website column. Because Google Maps cannot filter on "only a Facebook link", you then pay for every business checked, which makes each lead far more expensive.
Can I search a whole province or country?
Yes, the Google Maps Scraper splits a large area into smaller map tiles itself. Raise maxPlacesPerSearchTerm and maxPlacesTotal accordingly, and keep an eye on the cost.
Why do I sometimes get fewer results than maxPlacesTotal?
Google Maps simply may not have that many businesses matching your terms in that area.
Is it legal to scrape Google Maps?
Scraping publicly available business information — names, addresses, phone numbers, categories — is generally legal, and this Actor collects no personal data and no reviews. You are responsible for how you use the data, including compliance with GDPR and the Dutch telemarketing rules for calling businesses. If in doubt, consult a lawyer.
Feedback and support
Found a bug or want another column? Open an issue on the Actor's Issues tab. Requests for a customised version — different country, different categories, extra enrichment — are welcome there too.