Google Maps No-Website Leads Scraper | Unclaimed + Lead Score avatar

Google Maps No-Website Leads Scraper | Unclaimed + Lead Score

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Google Maps No-Website Leads Scraper | Unclaimed + Lead Score

Google Maps No-Website Leads Scraper | Unclaimed + Lead Score

Find local businesses with no website on Google Maps: name, category, phone, address, rating, reviews, weekly hours, time zone and a 0–100 lead score with reasons. Adds dead-website, directory-only and unclaimed-profile leads, on-trade matches only. Many cities per run, only-new mode, Notion rows.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

What does Google Maps No-Website Leads Scraper do?

Google Maps No-Website Leads Scraper finds local businesses on Google Maps that have no website of their own, so web designers, agencies and SMMA teams get a phone-ready prospect list instead of a raw map dump. Give it a trade (plumber, roofer, dentist) and one or more cities, and it searches the whole radius, keeps the businesses with no real website, and returns each one with its phone number, address, rating, reviews, opening hours and a 0–100 lead score with every point explained.

"No website" means what a web designer means by it: no link at all, or only a Facebook or Instagram page, a link-in-bio page or a directory profile. Optionally it also checks every listed website live and keeps the ones that are down, parked or expired. Run it with no code and export to JSON, CSV, Excel, Notion, the API or an AI agent.

New to Apify? Sign up free and use the included monthly platform credit to try this Actor — no credit card needed.


What data can you extract about Google Maps no-website leads?

Every lead is one record with 37 fields:

GroupFields
Businessname title, main and all categories (categoryName, categories), Google IDs (cid, fid, placeId), mapsUrl
Locationaddress, street, neighborhood, city, state, postalCode, countryCode, coordinates location, distanceFromCenterKm, timezone
Contact & hourscontactPhone (international format), openingHoursToday, the full week in openingHours
Web presencewebsite, displayDomain, websiteKind (none / social / linkinbio / directory / builder / deadsite), websiteIssue for dead sites, hasFacebook, socialPagePlatform, socialProfiles
ReputationtotalScore (stars), reviewsCount, claimThisBusiness (the Google profile is unclaimed)
Scoring & trackingleadScore 0–100, leadTier, leadScoreReasons, changeType (NEW / UPDATED / UNCHANGED), searchTerm, searchLocation, scrapedAt

Key features

  • 🎯 Finds more than "no link" — social-only, link-in-bio and directory/booking-only businesses count as leads by default (a Yelp, Houzz, Booksy or Google profile page is not a website of their own). Free site-builder subdomains are one click away. Each lead says which case it is.
  • 🪦 Dead-website leads (opt-in) — every listed website is checked live, and the ones that are down, gone or parked are kept with the reason. On landscapers in Phoenix, 19 of 25 leads were businesses whose listed site was dead, and every one held up when we checked by hand.
  • 🧲 Only businesses that match the search — Google mixes other trades into its results (a pool cleaner under "plumber"). On by default, this filter learns what your trade means from Google's best-ranked results, in the run's language, and drops the rest. Austin plumbers and landscapers: 97 of 100 leads on-trade with it, 83 of 100 without.
  • 🗺️ Deep, radius-accurate coverage — the radius (1–200 km, or miles) is searched area by area from the centre outwards, not just the first screen of results, and everything outside it is dropped. On plumbers within 25 km of Austin, the finer grid found about 30% more no-website businesses than a coarser one.
  • 🔓 Only unclaimed profiles — one checkbox keeps only businesses whose Google profile is unclaimed: prospects for a profile setup as well as a website.
  • 🧮 Explainable lead score — 0–100 plus a PREMIUM / HIGH / MEDIUM / LOW tier, with the reasons listed (+30 phone listed, +10 profile unclaimed, …), so you can re-weight it in a spreadsheet.
  • 🔎 Many trades × many cities — several search terms, a main location plus up to 50 more, each with its own result cap. A business found twice is returned once.
  • ♻️ Only new leads — scheduled runs skip businesses you already have. Name a lead list to keep a separate memory per campaign.
  • 🔔 Delivered where you work — Telegram, Slack, Discord, WhatsApp, any webhook, or every lead as a row in your Notion database.
  • 🤖 AI-ready — compact and drop-empty output modes keep payloads small for LLMs and MCP clients.

🚀 How to scrape Google Maps for businesses without a website

  1. Enter one or more search terms (e.g. plumber, roofer) and a location (Austin, TX, Manchester, UK, a postcode or a region).
  2. Set the search radius and max results per location. Add more cities under More locations.
  3. Pick what counts as "no website", and tick Require a phone number or Only unclaimed profiles if you want.
  4. (Optional) Turn on Only new leads, add a notification channel or a Notion database, then Schedule it.
  5. Click Start, then download as JSON, CSV or Excel or pull from the API.

Quick-start example input

{ "searchTerms": ["plumber"], "location": "Austin, TX", "maxResults": 100, "requirePhone": true }

Up to 100 plumbers within 25 km of central Austin with no website of their own, each with a phone number, a lead score and the reasons behind it.


Input

Configure it in the visual editor with no code, or pass JSON via the API. These are the fields that shape your lead list:

