iOS App Store & Google Play Reviews Scraper and API avatar

iOS App Store & Google Play Reviews Scraper and API

Pricing

$0.12 / 1,000 reviews

Go to Apify Store
iOS App Store & Google Play Reviews Scraper and API

iOS App Store & Google Play Reviews Scraper and API

Scrape App Store reviews and Google Play reviews for any app and country, then export and download them through the Apify API or as CSV. iOS app reviews and Play Store reviews in one schema, with rating, text, ISO date, app version and developer reply, ready for app review analysis.

Pricing

$0.12 / 1,000 reviews

Rating

0.0

(0)

Developer

Aniruddha Garje

Aniruddha Garje

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

18 days ago

Last modified

Share

App Store & Google Play Reviews Scraper

Scrape, export and download app reviews from the Apple App Store (iOS apps) and the Google Play Store for any app, country and language, in one table. Use it as an App Store reviews scraper, a Google Play reviews scraper or an app reviews API. I built it on the stores' public JSON endpoints with plain HTTP requests, so there is no browser to slow it down.

At a glance

Use it whenYou need to export Google Play reviews, download App Store reviews of iOS apps, or both, for one or more apps and countries: for app review analysis, review monitoring or competitor research.
Input you needThe App Store or Google Play link of each app in apps (required; IDs and package names also work, but you never need to look them up); optionally countries, sort, maxReviewsPerApp, since.
What you getOne row per review with rating, text, ISO date, app version, country and, on Google Play, the developer reply.
Cost$0.12 per 1,000 reviews saved.
LimitsApple's public feed stops at 500 reviews per country and sort order; set App Store source to website to go past it. Reviewer names are off by default.

I built this Actor and test it against what the live site shows. The check runs again every week.

What you get

One row per review, with the same fields for both stores:

