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 reviews and Google Play reviews for iOS and Android feedback analysis. Get ratings, text, dates, app versions and available developer replies in CSV or JSON. $0.20 per 1,000 reviews plus a memory-based start fee. Maintained by CleanScrape.

Pricing

from $0.16 / 1,000 results

Rating

0.0

(0)

Developer

CleanScrape

CleanScrape

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

4 hours ago

Last modified

Share

Collect public reviews from the Apple App Store and Google Play in one consistent dataset. CleanScrape returns review text, ratings, identifiers, source timestamps and app-version information for product research, feedback analysis and recurring exports.

Use one app per store and one storefront per run. No store login, personal cookies or proxy configuration is required. The Actor uses a third-party Google Play library and Apple's public customer-review RSS feed. Availability and coverage depend on those sources.

In the input form, paste the app links, choose the store, country and language, then set Maximum reviews per store. If you choose both stores, that limit applies separately to each. More options contains the optional Google Play sort order; it is not needed for a first run.

Compare iOS and Android app reviews

Open the Spotify reviews example. Replace the app links to collect feedback for another app. The preset requests up to 100 reviews per store; change Maximum reviews per store to 20 to follow the video below.

At the preset's 1 GB memory setting, 40 delivered reviews cost $0.018 in total: $0.01 at startup plus $0.008 for the reviews. Keeping 100 per store costs $0.05 if 200 reviews are delivered. These are base prices before tier discounts, not guarantees of a result count; startup is charged even if no reviews return.

Open Review essentials for the store, rating, review text and source date. Export CSV or Excel, keep the store column, then filter low ratings and read the comments side by side. This is a review-collection workflow, not automatic sentiment analysis. Follow the comparison guide.

Prefer a single-store example? Export Duolingo Google Play reviews.

Easier inputs and clearer results

Paste a full Google Play or Apple App Store link into the corresponding app field, or keep using an app ID. Choose countries and languages by name from the dropdowns; existing API codes still work. The selected storefront controls collection even if an Apple link contains a different country. Review language is not translated or guaranteed by a storefront selection.

Start with Review essentials for store, app, rating, review text and source date. Reviews retains the original full view. Open Run summary and field guide for the status of each requested store, or Machine-readable run report for automation. A successful run can contain a partial or skipped store; a requested review limit is not a completeness guarantee.

Google Play titles are not supplied by this adapter. Apple developer replies and review language are not exposed by the selected RSS source. Other missing fields remain null rather than being invented. The raw dataset field names, types, prices and legacy input defaults are unchanged.

Try it: bring app reviews into one spreadsheet

Let's use Spotify as an example. Use the same workflow for your own app, a competitor's app, or another publicly listed app on Google Play or the Apple App Store. Replace the demo links with the app links you want to research. Collect from either store or both, with one app per store per run; available reviews depend on the app, storefront and source limits described below.

Watch the walkthrough

Follow the steps with Spotify, then repeat them with your chosen app. The video shows app links, regional settings, the review table and spreadsheet export, followed by a practical way to review the feedback.

The video requests 20 reviews per store and shows selected rows from that run. The saved task below uses a larger limit of 100 per store. Filtering and grouping feedback happen in your spreadsheet, not automatically in the Actor.

For a step-by-step walkthrough with inputs, sample output and costs, read Export App Store and Google Play reviews into one spreadsheet.

Start with a small export from both stores. You will get one review per row, with the same columns for Apple and Google Play.

1. Choose the app2. Collect reviews3. Work with the results
Spotify on iOS and AndroidUp to 100 recent reviews per storeDownload a spreadsheet and filter by rating, store or app version

Run the example

  1. Open Tasks on the Store page (Example tasks in Console) and choose Export Spotify App Store and Google Play Reviews.
  2. Keep the US storefront and the limit of 100 reviews per store, or lower the limit for a smaller first run. Review the Pricing tab and your spending limit before starting.
  3. Select Start, then open Output. Check RUN_REPORT for the status of each store.
  4. Export CSV or Excel. In your spreadsheet, filter ratings 1-2 to read critical feedback, or compare reviews by app version. These are analysis steps you perform after export, not automatic sentiment analysis.

A look at the output

Two selected rows from the September 27 validation export. Text is shortened here; the dataset keeps the source text. These rows illustrate the format, not a representative satisfaction sample.

StoreRatingReview excerptSource date (UTC)App version
google_play5best app for listening music ever2026-09-26 10:48:459.1.84.2231
app_store31 All music that contains AI needs to ...2026-09-26 03:55:269.1.86

