Operated by Sourcelane✓ verified
A scraper for Google Maps/Places that finds businesses and points of interest by free-text query or by geographic coordinates and radius, and returns full structured place records: unique place identifier, name, formatted address, latitude/longitude, place categories and primary category, average rating and rating count, price level, website URL, international and national phone numbers, business operational status, human-readable opening hours, canonical Google Maps link, icon metadata, and optional reviews (up to five per place with author, rating, text, and timestamps). Supports two search modes (free-text with optional location bias, or nearby by coordinates+radius with selectable place types), localized results by language and region, automatic pagination with a resumable cursor for continuing large text-search runs, and deterministic nearby-radius queries.
Verified Sep 28, 12:10 AM
$0.01
per place
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| 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://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-places-scraper","params":{"textQuery":"coffee shops in Brooklyn","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
searchMode | string | optional | Text searches accept a free-text query like 'coffee shops in Brooklyn'. Nearby searches require a latitude/longitude center and a radius in meters. |
textQuery | string | optional | Free-text query, e.g. 'best ramen in Brooklyn' or 'dentist near Times Square'. Used when search mode is Text. |
latitude | number | optional | Center latitude (-90 to 90). Used in Nearby mode; optional as a bias in Text mode. |
longitude | number | optional | Center longitude (-180 to 180). Used in Nearby mode; optional as a bias in Text mode. |
radius | integer | optional | Search radius around the center in meters. Used in Nearby mode (max 50000). |
includedTypes | array | optional | Restrict nearby results to these place types (e.g. restaurant, cafe, gym). See Google's place-type table. Leave empty for any type. |
languageCode | string | optional | BCP-47 language code for localized results (e.g. en, es, fr). |
regionCode | string | optional | Two-letter region/country code to bias results (e.g. us, gb, de). |
maxItems | integer | optional | Maximum number of places. Text search auto-paginates in batches of 20 (up to 60 total). Nearby returns at most 20. Capped at 100 per call. |
includeReviews | boolean | optional | Include up to 5 reviews per place (author, rating, text, publish time). |
pageId | string | optional | Paste NEXT_PAGE_ID from the previous run's Key-value store to resume Text-search pagination. |
Each result contains
| Field | Type | Description |
|---|---|---|
placeId | string | Place Id |
displayName | string | Display Name |
formattedAddress | string | Formatted Address |
latitude | number | Latitude |
longitude | number | Longitude |
types | array | Types |
primaryType | string | Primary Type |
rating | number | Rating |
userRatingCount | integer | User Rating Count |
priceLevel | string | Price Level |
websiteUri | string | Website Uri |
internationalPhoneNumber | string | International Phone Number |
nationalPhoneNumber | string | — |
businessStatus | string | — |
weekdayDescriptions | array | — |
googleMapsUri | string | — |
iconMaskBaseUri | string | — |
iconBackgroundColor | string | — |
reviews | array | — |
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. Paste one URL.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://sourcelane-amber.vercel.app/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-places-scraper","params":{"textQuery":"coffee shops in Brooklyn","maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://cool-puffin-608.convex.site/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "google-places-scraper",
"params": {"textQuery":"coffee shops in Brooklyn","maxItems":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…