FieldExampleNotes
storegooglePlayappStore or googlePlay
appIdcom.whatsappApp Store ID or Play package name
countryusEvery row carries the country it came from
languageenGoogle Play only; Apple's feed follows the country
reviewIdd3bda379-...Stable ID from the store
rating41 to 5
titleGreat appApp Store only
textI love this app
date2026-10-06T15:54:48.000ZISO 8601, UTC, always present
appVersion2.26.38.73When the store provides it
thumbsUpCount12Helpful votes
developerReply, developerReplyDateGoogle Play (Apple's public feed has no replies)
reviewUrlA link that opens: the review on Google Play, the app's reviews page on the App Store
schemaVersion1Changes only if the schema ever changes

Reviewer names and profile links are off by default. Turn on Include reviewer names and profile links to add userName, userUrl (App Store) and userImage (Google Play).

Sample output

One real row from a run on 11 Oct 2026 (selected fields):

{
"store": "appStore",
"appId": "389801252",
"country": "us",
"rating": 5,
"title": "Marvelous",
"text": "Great to my build my community",
"date": "2026-10-09T18:14:22.000Z",
"appVersion": "450.1.0",
"reviewUrl": "https://apps.apple.com/us/app/id389801252?see-all=reviews"
}

What this Actor handles for you

  1. Complete paging. This Actor pages through everything each store returns. Google Play pages run until the store has no more reviews. Apple's public feed has a hard limit of 10 pages of 50 reviews (500) per country and sort order; page 11 answers HTTP 400. Apple's feed also returns some pages empty even though they hold reviews (seen on 8 October 2026); the Actor retries each empty page, carries on to the next one, and lists any page that stayed empty in RUN_SUMMARY, so you know exactly what may be missing. If Apple's feed serves no reviews at all, which it sometimes does for every app at once, the Actor checks a control app with a very large number of reviews and, when that is empty too, collects that app and country from the App Store website instead, which has no app version or vote counts. To go past the feed's 500 reviews per country and sort order, set App Store source to website: one run returned 1,000 reviews for one app and country. The Actor tells you when the 500 limit is reached, and you can collect more App Store reviews by adding countries, each of which has its own limit. maxReviewsPerApp is honoured exactly, and the run summary says why a store ran out if it did.
  2. Many countries in one run. Every country you list is fetched separately, and every row carries its country.
  3. A stable schema. One flat schema for both stores, versioned with schemaVersion. Fields a store does not have are present as null, never missing.
  4. Dates and links on every row. date is always an ISO timestamp. reviewUrl always opens a real page: the review itself on Google Play, and the app's reviews page on the App Store (Apple has no per-review page).
  5. Errors do not stop the run, and any app format works. Pages that fail are retried, and an app a store does not have is reported in the run summary while the run continues (continueOnError, on by default). Paste store links as they are; App Store IDs and Play package names also work, mixed in one list.

Input

FieldDefaultWhat it does
appsStore links (IDs and package names are optional alternatives), both stores mixed
storesbothWhich stores to read
countries["us"]Two-letter country codes
languages["en"]Google Play languages
sortnewestnewest, mostHelpful or rating (Apple has no rating sort and uses newest)
appStoreSourceautoauto: Apple's public feed, with app version and vote counts, and the App Store website when the feed serves no reviews. website: always the App Store website, past 500 reviews per country, without app version or vote counts
maxReviewsPerApp500Per app, store and country (and language on Play). 0 means no limit
sinceOnly reviews on or after this date
ratingsallKeep only these stars
includeDeveloperRepliestrueReply text and date
includeReviewerInfofalseReviewer names and profile links
continueOnErrortrueSkip and report a failing app instead of stopping

Pricing

Pay per result: $0.12 per 1,000 reviews. You are charged only for reviews saved to your dataset, never for errors, retries or duplicates. If you set a maximum cost per run, the Actor stops cleanly when it is reached.

Reliability

If a run is restarted or migrated, it resumes where it stopped and does not deliver or charge the same review twice. Each run saves a RUN_SUMMARY record with counts per app and country, why each store stopped, and any errors.

Scheduled monitoring

Schedule the Actor weekly with since set to last week's date to receive only reviews from that date on.

Use it as an API

Every run can be started and read through the Apify API. One request runs the Actor with your input as the JSON body and returns the reviews as JSON, or as CSV or Excel with format=csv or format=xlsx:

POST https://api.apify.com/v2/acts/garje~app-store-play-reviews-scraper/run-sync-get-dataset-items?format=csv

Send your Apify API token in the Authorization header. A worked example in Python: How to export Google Play reviews to CSV for any app and country.

Use it in n8n, Make or Zapier

Apify has integrations for n8n, Make and Zapier. In each, add a step that runs an Actor, choose garje/app-store-play-reviews-scraper, paste your input as JSON, and wait for the run to finish; the next step reads the dataset items. A schedule step in front of it turns this into a daily or weekly feed into Google Sheets, Slack or email.

Use it from an AI agent (MCP)

Add https://mcp.apify.com?tools=garje/app-store-play-reviews-scraper as an MCP server in Claude, Cursor, VS Code or any other MCP client. The agent then has this Actor as one tool and runs it with your Apify account, for example: "Get the newest 200 Google Play reviews of com.whatsapp and tell me what people complain about."

Use cases

Each one is a ready task you can open, run and copy:

FAQ

Do I need the app's ID? No. Paste the App Store or Google Play link of each app. IDs and package names work too, but you never need to look them up.

Does it work on Apify's free plan? Yes, with no item limit from this Actor. On a free account, a run asked for 100 App Store reviews returned all 100 in 9 seconds.

How many App Store reviews can I get per country? Apple's public feed stops at 500 reviews per country and sort order. With appStoreSource set to website, the Actor reads the App Store website instead and goes past that: 1,000 reviews for one country in one test run.

Are reviewer names included? Reviewer names are off by default. Turn on includeReviewerInfo only if you need them.

Can I get only new reviews? Yes. Set since to a date and sort to newest, then schedule the run.

Read more

I write up what the data shows, with the run ID behind every number: