App Store & Google Play Reviews Scraper avatar

App Store & Google Play Reviews Scraper

Pricing

from $0.16 / 1,000 results

Go to Apify Store
App Store & Google Play Reviews Scraper

App Store & Google Play Reviews Scraper

Export App Store and Google Play reviews for iOS and Android feedback analysis. Get ratings, text, dates, app versions and developer replies in CSV or JSON, filtered by stars or date. $0.20 per 1,000 reviews plus a memory-based start fee. Maintained by CleanScrape.

Pricing

from $0.16 / 1,000 results

Rating

5.0

(1)

Developer

CleanScrape

CleanScrape

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

14

Monthly active users

8 hours ago

Last modified

Share

Collect public reviews from the Apple App Store and Google Play in one consistent dataset. Each row has the review text, rating, date, app version and store, so you can compare iPhone and Android feedback in one spreadsheet.

Use one app per store and one country per run. No store login, cookies or proxy setup is needed. Reviews come from what each store shows publicly, so coverage depends on the store.

Start with a small run

  1. The form opens with Strava's Google Play and App Store links. Keep them to try the Actor, or paste the apps you want to research. You can also type just the app's name, such as Duolingo.
  2. Choose Store: Both, Google Play or App Store.
  3. Pick a Country and, for Google Play, a Language.
  4. Set Reviews per store. The form starts at 20. With Both, the limit applies to each store, so 20 can return up to 40 reviews.
  5. Start the run, open Reviews, and export CSV, Excel or JSON.

More options holds the Google Play order and two optional filters: Star ratings (for example only 1 and 2 stars) and Reviews since (a start date). You do not need them for a first run.

At the default 1 GB memory, 40 delivered reviews cost $0.018: $0.01 at startup plus $0.008 for the reviews. Prices are base prices before tier discounts. The startup fee applies even if no reviews are returned.

Example: compare Strava reviews on iPhone and Android

Say you want to know what runners and cyclists complain about in Strava, and whether iPhone and Android users raise the same issues. Open the Strava example. It collects up to 20 recent US reviews from each store.

To read only the complaints, select 1 star and 2 stars under Star ratings, or filter the export in your spreadsheet. Keep the store column to compare iPhone and Android side by side. The Actor does not do sentiment analysis.

Three rows from a run on 1 October 2026:

StoreRatingReviewDate (UTC)App version
google_play1does not work offline2026-10-01 13:50:30482.12
app_store1Connection issue: Strava keeps disconnecting from my apple watch2026-10-01 00:06:13483.0.0
app_store4Great: Great just some of the numbers change slightly between apple workout and Strava when importing recordings2026-09-30 00:09:16482.0.0

Your rows will differ because reviews keep coming in. For Apple, the review title is a separate column; it is shown before the colon here.

Watch the walkthrough

Let's use Strava as an example: the newest one and two star reviews from both stores, for the United States. The video shows the app links, the star filter, the review table with app versions, and the spreadsheet export. The steps are the same for any app.

The video checks 100 reviews per store and keeps 1 and 2 star reviews (Star ratings under More options). For a ready-made run, open the Spotify example. For a written walkthrough with inputs, sample output and costs, read Export App Store and Google Play reviews into one spreadsheet.

Only need one store? Export Duolingo Google Play reviews.

Choose a store

You wantWhat to enter
Google Play reviewsSelect Google Play and fill in Google Play app.
App Store reviewsSelect App Store and fill in App Store app.
Both storesSelect Both and fill in both fields, or type the app's name once.

Each field takes a store link, an ID or a name:

You enterRead as
play.google.com/store/apps/details?id=com.strava or com.stravaThat Google Play app
apps.apple.com/us/app/strava-run-bike-walk/id426826309, id426826309 or 426826309That App Store app
StravaThe app whose store name starts with the words you typed (spaces are ignored, so tik tok finds TikTok). The run summary shows which app was used

A link pasted into the other store's field is still used for its own store. If no app's name matches the words you typed, the run says so instead of guessing; paste the link in that case. The selected Country decides which store country is read, even if an App Store link contains another country. Choose the country by name in the form. For API requests, use a two-letter code such as us, gb or de; uk is read as gb. Reviews are not translated.

For an Apple-only API request:

{
"store": "app_store",
"appStoreId": "https://apps.apple.com/us/app/strava-run-bike-walk/id426826309",
"country": "us",
"maxReviews": 5
}

