App Store Developer Replies — Google Play Reviews
Pricing
$0.50 / 1,000 app review scrapeds
App Store Developer Replies — Google Play Reviews
App Store developer replies and Google Play developer replies for one app: stars, text, version, thumbs-up, and developer reply. Sort newest, most relevant, or by rating, and filter by star. $0.50 per 1,000 reviews. No browser.
Pricing
$0.50 / 1,000 app review scrapeds
Rating
0.0
(0)
Developer
Joel Smith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
App Store developer replies and Google Play developer replies for one app: stars, text, app version, and the developer reply when the store publishes one. Sort by newest, most relevant, or rating, and optionally keep a single star rating.
$0.50 per 1,000 reviews (review-scraped at $0.0005). Ten reviews cost $0.005. The app summary row is not billed. Pure HTTP, 256 MB, no browser.
Use this Actor when you need:
- the newest Google Play reviews, including thumbs-up count and the developer reply
- Apple App Store reviews with title, vote sum, and vote count
- one run that can cover both stores
- a star filter so you only pay for the ratings you asked for
Start here
The Store example is 10 newest Spotify reviews on Google Play. Leave it and click Start.
{"store": "google","appId": "com.spotify.music","country": "us","language": "en","sort": "NEWEST","maxReviews": 10,"includeAppSummary": true}
Open the dataset view Reviews and developer replies. The first row is the unbilled app summary (recordType: "app"). The rest are reviews.
Google Play reviews
store: "google" calls Play's public oCPfdb batchexecute endpoint. appId is the package name (com.spotify.music) or a Play Store URL.
Each review row includes reviewId, author, stars, text, publishedAt, thumbsUpCount, appVersion, developerReplyText, and developerReplyAt. Play reviews do not have a separate title, so title is null.
sort maps to Play's own order: NEWEST, MOST_RELEVANT, or RATING. stars is sent with the request, so other ratings are not downloaded.
Apple App Store reviews
store: "apple" resolves the app with https://itunes.apple.com/lookup, then reads https://itunes.apple.com/{country}/rss/customerreviews/page={page}/id={trackId}/sortby=mostrecent/json.
appId can be a track id (324684580), a bundle id (com.spotify.client), or an App Store URL. Review rows include reviewId, author, stars, title, text, publishedAt, appVersion, voteSum, and voteCount.
NEWEST uses sortby=mostrecent. MOST_RELEVANT and RATING use sortby=mosthelpful, which is the other sort that feed publishes. The feed stops after 10 pages (about 500 reviews). A star filter is applied after download, and rows that do not match are not billed.
store: "both" needs appId (Play package) and appleAppId (Apple id). maxReviews is applied per store.
Developer replies
On Google Play, developerReplyText and developerReplyAt are the public reply under that review. They are null when the developer has not replied. The App Store customer-reviews feed does not include a developer reply, so those two fields are null on app_store rows. voteSum and voteCount are the App Store usefulness votes.
Set includeAppSummary to false for a dataset of review rows only. The summary row (recordType: "app", score, rating count, current version) is never charged.
Pricing
| Event | review-scraped |
| Price | $0.0005 per review ($0.50 / 1,000) |
| Charged when | A review row is written |
| Not charged | The app summary row, reviews excluded by the star filter, or a run that returns no reviews |
| Compute | 256 MB HTTP. A 10-review sample is a fraction of a cent in platform compute |
Example output item
Google Play review:
{"recordType": "review","store": "google_play","appId": "com.spotify.music","reviewId": "gp-review-1","author": "Ada","stars": 4,"title": null,"text": "Playback is solid. The new queue still drops a track.","publishedAt": "2026-10-18T15:04:00+00:00","thumbsUpCount": 12,"appVersion": "8.9.46.456","developerReplyText": "Thanks, we are looking at the queue.","developerReplyAt": "2026-10-19T09:00:00+00:00","voteSum": null,"voteCount": null,"country": "us","language": "en"}
App Store review:
{"recordType": "review","store": "app_store","appId": "324684580","reviewId": "11928374651","author": "Sam","stars": 5,"title": "Daily driver","text": "Still the one I open first.","publishedAt": "2026-10-17T12:31:22-07:00","thumbsUpCount": null,"appVersion": "8.9.78","developerReplyText": null,"developerReplyAt": null,"voteSum": 4,"voteCount": 1,"country": "us"}
Call it from code
Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("drlipton/google-play-reviews-scraper").call(run_input={"store": "google","appId": "com.spotify.music","country": "us","sort": "NEWEST","maxReviews": 10,"includeAppSummary": True,},max_total_charge_usd=0.05,)items = client.dataset(run["defaultDatasetId"]).list_items().items
Apple sample: "store": "apple" and "appId": "324684580".
JavaScript:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "<APIFY_TOKEN>" });const run = await client.actor("drlipton/google-play-reviews-scraper").call({ store: "apple", appId: "324684580", country: "us", sort: "NEWEST", maxReviews: 10 },{ maxTotalChargeUsd: 0.05 },);const { items } = await client.dataset(run.defaultDatasetId).listItems();
MCP: point the client at https://mcp.apify.com with your Apify token and ask for drlipton/google-play-reviews-scraper. Pass store and appId. Leave maxReviews at 10 for the first call.
n8n: Apify node, Run actor and get dataset items, actor drlipton/google-play-reviews-scraper, input as in the sample.
FAQ
Do I pay for the app score row? No. recordType: "app" is written with a normal dataset push. Only recordType: "review" fires review-scraped.
Why did an App Store run stop near 500? Apple's public customer-reviews feed publishes 10 pages. The run succeeds with what that feed returned.
What if a later page is blocked? Rows already saved stay in the dataset and the run still succeeds. The run fails only when it could not save any review.