FieldTypeWhat it does
searchTermsarrayTrades or business types, e.g. plumber, roofer, dentist. Several terms run in one go.
locationstringCity, area, postcode or region to search around.
locationsarrayUp to 50 more cities or areas, searched with the same terms.
searchRadiusKm / searchRadiusMilesintegerRadius around each location: 1–200 km (default 25), or miles instead when set.
maxResultsintegerLeads to return per location, 1–1,000 (default 100).
onlyNewLeadsbooleanSkip businesses an earlier run already returned.
stateKeystringLead list name: a separate "already seen" memory per campaign.
gl / hlstringCountry (249 to choose from; empty = taken from the location) and result language (default en).

🎯 Filters

FieldTypeWhat it does
webPresencearrayWhat counts as "no website": none, social, linkinbio, directory (default), plus builder and deadsite (live website check).
onlyMatchingBusinessesbooleanDrop businesses from a different trade that Google mixes into the results (default on).
minRating / minReviewsintegerMinimum star rating (0–5) and number of reviews.
categorystringKeep only businesses whose Google category contains this text.
requirePhonebooleanKeep only businesses that list a phone number.
onlyClaimablebooleanKeep only businesses with an unclaimed Google profile.
skipClosedbooleanLeave out closed businesses (default on).

Everything else

FieldsWhat they do
Notification channels, notifyOnlyChanges, notificationLimitAlerts after each run — see the alerts section below.
notionApiKey + notionDatabaseId (+ notionCreateProperties)Every lead as a row in your Notion database, with missing columns created for you.
appConnector (+ mcpIssueTeam)A one-page run summary to an app you connected in Apify (Notion, or an issue tracker).
startUrlsGoogle Maps search or place links instead of the search fields.
compact, excludeEmptyFieldsSmaller output for AI pipelines.
query, proxyConfigurationAlternative search-term field; proxy settings (not needed for normal runs).

More example inputs

Dead websites and builder sites across three cities, established businesses only:

{
"searchTerms": ["landscaper", "roofer"],
"location": "Phoenix, AZ",
"locations": ["Mesa, AZ", "Tempe, AZ"],
"webPresence": ["none", "social", "linkinbio", "directory", "builder", "deadsite"],
"minReviews": 10
}

Unclaimed Google profiles in the UK, within 10 miles:

{ "searchTerms": ["handyman"], "location": "Manchester, UK", "searchRadiusMiles": 10, "onlyClaimable": true, "requirePhone": true }

Output

Each dataset item is one lead. A real record — a Brooklyn barber shop whose only web presence is an Instagram page:

{
"title": "Thee Brooklyn Barber",
"categoryName": "Barber shop",
"placeId": "ChIJJ3eZ0jdZwokRd5NDa9g7gJI",
"mapsUrl": "https://www.google.com/maps?cid=10556503327255008119",
"location": { "lat": 40.7198357, "lon": -73.9602472 },
"address": "158 Wythe Ave, Brooklyn, NY 11249, United States",
"neighborhood": "Williamsburg",
"city": "Brooklyn",
"state": "NY",
"countryCode": "US",
"timezone": "America/New_York",
"totalScore": 4.8,
"reviewsCount": 360,
"claimThisBusiness": false,
"openingHoursToday": "Open · Closes 8.00 pm",
"openingHours": [
{ "day": "Monday", "hours": "10 am–8 pm" },
{ "day": "Saturday", "hours": "10 am–7 pm" },
{ "day": "Sunday", "hours": "10 am–7 pm" }
],
"website": "https://www.instagram.com/theebrooklynbarber/",
"websiteKind": "social",
"hasFacebook": false,
"socialPagePlatform": "instagram",
"socialProfiles": { "instagram": "https://www.instagram.com/theebrooklynbarber/" },
"websiteIssue": null,
"contactPhone": "+17186900663",
"searchTerm": "barber",
"leadScore": 87,
"leadTier": "PREMIUM",
"leadScoreReasons": [
"+30 phone listed",
"+8 reachable via instagram",
"+25 360 reviews",
"+15 rated 4.8",
"+5 opening hours listed (active business)",
"+4 street address listed"
],
"changeType": "NEW",
"scrapedAt": "2026-10-13T19:26:53+00:00"
}

On a dead-website lead, websiteKind is deadsite and websiteIssue says why: unreachable, timeout, parked or the error the site returned (e.g. http_404). Missing values are null. The Output tab has three views: Leads, Call list (phone, time zone, weekly hours, social profiles, web presence, address, score) and All fields. Compact mode returns 17 core fields.


♻️ How to monitor Google Maps for new no-website leads

New businesses open every week, most with a phone and a social page but no website. Schedule the Actor with Only new leads on, and each run returns only businesses you have not received before. After the first run, your cost follows how many new businesses appear, not how big the area is.

With Only new leads off, a re-run returns every lead again, tagged NEW, UPDATED (the listing changed, e.g. a new phone or rating) or UNCHANGED — useful for refreshing a CRM. The memory is shared across your runs; give each campaign its own Lead list name to keep them apart.

  1. Configure your search terms, locations and filters, and turn on Only new leads.
  2. Run it once to seed the baseline.
  3. Open the Schedules tab and set a recurring run (e.g. weekly).
  4. Add a notification channel or a Notion database to receive each batch.

