App Store Reviews & Google Play Reviews Scraper avatar

App Store Reviews & Google Play Reviews Scraper

Pricing

$0.15 / 1,000 review or app records

Go to Apify Store
App Store Reviews & Google Play Reviews Scraper

App Store Reviews & Google Play Reviews Scraper

Scrape App Store reviews and Google Play reviews into one dataset: rating, review text, date, app version and developer reply. $0.15/1,000 results.

Pricing

$0.15 / 1,000 review or app records

Rating

0.0

(0)

Developer

Ahmed Fouad

Ahmed Fouad

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

App Store Reviews & Google Play Reviews Scraper

Scrape Apple App Store and Google Play reviews into one dataset for product managers, app developers and customer-feedback researchers. Get review text, ratings, dates, app versions, developer replies and optional app metadata without a login.

First 25 saved results of every run are free; after that, $0.15 per 1,000 saved results. One review or app-details row is one result; failed requests do not create result events. The Pricing tab is authoritative. Apify plan allowances and any applicable platform/storage charges are separate.

Example output (illustrative abbreviated record, not a captured result):

{"recordType":"review","store":"google-play","appId":"com.example.app","rating":5,"text":"The latest update works well."}

What does this Actor do?

Extract Google Play and Apple App Store reviews in one run, using one stable JSON schema. Collect ratings, review text, versions, public reviewer display names and Google Play developer replies. An optional app-details mode adds product metadata. It uses public Google Play and Apple App Store HTTP endpoints, without login, browser or paid proxy.

Who is it for?

Product managers, customer-support teams, app developers and market researchers can compare feedback across Android and iOS, monitor releases and schedule incremental review collection through the Apify API. Export JSON, HTML, CSV or Excel; connect datasets to Google Sheets, Make, Zapier or your own sentiment-analysis workflow.

How to scrape both app stores

  1. Paste Android package IDs or Google Play URLs, and numeric Apple IDs or App Store URLs.
  2. Choose countries and Google Play languages.
  3. Set the per-locale review limit and global output limit. Click Start.
  4. Inspect the dataset and SUMMARY diagnostic record. Partial storefront failures do not discard successful data.

See the Input tab for all options. Defaults are immediately usable with the prefilled WhatsApp examples.

{
"apps": ["com.whatsapp", "https://apps.apple.com/us/app/whatsapp-messenger/id310633997", "com.spotify.music"],
"countries": ["us", "gb"],
"languages": ["en"],
"sort": "newest",
"mode": "both",
"maxReviews": 5,
"maxResults": 36,
"dateFrom": "2026-10-01"
}

What data is extracted?

FieldTypeMeaning
recordTypestringreview or app
store, appIdstringSource store and validated app ID
reviewId, datestringSource review ID and UTC publication/update date
rating, title, textnumber/stringRating, title if available, full review text
appVersionstring/nullReviewed version; current version for app rows
developerReplyobject/nullGoogle Play reply text and UTC date
thumbsUpCountinteger/nullGoogle Play helpful votes
reviewerNamestring/nullPublic display name only
country, languagestring/nullRequested storefront and Google query language, not reviewer residence or detected language
appDetailsobject/nullTitle, description, developer, URL, version, rating, rating count, price, currency, genre, update date, installs and bundle/package ID

Absent fields are null, never invented. Apple RSS exposes neither replies nor helpful-vote counts; Apple's language and requestedLanguage are null. Google review titles are generally null.

Example output

Illustrative, anonymized review record:

{
"recordType": "review",
"store": "google-play",
"appId": "com.example.app",
"reviewId": "example-review-123",
"date": "2026-10-15T12:00:00.000Z",
"rating": 5,
"title": null,
"text": "The latest update works well.",
"appVersion": "1.2.0",
"developerReply": {"text": "Thank you!", "date": "2026-10-16T12:00:00.000Z"},
"thumbsUpCount": 2,
"reviewerName": "Example Reviewer",
"country": "us",
"language": "en",
"requestedLanguage": "en",
"sort": "newest",
"appDetails": null
}

Incremental monitoring and coverage

Use sort: newest and an inclusive ISO dateFrom, e.g. 2026-10-01T00:00:00Z. Schedule the Actor and advance your own watermark, leaving a small overlap; upsert externally on store + appId + country + language + reviewId. Each new run starts afresh; a checkpoint only resumes the same run. Review edits can change dates. Sort/helpfulness is source-defined and can change while paging.

maxReviews applies per app/country/Google-language combination; maxResults caps all dataset records, including app details. Apple is queried once per country even if multiple languages were supplied. Apple public RSS is capped at ten pages, approximately 500 recent reviews per app/storefront. This is not a full historical archive. A date filter cannot recover reviews outside that window. Google uses continuation tokens; maxPages bounds work. Duplicate IDs are suppressed within the same locale, not across countries because storefront provenance matters. Page-cap warnings are shown in the log.

How much does it cost?

First 25 saved results of every run are free; after that, $0.15 per 1,000 results. One result = one review or one app-details record saved to your dataset. Failed requests are not charged. The exact current price is always shown in the Pricing tab.

After the first 25 saved results, the code invokes Actor.charge once per stored item and checks the SDK budget before further requests/output. No paid proxies are used. Startup and request overhead make tiny runs more expensive per item than larger runs. No billing is attached to failed queries. The platform's own run charges still depend on your plan.

Reliability and FAQ

Does it work for every country and language?

Google Play accepts requested country/language filters but does not certify reviewer location. Apple exposes storefront-specific feeds without a language filter. Unavailable apps can return no reviews. Review availability, order and count are controlled by the stores.

What happens on errors or rate limits?

Requests have timeouts, two retries and increasing backoff, with sequential requests and a default 750 ms delay. Increase the delay if rate-limited. SUMMARY lists failures and counts. A completely failed run is marked failed; mixed successes finish with diagnostics. Abort/migration checkpoints preserve progress. Storage writes and billing are not transactional: a sudden process death between them may leave a stored item uncharged.

Can I get private user information?

No login, private data, profile URL, avatar or reviewer user ID is collected. Only public review display names are returned. Text may nevertheless contain personal information shared by reviewers; apply lawful purpose, access controls and retention policies. Respect Google/Apple terms, applicable privacy law and rate limits. This Actor is not affiliated with either company and does not bypass access controls. Use the Issues tab for reproducible bug reports and the API tab for integration examples.