That run returned 200 reviews across both stores. Your count and content will vary. A limit of 100 means up to 100 per store, not 100 in total; Apple coverage is restricted to its recent public feed. A null version means the source did not supply one.

Make it yours: replace the two Spotify IDs with your own app links or IDs. For a single-store example, choose Export Duolingo Google Play Reviews to CSV under Tasks on the Store page (Example tasks in Console).

Choose a store

You wantWhat to enter
Google Play reviewsSelect Google Play and fill in Google Play app link or ID. Leave the Apple field blank.
Apple reviewsSelect Apple App Store and fill in Apple App Store link or ID. Leave the Google Play field blank.
Both storesSelect Both and supply both app links. A limit of 20 can return up to 40 rows in total.

For an Apple-only API request:

{
"store": "app_store",
"appStoreId": "https://apps.apple.com/us/app/spotify/id324684580",
"country": "us",
"maxReviews": 5
}

For Google Play only:

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

Quick start

  1. Select Google Play, App Store or both.
  2. Paste the Google Play and/or Apple app-page links, or enter existing app IDs.
  3. Choose a country and a small review limit, then run the Actor.
  4. Inspect the dataset and RUN_REPORT, then export JSON, CSV or Excel.

Example input for Spotify, requesting up to 20 reviews per store:

{
"store": "both",
"googlePlayAppId": "com.spotify.music",
"appStoreId": "324684580",
"country": "us",
"language": "en",
"maxReviews": 20,
"sort": "newest"
}

This can return up to 40 reviews, not necessarily exactly 40. Find a Google Play ID after ?id= in its listing URL; an Apple ID is the number after /id. Console example IDs are prefills, not API defaults.

Capabilities

  • The same output fields for both stores, with source identifying the origin.
  • Google Play pagination and bounded retries for transient Apple feed failures.
  • Duplicate review-ID suppression within each store's results in a run.
  • Source timestamps normalized to UTC when available.
  • A separate per-store report, without diagnostic rows in the review dataset.

Sentiment analysis, automatic alerts, persistent cross-run deduplication and a complete historical archive are not included. These require a downstream workflow or another source.

Input reference

FieldDefaultMeaning
storebothboth, google_play or app_store
googlePlayAppIdNoneGoogle Play app-page URL or Android package name
appStoreIdNoneApple app-page URL or numeric app ID
countryusStorefront country for both stores
languageenGoogle Play language parameter
maxReviews200Positive upper limit per selected store
sortnewestGoogle Play: newest, rating or legacy helpfulness

The helpfulness input maps to the library's most relevant order, not a guaranteed helpful-vote ranking. Apple always uses its most-recent feed. With both, a store without its app ID is marked skipped. A run with no usable app ID fails with an actionable error.

Output reference

One dataset item represents one review. Both stores use these fields; unsupported or unknown values remain null.

FieldMeaning
sourcegoogle_play or app_store
appIdResolved app identifier, including when the input was an app-page URL
reviewIdSource review identifier, when available
userNamePublic reviewer display name
ratingSource star rating, usually 1-5
titleApple review title; null for Google Play
textReview text
dateUTC ISO timestamp: Google Play review time or Apple review-level update time
thumbsUpHelpful-vote value exposed by the source
appVersionVersion associated with the review
developerReplyGoogle Play reply text when available; null for Apple
developerReplyDateGoogle Play reply timestamp in UTC; null for Apple
countryRequested storefront, not the reviewer's verified location
languageRequested Google Play language, not detected text language; null for Apple
urlApp listing URL, not a review permalink

Apple's update time is not a guaranteed original publication date. Missing or unparseable source timestamps stay null. Collection/report-generation time is available in the run report.

Illustrative Apple record with synthetic review content:

{
"source": "app_store",
"appId": "324684580",
"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/id324684580"
}

Pricing

Store discounts

Apify applies your subscription tier automatically: Bronze 10% off, Silver 15% off and Gold 20% off the base event prices. Platinum and Diamond use the Gold rates. These discounts apply to every billable event listed below.

Billable unitBase / Free tierBronze (-10%)Silver (-15%)Gold (-20%)
Startup per allocated GB (minimum 1)$0.01$0.009$0.0085$0.008
result (1,000 events)$0.2$0.18$0.17$0.16

Base-price examples in this README are before discounts. Discounts do not change what is billable or any startup memory multiplier. See the Pricing tab for the rate applicable to your account.

