Apple App Store Reviews icon

Apple App Store Reviews

Scrape Apple App Store reviews across 150+ country storefronts. Search by app name or URL and extract ratings, review titles and text, authors, dates,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Apple App Store Reviews at a glance

Apple App Store Reviews is a ready-to-run Apify actor from abotapi for collecting developer tools data. Its documented output includes review id, app id, app, country and rating, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.00 per 1,000 results on the Apify Free plan and from $0.60 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Developer Tools, Lead Generation, Social Media
Pricing
$1.00 per 1,000 results (Free plan), from $0.60 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
21 options

Scrape Apple App Store reviews across 150+ country storefronts. Search by app name or URL and extract ratings, review titles and text, authors, dates, app versions, and country in clean JSON, with optional app metadata enrichment.

What Apple App Store Reviews can do

  • Reviews first. Rating, title, body, author, date, app version and country on every row.
  • Three ways in. Search by app name, paste App Store app links (apps.apple.com or itunes.apple.com), or give bare numeric app ids.
  • Multi-country sweep. List storefronts one by one, or use "all" for a broad built-in set of major markets in a single run.
  • Sort and filter. Most recent or most helpful, with minimum and maximum star rating.
  • Optional app metadata. Developer, average rating, rating count, genre, icon, price and release notes attached to every review.
  • Built for schedules. Incremental mode returns only new and changed reviews on recurring runs, and resume continues an interrupted run without paying twice.

Choose what to collect

These inputs let you configure Apple App Store Reviews - Ratings, Reviews & App Metadata. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to select apps. 'search' resolves app names to apps via the App Store; 'url' takes App Store app links directly.

Choices: search, url

queriesarrayApp names or keywords to look up (for example 'Instagram', 'Spotify'). Each term resolves to the top matching app(s) and its reviews are collected. Ignored in URL mode.
appsPerQueryintegerHow many top matching apps to take for each search term. Use 1 for the single best match. Ignored in URL mode.
urlsarrayApp Store app links, for example https://apps.apple.com/us/app/instagram/id389801252 . Multiple URLs supported. The app id is read from the /id{digits} part; the storefront in the link is used only if you leave Countries empty. Developer and charts/category pages are accepted in the list but are skipped with a warning, because they list many apps and carry no single app id.
appIdsarrayBare numeric App Store app ids (for example 389801252), as an alternative or addition to URLs. Works in both modes; reviews come from Countries (or 'us' when empty).
countriesarrayISO 2-letter storefront codes to collect reviews from (for example us, gb, de, jp). Each country is a separate review stream. Leave empty to use the storefront from each URL (URL mode) or 'us' (search mode). Use 'all' to sweep a broad built-in set of major storefronts.
sortBystringOrder reviews are returned in per country.

Choices: mostRecent, mostHelpful

Show 14 more inputs
More input fields
InputWhat it controls
minRatingintegerKeep only reviews with at least this star rating (1 to 5). Leave empty for all.
maxRatingintegerKeep only reviews with at most this star rating (1 to 5). Leave empty for all.
fetchDetailsbooleanAlso attach app metadata (developer, average rating, rating count, genre, icon, price, release notes) to each review. Adds an extra lookup per app.
maxItemsintegerMaximum number of reviews to collect in total. 0 means no limit (stops at Max pages per country across all countries). Predictable, keeps the first run cheap.
maxPagesintegerOptional bound on review pages walked per country (50 reviews per page). Leave empty to walk every review page; the storefront naturally stops paginating once it runs out. The run also stops at Max reviews.
resumeFromRunIdstringOptional: paste a previous run ID (or dataset ID) from this actor. Reviews already collected there are skipped, so this run only returns new ones. For repeated scheduled monitoring of the SAME search, use Incremental mode below instead. Leave empty for a normal run.
incrementalModebooleanFor a search you run on a schedule: remember the reviews already seen and return only what changed (NEW/UPDATED/REAPPEARED, plus EXPIRED if enabled) instead of pasting a Resume from run ID every time. A review counts as changed when its rating, title, body, author, review date or reviewed app version changes. Excluded from the comparison: voteSum, voteCount and the app-metadata fields added by Enrich with app details (seller, ratings, genre, price, version, release notes and so on); add more below. Off by default so a first-time run behaves exactly as before.
stateKeystringOptional: name this monitoring campaign so you can run several tracked searches independently. Leave empty to derive the state automatically from your search settings (mode, queries/URLs, countries, sort, rating filters, enrichment), two different filter setups never share a baseline. Ignored when Incremental mode is off.
emitUnchangedbooleanAlso return reviews that have not changed since the last run (changeType = UNCHANGED). Off by default so a recurring run returns only what changed, turning this on returns and bills for every scanned review, every run. Ignored when Incremental mode is off.
emitExpiredbooleanAlso return a row for each previously-tracked review that no longer appears (changeType = EXPIRED) once a run completes a full, uncapped scan. Off by default, turning this on returns and bills an extra row per review that disappeared. An EXPIRED row carries only the review id and timestamps, not its original text (kept out of the saved state to keep it small). Ignored when Incremental mode is off.
ignoreFieldsForChangesarrayOptional. Output field names that must NOT make a review count as UPDATED, for example "authorUri" or "reviewUrl". Ignored fields stay in the output and the saved baseline; they are only left out of the comparison and of changedFields. voteSum, voteCount and the app-metadata fields are always excluded. Leave empty to compare every other field.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write. Leave empty to skip; never changes the dataset output. Supported: Notion, Linear, Airtable, Apify.
notionParentPageUrlstringURL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

