Apple App Store Scraper: Apps, Search & Reviews avatar

Apple App Store Scraper: Apps, Search & Reviews

Pricing

from $0.10 / 1,000 review scrapeds

Go to Apify Store
Apple App Store Scraper: Apps, Search & Reviews

Apple App Store Scraper: Apps, Search & Reviews

Scrape the Apple App Store: app details (ratings histogram, in-app purchases, privacy labels), keyword search and reviews with developer responses - past the 500-review RSS cap, many countries in one run, and an "only new reviews" mode.

Pricing

from $0.10 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

rj

rj

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

Apple App Store Scraper gets app details, keyword search results and customer reviews from the Apple App Store, for as many countries as you want, in one run. Reviews come with the developer's response, the app version they were written for, and go past the 500-review limit of Apple's RSS feed. App details include what the iTunes API doesn't give you: the ratings histogram (1–5 stars), in-app purchases with prices, privacy labels, chart position, Editors' Choice and the new age rating.

Most App Store review scrapers only do reviews, stop at 500 per app, and handle one country per run. This one combines apps + search + reviews in one Actor, runs many countries at once (reviews are separate per country), has an "only new reviews" mode for scheduled monitoring, and charges no start fee: $0.10 per 1,000 reviews.

No login, no browser, no proxy needed by default.

What can this App Store scraper do?

  • 📱 App details from App Store IDs (324684580), bundle IDs (com.spotify.client) or App Store links: name, subtitle, developer, seller, price and currency, average rating and rating count, ratings histogram, genres, content and age rating, release date, current version and its date, release notes, size, minimum iOS, languages, description, icon and screenshots, in-app purchases, privacy labels, chart position, Editors' Choice and editors' notes, developer website and privacy-policy links.
  • 🔎 Search the App Store by keyword (iPhone, iPad or Mac), up to 200 apps per term and country, each with its search rank.
  • 💬 Reviews: star rating, title, text, reviewer nickname, date, app version, edited flag and developer response (with its date), sorted by most recent or most helpful.
  • 🌍 Many countries in one run: ["us", "gb", "de", "jp"]. Ratings, prices, chart positions and reviews are all per storefront, and each item says which country it comes from.
  • ♾️ More than 500 reviews per app: the scraper reads the App Store website's own reviews API (20 per request, no 500 cap; tested past 10,000 reviews for one app), and joins Apple's RSS feed to add the app version.
  • 🔁 Only new reviews: schedule the Actor and get, and pay for, only reviews that weren't output before, per app and country.
  • 📅 Only reviews since a date or age ("7 days").
  • 🛡️ Built to keep running: if the reviews API is busy for an app, the scraper switches to Apple's RSS feed automatically; retries with backoff; one bad app ID never fails the whole run.
  • 💸 Pay per result, no start fee, no subscription.

What data can you get?

DataWhere it comes fromIn this Actor
Name, developer, bundle ID, price, currency, genresiTunes Lookup/Search API✅
Average rating and rating count (all versions and current version)iTunes API✅
Ratings histogram (number of 1★ … 5★ ratings)App Store page✅
Version, release date, release notes, size, minimum OS, languagesiTunes API✅
Description, icon, iPhone and iPad screenshotsiTunes API✅
In-app purchases (name and price)App Store page✅ (top items Apple lists)
Privacy labels ("Data Used to Track You", "Data Linked to You"…)App Store page✅
Subtitle, chart position, Editors' Choice, age rating, developer linksApp Store page✅
Keyword search results with rankiTunes Search API✅ up to 200 per term and country
Reviews: stars, title, text, nickname, dateReviews API / RSS feed✅
Developer response to a reviewReviews API✅
App version the review was written forRSS feed✅ first 500 reviews per app and country
More than 500 reviews per app and countryReviews API✅
Several countries in one run✅
Only new reviews since the last run✅
Reviewer e-mails, profiles or other personal data❌ Never collected

Use cases

  • Review monitoring and customer support: get new 1★ and 2★ reviews from every country every morning, with the version they mention and whether you already replied.
  • Product and UX research: mine thousands of reviews (not just the latest 500) for feature requests and bugs; compare the most helpful reviews across markets.
  • Competitor tracking: follow competitors' ratings, histogram, price, in-app purchase prices, release cadence and chart position, country by country.
  • App Store optimisation (ASO): see which apps rank for a keyword in each country, with their subtitles and ratings.
  • Market research and lead lists: build lists of apps in a category with developer websites.
  • Privacy research: compare privacy labels across apps.
  • Datasets for AI and sentiment analysis: clean, flat JSON with ISO dates.

How to use it

  1. Click Try for free or Start.
  2. In Apps, paste App Store IDs, bundle IDs or app links, one per line. Optionally add Search terms.
  3. In Countries, list the storefronts you want (e.g. us, gb, de). Leave empty for us.
  4. Choose what to output: App details, Reviews (sort, max per app), or both.
  5. Click Start, then download the results as JSON, CSV, Excel or HTML, or fetch them with the API.

