Apple Reviews Scraper | App Store Reviews and Ratings avatar

Apple Reviews Scraper | App Store Reviews and Ratings

Pricing

from $0.03 / 1,000 reviews

Go to Apify Store
Apple Reviews Scraper | App Store Reviews and Ratings

Apple Reviews Scraper | App Store Reviews and Ratings

Apple App Store reviews scraper: paste an app link, id, bundle id or app name and get every review with stars, title, full text, author, date, edits and the developer's reply, plus the app's name, developer, genre and rating. 100 reviews in 6 seconds, 27 fields each, any country, no Apple account.

Pricing

from $0.03 / 1,000 reviews

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Apple Reviews Scraper | App Store Reviews and Ratings for Any App and Country (2026)

1 URL. 100 Apple reviews. 27 fields per review.

From SilentFlow. Creators of Pinterest Scraper (#1 for โ€œpinterest pins scraperโ€ in Apify Store search) and Leboncoin Scraper Ppe, with 240,000+ combined lifetime runs.

Turn App Store reviews into a spreadsheet: every review of your app or a competitor's, with its stars, title, full text, author and date, whether it was edited, and the developer's public reply, next to the app's name, developer and overall rating. 100 Instagram reviews in 17 seconds, in any country's store, no Apple account needed.

Why choose this actor?

Scrolling through App Store reviews on a phone, one screen at a time? Copying complaints into a sheet after every release? Stuck at 500 reviews per app and country with the tool you use today?

  • 27 fields filled on every review, where the most used App Store reviews actor returns 12. On the prefilled run (the Instagram link, US store, 100 reviews, measured on 28 Sep 2026), 27 of the 30 fields carry a value on every row. Next to the review itself (rating, reviewTitle, reviewText, authorName, reviewDate, isEdited), each row carries the app it belongs to: appName, developer, appGenre, appRating, appRatingCount, appVersion, appPlatform, bundleId and appIconUrl. The last three fields hold the developer's public reply when there is one: Instagram never answers, Spotify answered 34 of the 200 complaints of our second test.
  • Past the 500-review wall. The most used App Store reviews actor stops at 500 reviews per app and country. Here Apple's lists run thousands of reviews deep: our test read 1,000 of Robinhood's most helpful US reviews in one run, in 3 minutes 45 seconds, going back to 2017, 397 of them with Robinhood's reply.
  • Paste a link, an id or just the app's name, in as many countries as you like. App Store links (an app page, or a developer page for every app it publishes), numeric ids and bundle ids such as com.burbn.instagram, and plain app names like spotify all go in the same form and run together, in every store you list. The most used App Store reviews actor takes ids and links, one country per run. In our test, one Duolingo link read in the US, German, French, Japanese and Brazilian stores returned 500 reviews in 3 minutes 53 seconds.

Try Apple Reviews Scraper

Try your first App Store reviews

Paste this input into the Input tab (JSON view) and press Start. It is the prefilled input of the form: the 100 most recent reviews of Instagram in the US App Store.

{
"startUrls": [{ "url": "https://apps.apple.com/us/app/instagram/id389801252" }],
"maxReviews": 100,
"sort": "mostRecent"
}

Runs of this size fit easily in the Apify Free plan, so you can try the actor on your own app and your competitors before scheduling anything. Each review is one row of the dataset; export it as JSON, CSV, Excel or HTML from the Storage tab, or read it from the API.

How it works

SilentFlow ยท Apple suite
ย ย Apple Scraper
App Store Apps, Ratings and
Apple Reviews Scraper
You are here

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this actor:

You have access to the Apple Reviews Scraper on Apify: silentflow/apple-reviews-scraper
It returns one row per customer review of an App Store app in one country, from Apple's public App Store. No Apple account.
Input (none required; give at least one of startUrls / appIds / keywords):
- startUrls (array of {"url": string}): App Store links. App page https://apps.apple.com/us/app/instagram/id389801252,
developer page https://apps.apple.com/us/developer/meta-platforms-inc/id284882218 (reviews of each of its apps).
A link is read in its own country store unless countries is filled.
- appIds (array of strings): numeric App Store ids ("389801252") or bundle ids ("com.burbn.instagram").
- keywords (array of strings): app names, e.g. ["spotify", "duolingo"]. Each name reads the App Store's top match.
- countries (array of strings, default empty): two-letter store codes (us, gb, de, fr, jp, br...). Every app is read
in each store listed. Empty: links in their own store, ids and names in the US store.
- maxReviews (integer, default 100): reviews per app and country. No fixed ceiling: Apple's lists run thousands deep.
- sort (string, default "mostRecent"): "mostRecent", "mostHelpful", "mostCritical" (lowest stars first),
"mostFavorable" (highest stars first), or "both" (most recent, then most helpful ones not delivered yet).
- ratings (array of strings "1".."5", default all): stars to keep, e.g. ["1", "2"] for complaints.
- since (string, default empty): keep reviews written after a date ("2026-09-01") or within a span ("7 days",
"24 hours", "2 weeks", "3 months").
Output per row (30 fields, null when Apple has no value):
- Identity: id (review id, string), url (the app's reviews page for this review), reviewTitle
- Content: reviewText, rating (1-5), isEdited (boolean)
- Author: authorName
- Developer reply: developerResponse (text), developerResponseDate (RFC 3339 UTC), developerResponseId; null when none
- Place and time: reviewDate (RFC 3339 UTC), country (store code)
- App: appId, appName, appUrl, appIconUrl, bundleId, developer, developerId, appGenre, appRating (0-5),
appRatingCount, appVersion (latest version), appPlatform (iOS | macOS)
- Meta: sort (mostRecent | mostHelpful | mostCritical | mostFavorable), page (of 20), position (rank in Apple's list),
foundBy (url | id | keyword | developer), query (the input entry), scrapedAt
Use apify-client for Python or JavaScript: client.actor("silentflow/apple-reviews-scraper").call(run_input={...}).

How to scrape Apple App Store reviews

Three inputs, from the simplest to a combined run. Each one runs as is.

Get the latest reviews of an app

Copy the app's link from the App Store (in a browser or with the Share button) and paste it. The country in the link picks the store: this link reads the US App Store, a /gb/ link reads the UK one.

{
"startUrls": [{ "url": "https://apps.apple.com/us/app/instagram/id389801252" }],
"maxReviews": 200
}

Rows arrive newest first. position is the rank of the review in Apple's list, page the page of 20 it sat on, so you can see how deep the run went.

Pull the complaints about two apps by name

No link at hand? Type the app names. Each name reads the App Store's top match, and the run log tells you which app it picked. Keep 1 and 2 stars only to get the complaints, in two stores at once.

{
"keywords": ["spotify", "duolingo"],
"countries": ["us", "gb"],
"maxReviews": 50,
"ratings": ["1", "2"]
}

This exact input returned 200 reviews in 4 minutes 28 seconds in our test: 50 per app and country, all rated 1 or 2 stars, 34 of them with the developer's reply. To reach the lowest stars sooner, set sort to mostCritical: Apple then lists the 1 star reviews first.

Watch your app and a competitor over the last week

Mix ids and bundle ids, read two stores, and keep only what was written in the last seven days. With the most recent order, the run stops as soon as it reaches older reviews.

{
"appIds": ["389801252", "com.zhiliaoapp.musically"],
"countries": ["us", "gb"],
"maxReviews": 500,
"since": "7 days"
}

developerResponse tells you which of these reviews the developer has already answered, and isEdited which ones their author rewrote.

Input parameters

ParameterTypeDefaultWhat it does
startUrlsarray of linksInstagram, USApp Store links: an app page, or a developer page for the reviews of each of its apps. Mac apps work too.
appIdsarray of stringsemptyNumeric App Store ids (389801252) or bundle ids (com.burbn.instagram).
keywordsarray of stringsemptyApp names such as spotify. Each reads the App Store's top match in each store.
countriesarray of stringsemptyTwo-letter store codes. Every app is read in each store listed. Empty: links in their own store, ids and names in the US store.
maxReviewsinteger100Reviews per app and country. No fixed ceiling.
sortstringmostRecentmostRecent, mostHelpful, mostCritical (lowest stars first), mostFavorable (highest stars first), or both (most recent first, then the most helpful ones not delivered yet).
ratingsarray of "1" to "5"allStars to keep.
sincestringemptyKeep reviews written after a date or within a span back from the run.

Accepted formats

  • App links: https://apps.apple.com/us/app/instagram/id389801252, with or without the name part (https://apps.apple.com/us/app/id389801252), with or without extra parameters (?platform=iphone, ?mt=12 for Mac apps). Old itunes.apple.com links work too.
  • Developer links: https://apps.apple.com/us/developer/meta-platforms-inc/id284882218 reads every app of the developer in that store, each up to maxReviews.
  • Ids: the digits after id in any App Store link (389801252, id389801252), or the bundle id (com.spotify.client). A full App Store link pasted in this field works too.
  • App names: anything you would type in the App Store search box (calm, notion, revolut). When two apps share a name, use a link or an id.
  • Countries: two-letter codes such as us, gb, de, fr, es, it, jp, kr, br, mx, in, au, ca. uk is read as gb. Capital letters are fine.
  • Since: a day (2026-09-01), a moment with its time zone (2026-09-01T08:00:00Z), or a span: 24 hours, 7 days, 2 weeks, 3 months, 1 year (7d and 2w work too).

What data can you extract from the Apple App Store?

Every row is one customer review, flat and ready for a spreadsheet, a database or a language model. The 30 fields come in groups, always in the same order.

GroupFields
Identityid, url, reviewTitle
ContentreviewText, rating, isEdited
AuthorauthorName
Developer replydeveloperResponse, developerResponseDate, developerResponseId
Place and timereviewDate, country
AppappId, appName, appUrl, appIconUrl, bundleId, developer, developerId, appGenre, appRating, appRatingCount, appVersion, appPlatform
Metasort, page, position, foundBy, query, scrapedAt

A few facts that help when you use the data:

  • id is Apple's review id. It stays the same from one run to the next, so it is the key to use when you store reviews over time and drop the ones you already have.
  • url opens the app's reviews page in that country's App Store and carries the review id, so every row keeps its own link. appUrl is the app's permanent App Store page.
  • reviewDate, developerResponseDate and scrapedAt are RFC 3339 dates in UTC (2026-09-26T19:50:42Z).
  • isEdited is true when the author rewrote the review. reviewDate is the date of the current text, so an edited review can be dated after the developer's reply to its first version.
  • developerResponse is the developer's public answer, with its date and id; all three are null when the developer has not answered. How often that happens depends on the app: Instagram and Duolingo answered none of the reviews in our tests, Spotify 34 of 200 complaints, Robinhood 397 of its 1,000 most helpful reviews.
  • appVersion is the app's latest version at run time. Apple does not show which version a review was written on.
  • appRating and appRatingCount are the app's overall star rating and number of ratings in that country. Apple publishes no overall rating for Mac apps here, so they are null for them.
  • appIconUrl is Apple's 512 px icon link.

Output example

A real row from our complaints test (spotify typed as an app name, US store, 1 and 2 stars):

{
"id": "14596870763",
"url": "https://apps.apple.com/us/app/id324684580?see-all=reviews&reviewId=14596870763",
"reviewTitle": "Iโ€™m adding songs in my playlist and there not showing up",
"reviewText": "Give me my songs",
"rating": 1,
"isEdited": false,
"authorName": "Jayyy137",
"developerResponse": "Hi. Thanks for sharing your experience. Could you try logging out and then logging back in to your account to see if that'll make any difference? If that doesn't help, feel free to reach out to our Customer Service by visiting support.spotify.com and looking for \"Contact us\"",
"developerResponseDate": "2026-09-27T22:19:24Z",
"developerResponseId": "66696361",
"reviewDate": "2026-09-26T19:50:42Z",
"country": "us",
"appId": "324684580",
"appName": "Spotify: Music and Podcasts",
"appUrl": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580",
"appIconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/fd/b0/e6/fdb0e66d-165c-aa66-ac6b-1ee1e01911e8/AppIcon-0-0-1x_U007epad-0-1-0-0-sRGB-85-220.png/512x512bb.jpg",
"bundleId": "com.spotify.client",
"developer": "Spotify",
"developerId": "324684583",
"appGenre": "Music",
"appRating": 4.77,
"appRatingCount": 42315524,
"appVersion": "9.1.86",
"appPlatform": "iOS",
"sort": "mostRecent",
"page": 10,
"position": 193,
"foundBy": "keyword",
"query": "spotify",
"scrapedAt": "2026-09-28T11:26:29Z"
}

Advanced usage

Five recipes for the jobs teams run most. Each input runs as is.

Catch complaints about your latest release every morning

Schedule this input daily (Actions, then Schedule on the actor page). It keeps the 1 and 2 star reviews of the last three days in four English-speaking stores.

{
"appIds": ["389801252"],
"countries": ["us", "gb", "ca", "au"],
"maxReviews": 500,
"ratings": ["1", "2"],
"since": "3 days"
}

Apple adds new reviews to its public lists about once a day: on 28 Sep 2026, the newest review listed in each of our test runs was about 30 hours old. A three-day window on a daily schedule never misses a day; drop the reviews you already stored by id.

Compare one app across five countries

Each App Store country has its own reviews, in its own language. Reading the same app in several stores shows where users are happy and where a translation or a local payment method is failing.

{
"startUrls": [{ "url": "https://apps.apple.com/us/app/duolingo-language-lessons/id570060128" }],
"countries": ["us", "de", "fr", "jp", "br"],
"maxReviews": 100
}

This input returned 500 reviews, 100 per store, in 3 minutes 53 seconds in our test. Group the rows by country and average rating to compare stores side by side.

Read deep into one app's reviews

Apple's lists are not capped at 500: set maxReviews as high as you need. The most helpful order goes back years and brings the longest, most detailed reviews.

{
"appIds": ["938003185"],
"sort": "mostHelpful",
"maxReviews": 1000
}

In our test this input returned 1,000 Robinhood reviews in 3 minutes 45 seconds, from 2017 to 2026, 397 of them with Robinhood's reply. position tells you how far down Apple's list each review sat.

Read every app of a developer

A developer link reads the reviews of each of its apps in that store, and ids can join the same run. In our test, this input (Meta's developer link plus Xcode, both orders, the last 30 days) read 17 apps and returned 682 reviews in 5 minutes 40 seconds.

{
"startUrls": [{ "url": "https://apps.apple.com/us/developer/meta-platforms-inc/id284882218" }],
"appIds": ["497799835"],
"sort": "both",
"maxReviews": 60,
"since": "30 days"
}

appName and appId on every row let you pivot the whole portfolio in one table.

Build a sentiment dataset for a category

Name the leading apps of a category, keep a balanced mix of stars, and feed the text to your model. The most helpful order gives the longest, most detailed reviews.

{
"keywords": ["calm", "headspace", "insight timer", "balance meditation"],
"sort": "mostHelpful",
"maxReviews": 300
}

rating is a ready label from 1 to 5, and reviewTitle plus reviewText give the model the full context.

FAQ

What does this actor extract? Customer reviews from the Apple App Store: the stars, title, full text, the author's nickname, the date, whether the review was edited, and the developer's public reply with its date, plus the app's name, developer, category, overall rating and latest version on every row. One row per review.

Do I need an Apple account or a developer account? No. The actor reads the reviews anyone can see on the App Store. No login, no Apple ID, no App Store Connect access, and it works for any app, not only yours.

How do I find an app's id? You do not have to: paste the App Store link or type the app's name. If you want the id anyway, it is the number after id in the link: 389801252 in https://apps.apple.com/us/app/instagram/id389801252.

How many reviews can I get per app? As many as Apple lists, which for a popular app runs to thousands per country and order: our test read 1,000 of Robinhood's US reviews in one run, and Instagram's US list still had reviews 8,000 places down in our checks. maxReviews sets where to stop. To go wider, add countries: each store has its own reviews.

Why did I get fewer reviews than I asked for? Three reasons. The app may have fewer written reviews in that store (many users only leave stars: an app with 20 ratings can have 12 written reviews). A star filter or a date keeps only part of what Apple lists. And when a filter stops matching for 200 reviews in a row, the run moves on instead of reading a list thousands of reviews deep for nothing.

Can I get reviews from several apps and countries in one run? Yes. Put as many links, ids and names as you like; every app is read in each country of countries, and maxReviews applies to each app and country. An app named twice (a link and its id, say) is read once.

How fresh is the data? Reviews are read from the App Store at the moment you run the actor; nothing is stored on our side. Apple itself adds new reviews to its public lists about once a day, so the newest reviews in a run are usually about a day old (about 30 hours in our runs on 28 Sep 2026). For a daily schedule, set since to 3 days and drop the ids you already have.

Do the filters combine? Yes. ratings set to 1 and 2, since set to 7 days and countries set to us and gb returns the 1 and 2 star reviews of the last week in both stores. With the most recent order, the run stops as soon as it reaches reviews older than since.

What is the difference between the review orders? Most recent lists the newest reviews first, for monitoring and support. Most helpful lists the reviews other users voted up, which reach back years and are usually longer. Most critical lists the lowest stars first, most favorable the highest. both gives you the most recent and the most helpful lists, without duplicates.

Does it work for Mac apps? Yes: paste the Mac App Store link or the id, like any other app. Xcode's reviews came back in our tests. appPlatform says iOS or macOS on every row.

Can I get the developer's replies? Yes. When the developer has answered a review in public, developerResponse holds the reply, developerResponseDate its date and developerResponseId its id. Use the "Reviews and developer replies" view of the dataset to read them side by side.

Can I see which app version a review was written on, or its helpful votes? No. Apple's public review listing does not include either, so the rows do not carry them. appVersion gives the app's latest version at run time.

Are the links permanent? appUrl is the app's permanent page. url opens the app's reviews page with the review id in the link; Apple does not publish a page per review. appIconUrl is Apple's image link and can change when the app updates its icon.

What happens with a wrong link, id or name? The run skips it, says why in the log (no such app in that store, or not an App Store link) and goes on with the rest. A run that finds nothing at all ends with a message saying what to change.

Is it legal to scrape App Store reviews? The actor collects reviews that Apple shows publicly to anyone. How you use them is your responsibility: see Legal compliance below, especially for author nicknames.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

Support

Need something this actor does not do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This actor extracts publicly available data from the Apple App Store. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with Apple's terms of service and with applicable data protection laws (GDPR, CCPA, and PIPL where relevant). Reviews carry the nickname of their author, which can be personal data: store and process them accordingly, and prefer aggregated or pseudonymised analysis when you share results. The data returned is informational; verify it before using it for regulated decisions.

Apple Reviews Scraper by SilentFlow: what users say about any app, in any country, as rows.