Operated by Sourcelane✓ verified
Extract user reviews and ratings for any Android app from the Google Play Store. Fet rating, content, app version, author, helpful-vote counts, and developer replies for thousands of reviews across any country and language.
A scraper for Google Play Store that extracts structured review data for any Android app by package name: it collects numeric ratings (1–5), full review text, review timestamps, app version, author name and avatar URL, counts of community helpful votes, developer reply content and reply timestamps, review identifiers and app identifiers, storefront country and language codes, and Play Store review URLs. Technical capabilities include multi-country and multi-language review fetching, sorting by newest/rating/helpfulness, paginated crawling to retrieve thousands of reviews per app, and producing one structured record per review suitable for sentiment analysis, trend detection, version-level comparisons, and developer-reply auditing.
Verified Sep 28, 3:55 AM
$0.0025
per review
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Product feedback monitoring to surface complaints, feature requests, and bug reports from users
Competitive intelligence to track sentiment and version-to-version changes across competitor apps
App Store Optimization (ASO) research to analyze keywords and themes in positive vs negative reviews
Customer support triage to route and prioritize user issues based on review content and signals
Localization research to compare review themes across countries and languages
Developer-response auditing to track which reviews received replies and response timing
Either the Google Play package name (e.g.
Two-letter ISO language code for the review text - 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-play-reviews-scraper","params":{"appId":"https://play.google.com/store/apps/details?id=com.instagram.android","maxReviews":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
appId | string | required | Either the Google Play package name (e.g. 'com.instagram.android') or the full Play Store URL (e.g. 'https://play.google.com/store/apps/details?id=com.instagram.android'). The package name will be extracted automatically. |
country | string | optional | Two-letter ISO country code for the Play Store storefront. Reviews are localized per region - pull each country separately. |
lang | string | optional | Two-letter ISO language code for the review text - e.g. 'en', 'es', 'de', 'ja'. Defaults to 'en'. |
sortBy | string | optional | Newest returns the most recent reviews first. Rating sorts by star rating. Helpfulness sorts by community vote count. |
maxReviews | integer | optional | Maximum reviews to return. The Play Store typically allows tens of thousands per app. Set 0 to keep paginating until no more pages remain (large apps may take several minutes). Capped at 100 per call. |
Each result contains
| Field | Type | Description |
|---|---|---|
reviewId | string | Review Id |
appId | string | App Id |
country | string | Country |
lang | string | Lang |
rating | integer | Rating |
title | null | Title |
content | string | Content |
version | string | Version |
author | string | Author |
authorAvatar | string | Author Avatar |
thumbsUp | integer | Thumbs Up |
replyContent | null | Reply Content |
repliedAt | null | — |
reviewUrl | string | — |
updatedAt | string | — |
sortBy | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Summarise the one-star reviews for our iOS app from the last 30 days by theme.”
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-play-reviews-scraper","params":{"appId":"https://play.google.com/store/apps/details?id=com.instagram.android","maxReviews":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-play-reviews-scraper",
"params": {"appId":"https://play.google.com/store/apps/details?id=com.instagram.android","maxReviews":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…