Input examples

Reviews and details for two apps in three countries:

{
"apps": ["324684580", "https://apps.apple.com/us/app/duolingo-learn-languages/id570060128"],
"countries": ["us", "gb", "de"],
"includeReviews": true,
"maxReviewsPerApp": 500,
"reviewsSort": "mostRecent"
}

Daily monitoring of new reviews (save as a Task and schedule it):

{
"apps": ["com.spotify.client"],
"countries": ["us", "gb"],
"includeAppDetails": false,
"onlyNewReviews": true,
"stateKey": "spotify-daily",
"maxReviewsPerApp": 1000
}

Keyword search, no reviews:

{
"searchTerms": ["meditation", "budget planner"],
"countries": ["us"],
"maxSearchResults": 50,
"includeReviews": false
}

The 200 most helpful reviews, keeping only those from the last 3 months:

{
"apps": ["389801252"],
"reviewsSort": "mostHelpful",
"reviewsSince": "3 months",
"maxReviewsPerApp": 200,
"includeAppDetails": false
}

Output example

Each dataset item has a type: app or review. Use the Apps and Reviews views (or filter on type) to see them separately. Real items from a run on 2 Nov 2026 (long fields shortened):

[
{
"type": "app",
"id": "us:570060128",
"appId": "570060128",
"country": "us",
"url": "https://apps.apple.com/us/app/duolingo-learn-languages/id570060128",
"name": "Duolingo: Learn Languages",
"subtitle": "Spanish, French, Chess & Math",
"bundleId": "com.duolingo.DuolingoMobile",
"developerName": "Duolingo",
"developerId": "570060151",
"price": 0,
"currency": "USD",
"isFree": true,
"hasInAppPurchases": true,
"inAppPurchases": [
{ "name": "Barrel of Gems (1200)", "price": "$4.99" },
{ "name": "Super Duolingo", "price": "$9.99" }
],
"rating": 4.7225,
"ratingCount": 5553374,
"ratingsHistogram": { "1": 141247, "2": 46993, "3": 136284, "4": 562704, "5": 4666146 },
"primaryGenre": "Education",
"contentRating": "4+",
"ageRating": "4+",
"chartPosition": { "rank": 1, "chart": "Education" },
"isEditorsChoice": true,
"releaseDate": "2012-11-13T08:00:00.000Z",
"currentVersion": "7.146.1",
"currentVersionReleaseDate": "2026-10-28T16:01:08.000Z",
"fileSizeBytes": 514102272,
"minimumOsVersion": "17.0",
"privacyLabels": [
{ "type": "DATA_USED_TO_TRACK_YOU", "title": "Data Used to Track You", "categories": ["Purchases", "Location", "Contact Info", "…"], "categoryIds": ["PURCHASES", "LOCATION", "CONTACT_INFO", "…"] }
],
"developerWebsite": "https://www.duolingo.com",
"pageScraped": true,
"scrapedAt": "2026-11-02T13:30:55.332Z"
},
{
"type": "review",
"id": "14736559996",
"appId": "324684580",
"appName": "Spotify: Music and Podcasts",
"country": "us",
"url": "https://apps.apple.com/us/app/id324684580?see-all=reviews",
"rating": 1,
"title": "Horrible Lag and Crashes",
"text": "My liked songs playlist is 113,000 songs deep, and trying to shuffle it crashes my app nonstop. …",
"userName": "Chimp Pudding",
"date": "2026-11-01T06:28:23.000Z",
"appVersion": "9.1.94",
"isEdited": true,
"developerResponse": "Hi. Have you tried a quick reinstall? If that doesn't help, we'd recommend reaching out to our Customer Service at support.spotify.com. …",
"developerResponseDate": "2026-05-15T16:04:37.000Z",
"voteSum": 0,
"voteCount": 0,
"sort": "mostRecent",
"position": 4,
"source": "api",
"scrapedAt": "2026-11-02T13:31:00.327Z"
}
]

Full sample: samples/sample-output.json. Missing values are null (never left out), dates are ISO 8601 in UTC, and numbers are numbers. A RUN_SUMMARY record in the run's key-value store lists every input with its status, item counts, the review sources used and any warnings.

How much does it cost?

This Actor uses pay-per-event pricing. You pay only for items in your dataset, and there is no start fee from us.

EventPricePer 1,000
review: one review saved$0.0001$0.10
app: one app (in one country) saved, including search results$0.002$2.00

Examples:

  • 1,000 reviews ≈ $0.10.
  • The default prefill (Spotify, US, 20 latest reviews + app details): 20 × $0.0001 + 1 × $0.002 = $0.004.
  • 10 apps × 3 countries with 200 reviews each: 30 app items ($0.06) + 6,000 reviews ($0.60) = $0.66.
  • A daily "only new reviews" run that finds 40 new reviews: $0.004. Reviews already output in earlier runs are free.