reviewIdReview ID
appIdApp ID
appNameApp
countryCountry
ratingRating
titleTitle
bodyBody
authorAuthor
reviewDateDate
appVersionApp version
voteSumVote sum
voteCountVote count
Show 21 more fields
reviewUrlReview URL
changeTypeChange type (incremental mode)
changedFieldsChanged fields (incremental mode)
firstSeenAtFirst seen (incremental mode)
lastSeenAtLast seen (incremental mode)
appSellerNameappSellerName
appAverageRatingappAverageRating
appRatingCountappRatingCount
appAverageRatingCurrentVersionappAverageRatingCurrentVersion
appRatingCountCurrentVersionappRatingCountCurrentVersion
appPrimaryGenreappPrimaryGenre
appContentRatingappContentRating
appBundleIdappBundleId
appIconUrlappIconUrl
appStoreUrlappStoreUrl
appPriceappPrice
appCurrencyappCurrency
appMinimumOsVersionappMinimumOsVersion
appCurrentVersionappCurrentVersion
appCurrentVersionReleaseDateappCurrentVersionReleaseDate
appReleaseNotesappReleaseNotes

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "reviewId": "9000000001",
  "appId": "1234567890",
  "appName": "Sample App",
  "country": "us",
  "rating": 5,
  "title": "Sample review title",
  "body": "Full review text appears here.",
  "author": "Reviewer Name",
  "authorId": "500000001",
  "authorUri": "https://itunes.apple.com/us/reviews/id500000001",
  "reviewUrl": "https://itunes.apple.com/us/review?id=1234567890&type=Purple%20Software",
  "appVersion": "1.0.0",
  "reviewDate": "2026-01-01T00:00:00-07:00",
  "voteSum": 0,
  "voteCount": 0,
  "contentType": "Application"
}

Ways to use this data

  • App marketing and ASO teams: track sentiment and recurring themes across countries and app versions to plan messaging and release notes.
  • Product and QA teams: catch problems early after a release by watching for new and updated low-rated reviews.
  • Competitive research: compare your app's ratings and review volume against competitors across the same storefronts.
  • Customer support and community teams: surface unresolved complaints and recurring issues from the most recent reviews.
  • Data science and NLP teams: build labeled datasets of sentiment, feature requests and bug reports at scale.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Apple App Store Reviews return?

The documented output for Apple App Store Reviews includes review id, app id, app, country, rating, title, body and author. Availability of each field depends on the source page and the selected mode.

How much does Apple App Store Reviews cost?

It costs $1.00 per 1,000 results on the Apify Free plan and from $0.60 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed reviews on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated, reappeared and (optionally) expired reviews, and unchanged ones are not billed unless you turn that on too.

What's the difference between Resume from run ID and Incremental mode?

Resume from run ID continues one specific interrupted run: paste its id and this run skips whatever that run already collected. Incremental mode is for repeated scheduled monitoring of the same search: it remembers state itself, across as many runs as you like, without you pasting anything each time. Use resume to recover from an error or a cost cap on a single run; use incremental mode for an ongoing tracked search.

Why did my run return an empty dataset instead of failing?

An app with no reviews for the countries and filters you chose is a normal, valid result, not an error, so the run finishes with an empty dataset and a clear status message. The store feed can also come back empty for a while for an app that does have reviews (the actor then falls back to the small selection of reviews on the app's own App Store page); if that is empty too, the status message names the apps and countries, and running again later or adding another country usually returns them. The run only fails outright when a cross-run link it needs cannot be resolved: an invalid Resume from run ID, or combining Resume from run ID with Incremental mode on a search that already has saved incremental state.

Why did a multi-app or multi-country run finish under Max reviews?

Max reviews is split evenly across every app/country combination in the run before scraping starts. If one of them runs out of reviews early, its unused share is not passed on to the others. A narrow rating filter can also end a country early. See "Known limits to plan around" in How to Use for the full explanation and workarounds.

Ready to collect with Apple App Store Reviews?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.