Sourcelane

Google Maps Reviews Scraper

Google Maps

Operated by Sourcelane✓ verified

A Google Maps reviews scraping connector that extracts full review data for businesses by accepting place URLs, Place IDs, or search queries and crawling Google Maps without requiring an API key or a browser. Produces one record per review containing a review identifier and source URL, numeric rating, full review text and language, relative and exact timestamps, attached photos, owner reply text and reply timestamp, reviewer metadata (display name, profile link, avatar, user identifier, reviewer review count, local guide flag), and place-level metadata (place identifiers, name, address, category, aggregate rating, total review count, place link). Implements newest-first pagination and a resumeable pagination cursor for deep scraping across tens of thousands of reviews; supports searching niches and fetching reviews for top search results.

Verified Sep 28, 3:55 AM

$0.0006

per review

Up to 100 per call. Only pay for results returned; failed calls are refunded.

What people use it for

Trust & reliability

7d uptime trend
WindowUptimeSuccess ratep50p95Calls
24h————0
7d————0
30d————0

Calling contract

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-reviews-scraper","params":{"placeUrls":["https://www.google.com/maps/place/Katz's+Delicatessen/@40.7223,-73.9874,17z/data=!4m6!3m5!1s0x89c2598f7ff4aa09:0x313547e757cb8cea"],"maxPlacesPerQuery":5},"maxResults":10}'

Request params

FieldTypeRequiredDescription
placeUrlsarrayoptionalPlaces to fetch reviews for. Accepts full Google Maps place URLs, maps.app.goo.gl short links, ?cid= links, Google Place IDs (ChIJ…), or hex IDs (0x…:0x…).
searchQueriesarrayoptionalAlternatively search Google Maps and fetch reviews for the top results — e.g. "dentists in Austin TX". Use Max places per query to control how many places are taken from each search.
maxPlacesPerQueryintegeroptionalHow many places to take from each search query (only used with Search queries). Capped at 100 per call.
maxReviewsPerPlaceintegeroptionalReviews to fetch per place, newest first. Set 0 for all reviews (large places can have tens of thousands — the run stops safely before the timeout and writes a resume cursor).
languagestringoptionalLanguage code for the interface strings and place names, e.g. en, de, fr, es, pt-BR. Review text is always returned in its original language.
countrystringoptionalTwo-letter country code that biases search results, e.g. us, gb, de, au.
pageIdstringoptionalPaste NEXT_PAGE_ID from the previous run's Key-value store to continue fetching more reviews for the same places.

Each result contains

FieldTypeDescription
reviewIdstringReview Id
reviewUrlstringReview Url
reviewerNamestringReviewer Name
reviewerProfileUrlstringReviewer Profile Url
reviewerAvatarUrlstringReviewer Avatar Url
reviewerUserIdstringReviewer User Id
reviewerReviewCountintegerReviewer Review Count
reviewerIsLocalGuidebooleanReviewer Is Local Guide
ratingintegerRating
textstringText
dateTextstringDate Text
publishedAtstringPublished At
updatedAtstring—
languagestring—
photosarray—
ownerReplystring—
ownerReplyDatestring—
placeIdstring—
googlePlaceIdstring—
placeNamestring—
placeAddressstring—
placeCategorystring—
placeRatingnumber—
placeReviewCountinteger—
placeUrlstring—
searchQuerynull—
scrapedAtstring—

Use Google Maps Reviews Scraper from Claude, ChatGPT or Cursor

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.

  1. 1Copy your personal connector URL
  2. 2In Claude open Settings → Connectors → Add custom connector
  3. 3Paste the URL and click Add — done
Manual setup (config files, REST, Python) +

Claude Code

Adds the Sourcelane MCP server with your key as a header.

terminal
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
  --header "Authorization: Bearer sl_live_your_agent_key"

Claude Desktop (config file)

Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.

claude_desktop_config.json
{
  "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"
      }
    }
  }
}

Cursor & Windsurf

Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).

mcp.json
{
  "mcpServers": {
    "sourcelane": {
      "url": "https://api.usesourcelane.com/mcp",
      "headers": {
        "Authorization": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

VS Code

Save as .vscode/mcp.json. VS Code prompts for your key once.

.vscode/mcp.json
{
  "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
    }
  ]
}

ChatGPT Custom GPT (Actions)

Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.

OpenAPI schema URL
https://usesourcelane.com/openapi.json

REST

One POST. Pass maxResults to cap cost.

curl
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-reviews-scraper","params":{"placeUrls":["https://www.google.com/maps/place/Katz's+Delicatessen/@40.7223,-73.9874,17z/data=!4m6!3m5!1s0x89c2598f7ff4aa09:0x313547e757cb8cea"],"maxPlacesPerQuery":5},"maxResults":10}'

Python, LangChain, CrewAI, OpenAI Agents SDK…

Wrap the REST call as a tool, or point an MCP client at the endpoint.

python
import requests

res = requests.post(
    "https://api.usesourcelane.com/v1/call",
    headers={"Authorization": "Bearer sl_live_your_agent_key"},
    json={
        "listing": "google-maps-reviews-scraper",
        "params": {"placeUrls":["https://www.google.com/maps/place/Katz's+Delicatessen/@40.7223,-73.9874,17z/data=!4m6!3m5!1s0x89c2598f7ff4aa09:0x313547e757cb8cea"],"maxPlacesPerQuery":5},
        "maxResults": 10,
    },
    timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])

Reviews

—

0 reviews

5
0
4
0
3
0
2
0
1
0

Leave a review

Loading reviews…

Google Maps Reviews Scraper API for AI Agents · Sourcelane