For Google Play only:

{
"store": "google_play",
"googlePlayAppId": "https://play.google.com/store/apps/details?id=com.strava",
"country": "us",
"language": "en",
"maxReviews": 5
}

In API requests, maxReviews defaults to 200 per store when you leave it out. The form's value of 20 only applies in Apify Console.

Input reference

FieldAPI defaultMeaning
storebothboth, google_play or app_store
googlePlayAppIdNoneGoogle Play link, package name or app name
appStoreIdNoneApp Store link, app number or app name
countryusStorefront country for both stores
languageenGoogle Play language parameter
maxReviews200Upper limit per selected store
sortnewestGoogle Play: newest, rating or helpfulness (shown as Most relevant)
ratingsall fiveStar ratings to keep, for example ["1", "2"]
reviewsSinceNoneKeep reviews dated on or after this day, YYYY-MM-DD (UTC)

The rating and date filters apply to the reviews collected within maxReviews per store, so a filtered run can return fewer rows. Reviews without a date are left out when reviewsSince is set. The run's message and report say how many of the checked reviews matched; raise maxReviews to check more. Most relevant uses Google Play's own relevance order, not a ranking by helpful votes. Apple always uses its most-recent feed. With both, a store without an app is marked skipped. A run with no app at all fails with a message explaining what to fix.

Output reference

One dataset item is one review. Both stores use the same fields; values a store does not provide stay null.

FieldMeaning
sourcegoogle_play or app_store
appIdResolved app identifier, also when you entered an app-page URL
reviewIdSource review identifier, when available
userNamePublic reviewer display name
ratingStar rating, usually 1-5
titleApple review title; null for Google Play
textReview text
dateUTC time: Google Play review time, or Apple's review update time
thumbsUpHelpful votes shown by the source
appVersionApp version the review was written for
developerReplyGoogle Play reply text when available; null for Apple
developerReplyDateGoogle Play reply time in UTC; null for Apple
countryRequested storefront, not the reviewer's verified location
languageRequested Google Play language, not the detected text language; null for Apple
urlApp listing URL, not a link to the review

Google Play does not provide review titles through this source. Apple's public feed does not include developer replies or a review language. Apple's update time is not guaranteed to be the original posting date. The run report records when the data was collected.

Illustrative Apple record with made-up review content:

{
"source": "app_store",
"appId": "426826309",
"reviewId": "example-review-id",
"userName": "Example reviewer",
"rating": 4,
"title": "Useful app",
"text": "Illustrative feedback, not an actual customer review.",
"date": "2026-09-13T13:25:48+00:00",
"thumbsUp": 0,
"appVersion": "1.0",
"developerReply": null,
"developerReplyDate": null,
"country": "us",
"language": null,
"url": "https://apps.apple.com/us/app/id426826309"
}

Run report and limits

Open Run summary in the Output tab for a readable status of each store. The same information is in RUN_REPORT in the run's key-value store, which suits automation. Each selected store is marked:

  • ok: reviews were returned without a detected error
  • empty: no reviews and no detected request error
  • partial: some reviews, then a request or paging problem
  • failed: a request error and no reviews
  • skipped: no app was given for that store

ok means the bounded collection finished without an error. It does not mean every historical review was collected. Results from a working store are kept when the other store fails. If every attempted store fails, the run fails.

Apple's feed covers about the 500 most recent reviews per app and country (ten pages). Google Play can go further back, but complete history is not guaranteed. Reviews can be edited or removed between runs.

