App Store & Google Play Reviews Scraper avatar

App Store & Google Play Reviews Scraper

Pricing

from $0.14 / 1,000 review scrapeds

Go to Apify Store
App Store & Google Play Reviews Scraper

App Store & Google Play Reviews Scraper

Scrape app reviews from the Apple App Store and Google Play in one run, with one output format. Use store URLs, app IDs or just app names.

Pricing

from $0.14 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Solar G

Solar G

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Scrapes user reviews from the Apple App Store and Google Play in one run. Both stores return the same output format, so results can be combined without extra processing.

Input

FieldDescription
appsAny mix of Google Play URLs or package names (com.spotify.music), App Store URLs or numeric IDs (324684580), and plain app names (Spotify).
storesStores to search when an app is given by name. Default: both.
maxReviewsPerAppMaximum reviews per app, per store. Default 200.
countryTwo-letter country code. Default us.
languageGoogle Play review language. Default en.
sortnewest, helpful or rating (Google Play only).
reviewsSinceOptional. Skip reviews older than this date.
ratingsOptional. Only return these star ratings, e.g. ["1","2"].
{
"apps": ["Duolingo", "com.whatsapp", "https://apps.apple.com/gb/app/spotify/id324684580"],
"maxReviewsPerApp": 500,
"country": "gb",
"ratings": ["1", "2"]
}

Output

{
"store": "appStore",
"appId": "570060128",
"appName": "Duolingo: Language & Chess",
"country": "gb",
"reviewId": "14694334772",
"userName": "Joblogsy",
"rating": 2,
"title": "Annoying",
"text": "So annoying tells me repeatedly I'm offline when I am not...",
"date": "2026-10-21T18:45:07.000Z",
"appVersion": "7.145.1",
"thumbsUp": 0,
"developerReply": null,
"url": "https://apps.apple.com/gb/app/id570060128?see-all=reviews"
}

developerReply is { "text", "date" } when the developer has responded (Google Play). If an app can't be found, the run outputs an item with an error field and carries on with the other apps.

API usage

Run the Actor and get results in one request:

curl -X POST "https://api.apify.com/v2/acts/solarg~app-reviews-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"apps": ["com.spotify.music"], "maxReviewsPerApp": 500}'

With the JavaScript client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('solarg/app-reviews-scraper').call({"apps": ["com.spotify.music"], "maxReviewsPerApp": 500});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

With Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("solarg/app-reviews-scraper").call(run_input={"apps": ["com.spotify.music"], "maxReviewsPerApp": 500})
items = client.dataset(run["defaultDatasetId"]).list_items().items

You can also schedule runs in Apify Console and send results to Google Sheets, Slack, webhooks, Zapier, Make or n8n through Apify's integrations.

Pricing

$0.20 per 1,000 reviews. Platform usage is included in the price.

Limitations

  • Apple's public review feed returns at most 500 reviews per app per country. To get more App Store reviews, run several countries.
  • App Store developer replies aren't included in Apple's public feed.
  • Google Play has no hard limit, but very large pulls take longer.

Notes

Review text and usernames are public, but they can still count as personal data. Use them in line with applicable law. Report problems in the Issues tab.