All prices and examples below use the base rate before subscription discounts.

$0.20 per 1,000 delivered reviews ($0.0002 per row), plus a startup event of $0.01 per allocated GB, minimum one event. Startup charges apply even when no reviews are returned. Check the Pricing tab for current rates.

The default memory is 1 GB. The startup fee therefore uses one event at the default setting; selecting more memory increases that fee. Existing saved tasks retain their own settings. Larger exports may need more memory; check the run statistics before increasing it.

One runAt the current 1 GB defaultIf you select 4 GB
40 delivered reviews$0.018$0.048
400 delivered reviews$0.09$0.12
1,000 delivered reviews$0.21$0.24

These are charge calculations, not guaranteed source coverage. Memory affects the startup multiplier, not the per-review price. Base event prices are unchanged.

Run status and limits

Open RUN_REPORT in the run's default key-value store. Each selected store is marked ok (rows returned), empty (no rows without a detected request error), partial (some rows followed by a request/pagination problem), failed (request error and no rows), or skipped (missing app ID). The report includes counts, errors and hasErrors, hasEmptyResults and hasSkippedUnits flags.

ok means the bounded fetch completed without a detected error, not that all historical reviews were collected. Mixed results remain available. If every attempted store fails, the run fails. A forced abort, timeout or dataset-write failure may interrupt execution before the final report is saved.

Apple collection is limited to ten recent RSS pages per app/storefront, commonly around 500 reviews. Counts vary; this is a limitation of this collection method, not every Apple API. Google Play can paginate further, but complete history is not guaranteed. Storefronts are different samples; combining them does not prove exhaustive coverage. Reviews can be edited or removed between runs.

API and recurring exports

Use the Actor's API tab for current authenticated examples. Keep tokens in environment variables or a secrets manager. Save a task and schedule repeated collection, then retrieve the dataset through the API or your automation tool.

For recurring imports, (source, appId, country, reviewId) is a useful starting key when reviewId exists. Update edited reviews rather than blindly appending. Handle missing IDs explicitly. The Actor does not maintain cross-run review history or send notifications itself.

Public reviews can contain personal information. Review source terms and your responsibilities before redistributing data, and use appropriate access controls.

When an Apple feed is empty

Apple sometimes returns an empty feed even when reviews are available. The Actor then checks Apple's alternative feed for the same app, country and page. If neither feed provides reviews on the first page, the run summary explains that Apple reviews could not be confirmed. It does not assume that the app has no reviews or switch to another country.

If Google Play returns no reviews, the Actor checks that the app exists. A missing app produces a clear message asking you to check the link or app ID and country. If one store is unavailable, reviews from the other store are still saved.

Server-requested retry delays are respected. If the requested delay exceeds the bounded retry window, the Apple request stops rather than retrying early. Existing output fields and review billing are unchanged.

Maintenance and ongoing use

CleanScrape maintains this Actor for both one-off exports and recurring workflows. We investigate reported errors, update supported integrations when source websites change, and test changes with existing inputs and output formats in mind.

If something stops working, open an issue or email contact.cleanscrape@gmail.com with the Actor name, run ID, public source URL and expected result. Never include API tokens or private customer data.

Source availability can change. Check the run report for errors and coverage limits before relying on an export as complete.

Troubleshooting

For fewer reviews than requested, inspect the report and source limits. For a missing store, check its app ID. Missing Apple dates mean the timestamp was absent or could not be parsed. For failures, inspect the report and log before retrying.

For review-specific issues, also include the app ID, storefront and requested limit.

Release notes: 0.3

Added official app-page URL inputs alongside existing IDs, named country and language suggestions, a focused review view and a readable per-store guide. The selected storefront still controls collection. Raw dataset fields, extraction logic, pricing and legacy defaults are unchanged.

Release notes: 0.2

Apple's available update time now populates the existing date field. Added bounded Apple retries, within-run review-ID deduplication, preservation of partial Google Play pages and RUN_REPORT. Field names and prices are unchanged. Invalid inputs and entirely failed source requests now fail explicitly instead of appearing as successful empty runs.

Thanks for using CleanScrape

What worked well, and what could be better? Share your experience in Reviews to help other users decide whether this tool fits their workflow. Honest feedback is welcome, including anything that fell short.

For a question, bug or feature request, open an issue. Include your expected result and a non-sensitive input example. Never include API tokens or credentials. 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.