When Apple returns an empty feed, the Actor checks Apple's alternative feed for the same app, country and page, then Apple's app record. An app that is not sold in that country gets a plain error; an app with fewer than 50 ratings there is reported as returning no written reviews from that feed (Apple's feed holds written reviews only); for a popular app the run says the reviews could not be confirmed and suggests trying again. It does not switch countries. When Google Play returns nothing, the Actor checks that the app exists and tells you if the link, ID or country looks wrong. Retry waits requested by the store are respected.

Pricing

$0.20 per 1,000 delivered reviews ($0.0002 each), plus a startup fee of $0.01 per GB of memory, at least one per run. The default memory is 1 GB, so most runs pay one startup fee. Selecting more memory raises the startup fee, not the per-review price.

Billable unitBase / Free tierBronze (-10%)Silver (-15%)Gold, Platinum, Diamond (-20%)
Startup, per GB of memory$0.01$0.009$0.0085$0.008
1,000 reviews$0.20$0.18$0.17$0.16

Apify applies your tier's price automatically; the Pricing tab shows your rate. Base-price examples:

One runAt the 1 GB defaultWith 4 GB memory
40 reviews$0.018$0.048
400 reviews$0.09$0.12
1,000 reviews$0.21$0.24

Reviews left out by the rating or date filters are not charged. Maximum cost per run covers both the startup fee and the reviews. If the next review would go over it, the Actor stops and says so in the run summary, so you may get fewer reviews than requested.

If a run is restarted, reviews already saved are kept and are not exported or charged again. Apify may charge another startup fee for the restart. To collect more, start a new run.

API and recurring exports

Use the API tab for ready-made code examples. Keep your API token in an environment variable or secrets manager. To collect regularly, save a task, add a schedule, and fetch each run's dataset through the API or your automation tool.

For recurring imports, (source, appId, country, reviewId) works as a key when reviewId exists. Update edited reviews rather than appending duplicates. The Actor does not keep history between runs or send notifications.

Public reviews can contain personal information. Check the source terms and your own obligations before sharing the data, and limit who can access it.

Ready-to-run examples

Each example opens with its input filled in. Change the input and run it.

ExampleWhat it does
Export ChatGPT app reviews from iPhone and AndroidThe latest 100 ChatGPT reviews from the App Store and 100 from Google Play in one table, with ratings, text, dates and app versions.
Find 1- and 2-star reviews of a banking appThe newest 1- and 2-star Google Play reviews of Revolut, to see what frustrates customers.
Find Google Play complaints about TikTokThe 1- and 2-star reviews among the 500 newest Google Play reviews of TikTok, with text, date, app version and thumbs up.
Build an App Store reviews dataset for sentiment analysisUp to 500 recent App Store reviews of Instagram with rating, title, text, date and version: a ready dataset for sentiment analysis.

Use it from an AI agent

This Actor works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:

https://mcp.apify.com?tools=cleanscrape/app-store-reviews-scraper

Then ask in plain words, for example: "Get the 200 newest 1-star reviews of Duolingo from the App Store and Google Play and summarise the main complaints." The assistant runs the Actor in your Apify account and reads the results. The price per result is the same as in Console.

Common questions

Is there an API for App Store and Google Play reviews?

Apple and Google only give app owners access to reviews of their own apps. This Actor reads the public reviews of any app and returns the same columns for both stores. You can run it from the Apify API, Python or JavaScript, or on a schedule.

Is this an app-store-scraper replacement?

Yes. The Python library app-store-scraper was archived in 2021. app-store-reviews keeps its AppStore class and review fields, plus a reviews() function shaped like google-play-scraper's, and runs on this Actor. Change the import to from app_store_reviews import AppStore and set APIFY_TOKEN.

How do I export Google Play or App Store reviews to Excel or CSV?

Paste the app's store link, run the Actor, then use Export to download CSV, Excel or JSON. With Both, iPhone and Android reviews end up in one table with a store column.

How much does it cost to scrape app reviews?

$0.20 per 1,000 reviews at the base price, plus a small start fee ($0.01 at 1 GB of memory). 40 reviews cost about $0.02. See Pricing above for the details.

How many reviews can I get?

Apple's public feed covers about the 500 most recent reviews per app and country. Google Play can go further back, but the full history is not guaranteed.

Can I get only 1-star reviews, or only recent ones?

Yes. Choose the star ratings you want and set Reviews since to a date. The filters apply to the reviews collected, so a filtered run can return fewer rows.

Support

CleanScrape maintains this Actor for one-off exports and recurring workflows. We investigate reported errors, update the Actor when the stores change, and test changes against existing inputs and output formats.

If you get fewer reviews than expected, check the run summary first: the store limits above are the most common reason. If something looks wrong, open an issue or email contact.cleanscrape@gmail.com with the run ID, the app links, the country and the review limit. Never include API tokens or private data.

What worked well, and what could be better? Share your experience in Reviews. Honest feedback is welcome, including anything that fell short. Leaving feedback is optional and does not affect access, pricing or support.

Disclaimer

This Actor is an independent tool developed by CleanScrape. It is not affiliated with, endorsed by, or sponsored by Apple, Google, or the developers of the apps used in its examples. Apple, App Store, Google Play and all other trademarks are the property of their respective owners. Brand names are used only to identify supported sources and illustrate usage.

More tools from CleanScrape