Sourcelane

Google Maps Reviews Scraper

Google Maps

Operated by Sourcelane✓ verified

Scrape all Google Maps reviews for any place — reviewer, rating, text, date, photos, owner replies — from a place URL or search. One row per review.

Read full description

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

You give it

  • Place URLs or IDs

    Places to fetch reviews for.

  • Search queries

    Alternatively search Google Maps and fetch reviews for the top results — e.g.

  • Country

    Two-letter country code that biases search results, e.g.

Optional settings

Max places per queryMax reviews per placeLanguagePage ID

You get back

Text & content
Review IDReviewer is local guideTextLanguage
People & accounts
Reviewer nameReviewer user IDOwner replyOwner reply datePlace name
Numbers & stats
Reviewer review countRatingPlace ratingPlace review count
Location
Place address
Dates
Date textPublished atUpdated at
Links & media
Review URLReviewer profile URLReviewer avatar URLPhotosPlace URL
Other details
Place IDGoogle place IDPlace categorySearch query

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. One click, then confirm.

  1. 1Click Add to Claude — claude.ai opens with Sourcelane filled in
  2. 2Click Continue to confirm — it then works in Claude desktop and mobile too
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…

Related Google Maps connectors

See all Google Maps data connectors →

Guides that use this connector