Set Maximum cost per run in the run options to cap spending: the scraper stops cleanly at the limit and says so in its status message. Your Apify plan's free monthly credit applies.

Scheduling: only new reviews

  1. Turn on Only new reviews and give the monitor a name in Monitor name (e.g. my-apps-daily).
  2. Save the input as a Task and add a Schedule (e.g. every morning).
  3. The first run outputs up to Max reviews per app and country of the latest reviews and remembers them.
  4. Later runs read the newest reviews first and output only reviews that weren't output before. They stop as soon as a whole page has nothing new, so a daily check of an app usually costs two or three requests plus the new reviews.

The memory is kept per monitor name, app and country in a named key-value store (app-store-scraper-state). Use a different monitor name for each independent schedule, and don't run two runs with the same name at the same time.

Tips and limits

  • Reviews are per country. An app's US reviews and UK reviews are different sets. Add every country you care about.
  • How many reviews? The reviews API has no 500 cap (tested past 10,000 for one app). Big apps have hundreds of thousands of reviews per country, so 0 (no limit) can mean a long and costly run: use a limit or Maximum cost per run.
  • App version (appVersion) and vote counts come from Apple's RSS feed, which only covers the first 500 reviews per app and country, and which Apple leaves empty for some apps (e.g. Duolingo in the US). Otherwise these fields are null.
  • If the reviews API is busy (Apple answers "API capacity exceeded" for an app now and then), the scraper retries, then uses the RSS feed (up to 500 reviews, no developer responses) and tries the API again after that. Such reviews have "source": "rss". The reviews API belongs to Apple's website and is not an official, documented API: if Apple changes it, the RSS fallback keeps the reviews coming (capped at 500) until the scraper is updated.
  • In-app purchases are the items Apple lists on the app page (usually the top 10), with the price as displayed (e.g. "£4.99").
  • Page data (histogram, in-app purchases, privacy labels, subtitle, chart position, age rating) needs one extra request per app and country. Turn off Add data from the App Store page if you only need the basics. For search results it's off by default.
  • Search returns at most 200 apps per term and country (Apple's limit).
  • Languages: languages are ISO codes (EN, DE…). Texts such as descriptions, IAP names and privacy-label titles are in the storefront's language.
  • "Only reviews since" with "Most helpful" sorting can't stop early (helpful reviews aren't in date order): the scraper reads the app's top Max reviews per app most helpful reviews and keeps the recent ones (or reads 1,000 if there is no limit).
  • Edited reviews keep their ID, so "only new reviews" doesn't output them again.
  • Speed: a single app with 20 reviews takes about 4 seconds. Apple's lookup and search API is limited to about 20 calls a minute, so the scraper batches lookups (up to 100 apps per call) and spaces searches 3 seconds apart.

FAQ

Do I need an Apple account, API key or proxy? No. Everything comes from public App Store pages and Apple's public endpoints. The proxy option is there for very large runs if Apple starts rate-limiting.

Can I scrape Google Play too? Not with this Actor. It covers the Apple App Store (iPhone, iPad and Mac apps).

Why does an app show "not found" in some countries? The app isn't sold in that country's App Store (or the ID is wrong). The other countries still run.

Why is ratingsHistogram null? The App Store page couldn't be read for that app (see the run's warnings), or Add data from the App Store page is off.

Can I get reviews for every app in a search? Yes: turn on Scrape reviews of search results.

Is it legal to scrape the App Store? This Actor only collects data that Apple shows publicly to everyone: app listings and published reviews. Reviewers appear only with their public App Store nickname; no e-mails, profile links or other personal data are collected. You are responsible for using the data in line with Apple's terms and the laws that apply to you (for example GDPR when you process reviewers' nicknames and texts).

Integrations

  • API. Run the Actor and fetch results with the Apify API or the JavaScript and Python clients:

    curl -X POST "https://api.apify.com/v2/acts/rjmacarthy~app-store-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"apps":["324684580"],"countries":["us","gb"],"maxReviewsPerApp":100}'
  • Make, Zapier, n8n. Send new reviews to Slack, Google Sheets, Airtable, your helpdesk or CRM without code.

  • Webhooks. Trigger your own pipeline when a run finishes.

  • AI agents (MCP). Use the Actor as a tool through the Apify MCP server, e.g. "summarise this week's 1-star reviews of my app in the UK".

  • Google Sheets, Airbyte, Keboola and more through Apify integrations.

Changelog

  • 0.1 (Nov 2026) First release: app details with ratings histogram, in-app purchases and privacy labels; keyword search; reviews with developer responses beyond 500 per app (reviews API + RSS feed, automatic fallback); multiple countries per run; "only new reviews" and "only reviews since".

More scrapers by the same developer

Browse all my Actors on my Apify Store profile.

Support

Found an app that doesn't work, or need another field? Open an issue on the Issues tab with your input.