App Reviews API (App Store & Google Play) avatar

App Reviews API (App Store & Google Play)

Pricing

from $0.08 / 1,000 reviews

Go to Apify Store
App Reviews API (App Store & Google Play)

App Reviews API (App Store & Google Play)

Scrape and unify reviews and ratings from Apple App Store and Google Play into one standardized dataset schema. HTTP-only, fast, zero browser overhead.

Pricing

from $0.08 / 1,000 reviews

Rating

0.0

(0)

Developer

Headless Agent

Headless Agent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Unified Apify Actor for customer reviews and ratings from both the Apple App Store and the Google Play Store, delivered in a single standardized dataset schema.


Features

  • Unified Schema: Normalizes Apple App Store and Google Play reviews into identical column shapes with matching types and conventions.
  • Multi-Store & Multi-Country: Query iOS and Android apps simultaneously across any ISO 3166-1 alpha-2 country store (e.g. us, ca, gb, de, au, jp).
  • Flexible App Identifiers: Accepts numeric App Store IDs, iOS bundle identifiers, Google Play package names, or direct store URLs.
  • Denormalized App Metadata: Optionally attaches app-level title, overall rating score, and rating count directly onto each review record.
  • Smart Deduplication: Automatically deduplicates reviews by store + country + reviewId.
  • Date Filtering (since): Stops pagination and omits reviews older than an ISO 8601 date cutoff.
  • Reliable runs: Temporary errors are retried, and a failure on one app does not stop the rest.
  • Strict Hard Cap: maxReviews is strictly enforced per app across all specified countries.

Input Parameters

FieldTypeDefaultDescription
appsarrayRequiredArray of objects { store: "apple" | "google", id: string, country?: string }. id can be a bundle ID, numeric ID, or store URL.
countriesarray["us"]Default ISO country codes to scrape when not specified on the app object.
sortstring"recent"Sort order: "recent" (most recent reviews) or "helpful" (most helpful / upvoted).
sincestringundefinedOptional ISO 8601 date cutoff (e.g. "2026-01-01"). Reviews older than this date are omitted and pagination stops.
maxReviewsinteger200Maximum reviews to retrieve per app across all target countries (min: 1, max: 5000).
includeAppInfobooleantrueWhen true, fetches app metadata (title, average rating, rating count) and denormalizes it onto each review item.

Example Input

{
"apps": [
{
"store": "apple",
"id": "570060128",
"country": "ca"
},
{
"store": "apple",
"id": "https://apps.apple.com/gb/app/subway-surfers/id512939461"
},
{
"store": "google",
"id": "com.whatsapp",
"country": "us"
},
{
"store": "google",
"id": "https://play.google.com/store/apps/details?id=com.spotify.music"
}
],
"countries": [
"us"
],
"sort": "recent",
"maxReviews": 50,
"includeAppInfo": true
}

Output Fields

Each dataset item represents a single customer review with the following normalized structure:

FieldTypeDescription
storestring"apple" or "google".
appIdstringApp identifier (numeric ID for Apple, package name for Google).
countrystringISO 3166-1 alpha-2 country code of the store.
reviewIdstringUnique review identifier assigned by the store.
ratinginteger | nullRating given by the user (1 to 5 stars).
titlestring | nullReview headline (provided by Apple; null for Google Play).
textstring | nullMain body text of the review.
authorstring | nullReviewer's display name or nickname.
versionstring | nullApp version reported when review was posted.
updatedAtstring | nullISO 8601 timestamp when the review was written or updated.
helpfulCountinteger | nullNumber of helpful votes / upvotes.
responseTextstring | nullDeveloper reply text when the store provides it, otherwise null.
appTitlestring | nullDenormalized app display name.
appRatingAveragenumber | nullDenormalized overall average rating of the app.
appRatingCountinteger | nullDenormalized total rating count of the app.
fetchedAtstringISO 8601 timestamp when the record was extracted.

Real Run Output Examples

Apple App Store Review Example

{
"store": "apple",
"appId": "570060128",
"country": "ca",
"reviewId": "14712236571",
"rating": 1,
"title": "I think ai may be destroying this",
"text": "Not really sure what happened, but the last while when going into a lot of the story parts of Duolingo, there have been a lot of new words differently appearing in the story, instead of learning the words in the lessons and then using them in the stories. It feels like a glitch, I have a feeling they are using ai a lot now and it's not really building on words learned before.",
"author": "Get out 55",
"version": "7.145.1",
"updatedAt": "2026-10-26T04:05:08.000Z",
"helpfulCount": 0,
"responseText": null,
"appTitle": "Duolingo: Language & Chess",
"appRatingAverage": 4.63335,
"appRatingCount": 674388,
"fetchedAt": "2026-10-27T08:18:44.805Z"
}

Google Play Store Review Example

{
"store": "google",
"appId": "com.whatsapp",
"country": "us",
"reviewId": "3395f87f-8464-4f0b-8bc3-8e8722d909a2",
"rating": 5,
"title": null,
"text": "super",
"author": "Praveen Kumar",
"version": "2.26.40.76",
"updatedAt": "2026-10-26T08:18:28.000Z",
"helpfulCount": 0,
"responseText": null,
"appTitle": "WhatsApp",
"appRatingAverage": 4.6240306,
"appRatingCount": 246488947,
"fetchedAt": "2026-10-27T08:18:46.582Z"
}

License

Apache-2.0