Operated by Sourcelane✓ verified
Find local businesses on Google Maps with no website - name, phone, address, category, rating, reviews, unclaimed status and a lead score. Built for web designers and agencies.
Finds local businesses on Google Maps that lack a website or only use social/profile pages and extracts structured contact and listing data for outreach. The connector queries Google Maps by business category and location (with optional free-form queries), applies filters for phone presence, claimed listing status, minimum rating and review thresholds, and yields prospect records containing business name and category information, phone numbers (including international/E.164 format), website presence/status (none or social-only) and profile URLs, claimed/unclaimed listing indication, ratings and review counts, a calculated 0–100 lead score that prioritizes contacts based on signals (phone availability, review tiers, rating thresholds, website absence or social-only, unclaimed listing), postal address components and geographic coordinates, Google Maps links and place identifiers, and the search that discovered the business. Outputs are optimized for outbound outreach and local-marketing prospecting workflows.
Verified Oct 25, 10:11 PM
$0.003
per lead
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Web design agencies and freelancers
Find businesses that need a website and pitch services
SEO and local marketing agencies
Prospect businesses with weak online presence
Google Business Profile services
Target unclaimed listings for profile optimization
Cold calling and SDR teams
Build phone lead lists by niche and city
Market research
Measure prevalence of businesses without a website in a niche or area
Types of business to look for, one per line, e.g.
Cities, neighborhoods, ZIP codes or regions to search, e.g.
Free-form Google Maps searches, used as-is in addition to the category × location combinations, e.g.
Two-letter country code that biases the search, e.g.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-maps-no-website-leads","params":{"categories":["nail salon","handyman"],"maxLeads":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
categories | array | optional | Types of business to look for, one per line, e.g. plumber, nail salon, food truck, roofing contractor. Each category is searched in every location below. |
locations | array | optional | Cities, neighborhoods, ZIP codes or regions to search, e.g. "Denver, CO", "Brooklyn, NY", "90210". Tip: split a big city into neighborhoods or ZIP codes to find more businesses, since Google Maps returns a limited number of places per search. |
searchQueries | array | optional | Free-form Google Maps searches, used as-is in addition to the category × location combinations, e.g. "food trucks in Austin". |
maxLeads | integer | optional | Stop after this many businesses without a website have been found (across all searches). Set 0 for no limit. Capped at 100 per call. |
websiteFilter | string | optional | 'No website or social page only' also includes businesses whose only listed site is a Facebook, Instagram, Yelp, Linktree or similar profile. 'No website at all' keeps only listings with no link whatsoever. |
requirePhone | boolean | optional | Skip businesses that don't list a phone number on Google Maps. |
onlyUnclaimed | boolean | optional | Keep only businesses whose Google Maps listing has not been claimed by the owner. These owners usually have no online presence at all. |
minRating | number | optional | Skip businesses rated below this (1–5). Leave at 0 to include unrated businesses. |
minReviews | integer | optional | Skip businesses with fewer Google reviews than this. A few reviews means an active, real business. |
language | string | optional | Language code for business categories and addresses, e.g. en, de, fr, es, pt-BR. |
country | string | optional | Two-letter country code that biases the search, e.g. us, gb, ca, au. |
Each result contains
| Field | Type | Description |
|---|---|---|
name | string | — |
category | string | — |
categories | array | — |
phone | string | — |
phoneE164 | string | — |
websiteStatus | string | — |
socialOrProfileUrl | null | — |
isClaimed | boolean | — |
rating | number | — |
reviewCount | integer | — |
leadScore | integer | — |
address | string | — |
street | string | — |
city | string | — |
state | string | — |
postalCode | string | — |
countryCode | string | — |
latitude | number | — |
longitude | number | — |
businessStatus | string | — |
googleMapsUrl | string | — |
placeId | string | — |
googlePlaceId | string | — |
searchQuery | string | — |
scrapedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “List 40 dentists in Austin TX with phone, website and rating above 4.5.”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-maps-no-website-leads","params":{"categories":["nail salon","handyman"],"maxLeads":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "google-maps-no-website-leads",
"params": {"categories":["nail salon","handyman"],"maxLeads":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…