🔔 How to set up alerts for new Google Maps no-website leads

Fill in only the channels you want:

ChannelWhat to configure
✈️ TelegramtelegramToken (from @BotFather) + telegramChatId
💬 SlackslackWebhookUrl
🎮 DiscorddiscordWebhookUrl
📱 WhatsAppwhatsappAccessToken + whatsappPhoneNumberId + whatsappTo
🪝 WebhookwebhookUrl (+ optional webhookHeaders) receives every lead of the run as JSON — n8n, Make, Zapier or your own endpoint
🗃️ NotionnotionApiKey + notionDatabaseId, one row per lead

Chat messages list the top leads (up to 20, notificationLimit); the webhook gets all of them. Turn on Notify only new / updated to hear only about businesses that changed. Credentials are secret inputs: encrypted, masked in the UI and never written to the log. A broken channel never stops the run.


💡 What can you do with Google Maps no-website leads?

  • Sell websites to local businesses. A plumber with 300 five-star reviews and no website is an easy pitch. Sort by leadScore and start with PREMIUM.
  • Win back owners whose site went dark. Dead-website owners already paid for a domain; they know what a site is worth.
  • Offer Google profile setup. Unclaimed profiles are an easy upsell: claim, verify, add photos and hours.
  • Feed a cold-calling pipeline. The Call list view gives callers the number, the time zone and the weekly hours, so they call when the owner is there.

💰 How much does it cost to scrape Google Maps no-website leads?

This Actor uses Apify's pay-per-event model: a small fee when a run starts, plus a fee for each lead returned. The current numbers are on the Pricing tab.

You pay only for leads. Businesses that have a website, belong to a different trade, fail your filters, are closed or were already returned (with Only new leads) are screened out first and never charged, and a business found by two search terms or in two cities is charged once. Every field — phone, social link, score, hours — is included in the lead.


🔌 Integrations & export

Export to JSON, CSV, Excel or HTML, or pull from the REST API and the JavaScript / Python clients. Runs on a schedule, sends leads to Notion, Google Sheets, Slack, Make, Zapier and n8n, and works as an MCP tool for AI agents.


🔗 Using the API

Run this Actor from your own code with the Apify Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"searchTerms": ["roofer", "plumber"],
"location": "Tulsa, OK",
"maxResults": 50,
"requirePhone": True,
}
run = client.actor("corvuslab/google-maps-no-website-leads-scraper").call(run_input=run_input)
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
print(lead["leadScore"], lead["title"], lead["contactPhone"])

❓ FAQ

What counts as "no website"? By default: no link at all, or only a social page (Facebook, Instagram, TikTok…), a link-in-bio page (Linktree, Beacons…) or a directory or booking profile (Yelp, Houzz, Booksy, a Google profile link…). Add builder for free site-builder subdomains and deadsite for listed websites that no longer work. websiteKind tells you which case each lead is.

How does the dead-website check decide a site is dead? Each listed website is visited during the run. It counts as dead when the domain no longer resolves or never answers, returns "not found" or a server error, or shows a parked or for-sale page. A site that is online but turns visitors away counts as alive, so a real website is not flagged by mistake. It is opt-in because it adds time to a run.

How many leads can I get per city? Up to 1,000 per location. How many exist depends on the trade and city: in our Austin test, 99 of the 605 businesses within 25 km were plumbers with no real website.

Why are some businesses from my search missing? Usually because they belong to a different trade and Only businesses that match the search dropped them. Turn it off for Google's full list, or use category for an exact category filter.

Why is reviewsCount empty on some leads? Google shows no review count for those listings — in our tests about one in eight, almost always a business with no reviews yet. Set minReviews to leave them out.

Does it return email addresses? No. A business without a website rarely publishes an email, so you get the listed phone and, where there is one, the social or link-in-bio page where the owner can be messaged.

What do the score tiers mean? PREMIUM 80+, HIGH 60+, MEDIUM 40+, LOW below 40. Points come from a listed phone, a reachable social page, review volume, rating, an unclaimed profile, listed hours and a street address.

Which countries and languages are supported? Any of 249 countries; the country is detected from the location when you leave it empty. hl sets the language of category names, opening status and addresses. Phone numbers come in international format everywhere.

Do I need a Google account or a proxy? No. It runs without login and needs no proxy for normal runs.


This Actor collects only publicly available business listing data: what anyone sees on Google Maps without logging in. You're responsible for how you use it, in particular for any personal information and for cold outreach. You must comply with Google's terms and applicable law, including the GDPR/LGPD and local telemarketing and do-not-call rules where they apply. Not affiliated with, endorsed by or sponsored by Google.


Keywords: google maps no website leads · businesses without website · no website leads scraper · google maps leads scraper · google maps scraper · local business leads · web design leads · SMMA leads · unclaimed google business profile · dead website leads · cold calling list · lead score · prospects by radius · google maps lead generation · Notion lead database · export to CSV · export to Excel · MCP tool for AI agents