App Store Scraper
Scrape the Apple App Store: app name, developer, rating, review count, price, genre and artwork, plus reviews. $0.09 per 1,000 apps.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchTerm,appIds,startUrls(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00009 per app = $0.09 per 1,000
| You are charged for | When | Price |
|---|---|---|
| App returned | Charged per app/result returned. | $0.00009 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchTerm | Keyword to search the App Store for (e.g. "notion", "habit tracker"). Returns matching apps with full metadata. Leave empty if you are looking up specific apps by ID instead. | string |
appIds | Look up specific apps by numeric trackId (e.g. "1232780281") or bundleId (e.g. "net.shinyfrog.bear"). Each app is returned with full metadata; enable "Include reviews" to also fetch its customer reviews. Used instead of Search term. Note: individual metadata fields (e.g. averageUserRating, releaseNotes, sellerUrl, price) can be null when Apple does not provide them for an app. | array |
startUrls | Links to apps' App Store pages, as you copy them from the browser, e.g. https://apps.apple.com/us/app/notion-notes-tasks-ai/id1232780281. The id is read out of each link and looked up just like an App ID, so "Include reviews" works here too. Country still decides the storefront: a link from another one (the two letters after apps.apple.com/) is skipped with a note rather than read from the wrong store, and so is anything that is not an app page, such as a developer page. | array |
reviewsSort | Order in which to fetch reviews: most recent first, or most helpful first. | string |
country | Two-letter App Store storefront code, e.g. us, gb, ca, de, fr, jp, in. Affects which apps, prices, and reviews are returned. Use a valid ISO storefront code: an invalid code (e.g. "us-uk") is rejected by Apple's API and the actor returns a diagnostic row with no results instead of charging. | string |
maxReviews | Maximum number of customer reviews to fetch per app when "Include reviews" is on. Apple's feed serves roughly 50 reviews per page across up to 10 pages (~500 max). | integer |
maxItems | Maximum number of apps to return when using Search term. Apple's search caps at 200 results per query. | integer |
includeReviews | When looking up apps by ID, also fetch each app's customer reviews (author, rating, title, body, version, date) from Apple's public reviews feed. Ignored in Search mode. | boolean |
notionConnector | Optional. Write each app as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless. | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead. | string |
What you get
A structured dataset — each result includes fields like:
advisoriesappNameappStoreUrlartworkUrlaverageUserRatingaverageUserRatingCurrentVersionbundleIdcontentAdvisoryRatingcurrencycurrentVersionReleaseDatedescriptiondeveloperdeveloperIdfileSizeBytesuserRatingCountformattedPriceExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
21 ready-to-run use cases
Instagram App Reviews: Find Crash and Bug Reports
The newest Instagram iOS reviews in full, with the app version each was written against. It hands you every review, it does not classify them for you.
Notion App Reviews: What Users Keep Asking For
Notion's 500 most-helpful App Store reviews as full text. Read them for the requests that come up again and again before your next planning round.
ChatGPT App Reviews and Complaints on iOS
The 200 newest ChatGPT App Store reviews with star ratings, dates and versions. It returns rows for you to compare between runs. It sends no alerts.
CapCut vs InShot: Read Both Apps' iOS Reviews
Recent App Store reviews for CapCut and InShot in one dataset, each row tagged with its app, so you can read what editors complain about in either.
Top Meditation Apps: Ratings and Review Counts
40 meditation and sleep apps as Apple ranks them, with developer, rating average and review count. Handy for sizing a category before you build in it.
Robinhood App Reviews from the App Store
400 of the newest Robinhood iOS reviews with star rating, date and app version. Withdrawal, fee and account-lock complaints in the users' own words.
Temu App Reviews from the German App Store
Temu's German storefront reviews with star rating, date and app version. One country per run, so swap the code to read another market.
App Store Review Dataset for Sentiment Training
Thousands of banking app reviews across 20 iOS apps, every row carrying its star rating as a ready-made label. Built to train sentiment and NLP models.
Calm App Reviews: the Words Users Actually Type
Calm's most-helpful iOS reviews as full searchable text. Real phrasing from real users, which is where App Store keyword and subtitle ideas come from.
Best Budgeting Apps: Ratings and Top Reviews
Search the App Store for budgeting apps and pull each one's rating, review count and most-helpful reviews. Source material for a roundup post.
Candy Crush Reviews and Rating Count on iOS
500 of the newest Candy Crush App Store reviews, plus the live rating average and total. Each review carries its date and app version.
Bank of America App Reviews, Newest First
The freshest Bank of America iOS reviews with dates and app versions. Run it during an incident to read what customers are actually reporting.
Uber vs Lyft App Reviews from the UK Store
UK App Store reviews for both apps together. Apple keeps reviews separate per storefront, so swap the country code to read a different market.
WhatsApp App Reviews from the Brazil App Store
Apple keeps reviews separate per country. This pulls WhatsApp's Brazilian reviews; change the country code for India or any other storefront.
Canva App Reviews: Pull Quotes and Testimonials
Canva's most-helpful App Store reviews with the full body text and star rating, so you can find real sentences worth quoting. No filtering by rating.
Top AI Chatbot Apps and Their App Store Ratings
What Apple returns for 'ai chatbot assistant': 50 apps with developer, genre, rating average and rating count. A ranked snapshot, metadata only.
Threads App Reviews Tagged by App Version
Every Threads iOS review comes back with the version it was written against, so you can split them by release and see how each update landed.
Duolingo App Store Reviews, Newest First
The latest Duolingo iOS reviews with author, star rating, title, body, date and the app version each one was written against. Sorted most recent first.
Telegram vs Signal: App Store Ratings Side by Side
Both listings in one run: rating average, total ratings, current version, size and release notes. This one returns metadata only, no reviews.
App Store Keyword Research: Every VPN App Apple Lists
Search the App Store for 'vpn' and get back every app Apple returns, each with its genre, rating average and rating count. Metadata only, no review text.
App Store Metadata and Rating Count for Spotify
Spotify's live App Store numbers: rating average, total ratings, current version, release notes and file size. Put it on a schedule to watch them move.
Related tools in App Store Data
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
App Review Triage Monitor — App Store & Google Play Alerts
Sort new App Store and Google Play reviews into bugs, billing and feature requests. Get alerts on rating drops in Slack. $0.40 per 1,000 reviews.
Google Play Reviews Scraper
Google Play reviews by app ID or URL: score, text, reviewer, date, developer reply. Any country. Up to 5,000 per app. $0.09 per 1,000.
Where this tool sits
- Categories
- App Store Data
- Platforms
- App Store & Google Play
App Store Scraper: Apple App Store apps and their reviews, no key needed
Search the App Store by keyword, or look up apps by their ID, and you get one row per app. Name, developer, rating and rating count, price, genres, version, release notes, artwork, screenshots, supported devices and the store link.
Reviews come attached to the app row rather than as rows of their own, and they only work in ID mode. A keyword search returns app metadata and ignores the reviews setting, because Apple's review feed is keyed on an app id.
Two limits worth knowing up front. Apple's public review feed stops after ten pages, so about 500 reviews per app is the most anyone gets. And a search stops at 200 apps, which is Apple's number too.
| Input | A search term, or App Store IDs or links |
| Output | One row per app, with its reviews attached when you ask for them |
| Ceiling | 200 apps per search, about 500 reviews per app |
| Account needed | None |
| Price | $0.09 per 1,000 apps, which is $0.00009 each, flat on every plan |
📱 What App Store Scraper does
Two ways to use it, and they do different jobs.
Search. Give it habit tracker and you get the matching apps with their full metadata, up to 200 of them. This is the mode for finding apps you do not already know about.
Look up by ID. Give it numeric track ids (1232780281) or bundle ids (net.shinyfrog.bear) and you get those exact apps, with their customer reviews attached when includeReviews is on. This is the mode for watching apps you already care about. Links copied from the store work too: put them in startUrls and the id is read out of each one.
If you fill in both, the ids and links win and the search term is ignored.
Everything comes from Apple's own public endpoints, which is why there is no key to get and nothing to sign in to. The storefront is a run-level setting: one country per run, and it changes which apps you see, what they cost and which reviews come back.
📥 What you give it
{
"appIds": ["1232780281", "net.shinyfrog.bear"],
"includeReviews": true,
"maxReviews": 200,
"reviewsSort": "mostrecent",
"country": "us"
}
| Field | Default | What it is |
|---|---|---|
searchTerm | none | A keyword, as you would type it into the store. The form arrives with an example in it. |
appIds | empty | Numeric track ids or bundle ids, mixed freely. Used instead of a search term. |
startUrls | none | App Store links, like https://apps.apple.com/us/app/notion-notes-tasks-ai/id1232780281. Each is looked up like an id. A link from a storefront other than country, or one that is not an app page, gets a note instead. |
includeReviews | false | Fetch each app's reviews and attach them to its row. ID mode only. |
maxReviews | 100 | Reviews per app, 1 to 500. Apple serves roughly 50 per page over ten pages. |
reviewsSort | mostrecent | mostrecent or mosthelpful. |
maxItems | 50 | Apps per search, 1 to 200. Search mode only. |
country | us | Two-letter storefront: us, gb, de, jp, in and the rest. One per run. A code Apple does not recognise comes back as a note rather than as results. |
notionConnector, notionParentId | none | Optional. Also write each app into your connected Notion workspace. |
proxyConfiguration | off | Off, and best left off. Apple's public endpoints answer without it. |
📤 What you get back
A real row from a real run. The description, the screenshot lists and the device list are cut short here so the block stays readable:
{
"ok": true,
"trackId": 1232780281,
"bundleId": "notion.id",
"appName": "Notion: Notes, Tasks, AI",
"developer": "Notion Labs, Incorporated",
"developerId": 1232780280,
"price": 0,
"formattedPrice": "Free",
"currency": "USD",
"isFree": true,
"averageUserRating": 4.7765,
"userRatingCount": 90085,
"averageUserRatingCurrentVersion": 4.7765,
"userRatingCountCurrentVersion": 90085,
"primaryGenre": "Productivity",
"genres": ["Productivity", "Business"],
"version": "1.7.336",
"releaseDate": "2017-09-14T19:07:31Z",
"currentVersionReleaseDate": "2026-09-13T19:26:57Z",
"releaseNotes": "Bug fixes and performance improvements.",
"description": "Notion is an AI-powered all-in-one workspace that helps individuals and teams write notes, manage tasks, organize projects, and collaborate in one place...",
"sellerUrl": "https://www.notion.so",
"appStoreUrl": "https://apps.apple.com/us/app/notion-notes-tasks-ai/id1232780281?uo=4",
"artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/36/c1/9a/...512x512bb.jpg",
"screenshotUrls": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/94/dd/d8/...", "..."],
"ipadScreenshotUrls": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/33/b0/de/...", "..."],
"minimumOsVersion": "18.0",
"contentAdvisoryRating": "4+",
"fileSizeBytes": 617444352,
"languageCodes": ["AR", "DA", "NL", "EN", "FI", "FR", "DE", "..."],
"supportedDevices": ["iPhone5s-iPhone5s", "iPadAir-iPadAir", "..."]
}
| Field | What it is |
|---|---|
trackId, bundleId | Apple's numeric id and the developer's bundle id. Either works as input next time. |
averageUserRating, userRatingCount | All versions. The two CurrentVersion fields are the same figures for the release that is live now, which is how you spot a rating that fell after an update. |
price, formattedPrice, currency, isFree | The number, the way the store prints it, and a flag. Storefront-dependent. |
version, releaseNotes, currentVersionReleaseDate | What shipped last and when. Good for tracking release cadence. |
fileSizeBytes, minimumOsVersion, supportedDevices, languageCodes | The technical side, as Apple publishes it. |
artworkUrl, screenshotUrls, ipadScreenshotUrls | Direct image URLs, iPhone and iPad kept apart. |
reviews, reviewsCount | Only with includeReviews on, in ID mode. Each review has reviewId, author, rating, title, body, version, voteSum, voteCount and updated. |
| Null fields | Apple leaves plenty out per app. releaseNotes, sellerUrl and the rating fields are all commonly null on smaller apps. |
🧾 Reading the output
App rows carry ok: true. Notes carry ok: false and an errorCode, and they are never charged.
| Row | How to spot it | Charged |
|---|---|---|
| An app | ok is true and trackId is set | yes |
| A diagnostic | ok is false, and errorCode says what happened | no |
| Code | What it means |
|---|---|
BAD_INPUT | No search term and no app ids. There is no demo row, so nothing is fetched. Also one per link that is not an app page or comes from another storefront, with the link on the row. |
NO_RESULTS | Apple returned nothing. A storefront code it does not recognise lands here too. |
NOT_FOUND | That id is not in this storefront. Try another country. |
BLOCKED | Apple refused the request. Usually short-lived, so re-run it. |
The default table view shows app columns, so the review fields do not appear in it. Export the dataset, or open a row, to read them.
▶️ How to run it
1. Open App Store Scraper and click Try for free. 2. Either put a keyword into Search term, or put ids into App IDs or links into App Store links. Not both. 3. For reviews, use ids, tick Include reviews and set Max reviews per app. 4. Set Country / storefront if you want something other than us. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
💰 How much does it cost?
$0.09 per 1,000 apps, which is $0.00009 each. Flat on every Apify plan, no volume tiers.
You pay per app row. The reviews attached to a row are part of it, so pulling 500 reviews for an app costs the same as pulling none. Diagnostics are not charged.
Two hundred apps, which is the most a single search returns, is under two cents.
💡 What people use it for
- Watching a competitor's rating, version and release notes week to week, keyed on
trackId. - Pulling the most recent reviews for your own app into a spreadsheet or Notion, with the version
each reviewer was on.
- Sizing a category: search the keyword, sort the rows by
userRatingCount, see who owns it. - Checking the same app across storefronts, one run per country, to compare price and reception.
- Collecting screenshots and artwork for a competitive teardown.
🚧 What it does not do
- Reviews only in ID mode. A keyword search ignores the reviews setting.
- About 500 reviews per app. Apple's feed stops after ten pages, and no setting lifts it.
- 200 apps per search. Narrow the keyword and run it again for more.
- One storefront per run. Comparing countries means one run each.
- No ranking or chart position. Apple does not publish it here.
- No download or revenue figures. Nobody outside Apple has those.
- A zero review count is ambiguous. It means the run got no reviews back, which is usually
because the app has none, but a feed that did not answer looks the same on the row.
- Fields are missing where Apple leaves them out, which is often on smaller apps.
- No Google Play. The triage monitor linked below covers both stores.
🧭 Which app or review scraper do you need?
| If you want | Use |
|---|---|
| App Store metadata, or an app's reviews by id | This one |
| New reviews from both stores, triaged and alerted on | App Review Triage |
| Business reviews from Trustpilot | Trustpilot Scraper |
| Book metadata instead of apps | Books Scraper |
❓ Questions people ask
Do I need an Apple developer account or a key? No. These are Apple's public endpoints.
Why did includeReviews do nothing? It was a search run. Reviews need app ids or links.
Can I use a bundle id? Yes, in the same field as numeric ids. The row comes back with both.
How do I get reviews from another country? Set country and run it again. Reviews are per storefront.
Can I schedule it? Yes. A daily run on a handful of ids, deduped on reviewId, gives you a review stream without the app store.
Is scraping the App Store legal? This reads Apple's public endpoints. Reviews carry author names, which are personal data under GDPR and similar laws, so have a reason for holding them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the search term or the app ids, the storefront, and the run ID. If a diagnostic row landed, its errorCode usually names the reason already.