App Store Scraper (Apple)
Pricing
from $2.00 / 1,000 app scrapeds
App Store Scraper (Apple)
Scrape Apple App Store app details, customer reviews and search results across any storefront. 29 fields per app, per-country ratings, no proxy needed.
Pricing
from $2.00 / 1,000 app scrapeds
Rating
0.0
(0)
Developer
Muhammad Ahmed
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Scrape app details, customer reviews and search results from the Apple App Store — across any storefront, in one run.
Why this one
Most App Store Actors do reviews only, for one country. This one covers the whole surface:
- App details — 29 fields including rating, rating count, price, version, release notes, genres, minimum iOS, file size, screenshots and supported languages.
- Customer reviews — rating, title, body, author, app version, helpful votes and timestamp.
- Search — turn a keyword into apps, then scrape those apps in the same run.
- Any storefront, and it genuinely matters. Ratings differ per country: WhatsApp is ⭐4.685 in the US and ⭐4.704 in the UK. Pass several country codes and each is scraped separately.
- Three ways to name an app — App Store URL, numeric ID, or bundle ID (
com.burbn.instagram).
It uses Apple's own public endpoints, so there is no browser, no login and no proxy required.
Input
| Field | Type | Description |
|---|---|---|
apps | array | App Store URLs, numeric IDs, or bundle IDs |
searchTerms | array | Each term returns up to searchLimit apps, which are then scraped |
countries | array | Two-letter storefront codes (default ["us"]) |
scrapeAppDetails | boolean | Include app metadata (default true) |
scrapeReviews | boolean | Include customer reviews (default true) |
maxReviewsPerApp | integer | Per app per storefront (default 100) |
reviewSort | string | mostRecent or mostHelpful |
searchLimit | integer | Apps returned per search term (default 10) |
maxItems | integer | Stop after N dataset items (0 = no limit) |
concurrency / requestDelayMs | integer | Throughput controls |
proxyConfiguration | object | Optional — not needed for Apple |
Example
{"apps": ["https://apps.apple.com/us/app/whatsapp-messenger/id310633997", "com.burbn.instagram"],"searchTerms": ["habit tracker"],"countries": ["us", "gb"],"maxReviewsPerApp": 100}
Output
Two item types in one dataset. App records (type: "app"):
{"type": "app","appId": 310633997,"bundleId": "net.whatsapp.WhatsApp","country": "US","title": "WhatsApp Messenger","sellerName": "WhatsApp Inc.","formattedPrice": "Free","version": "26.31.74","averageRating": 4.68524,"ratingCount": 18417400,"primaryGenre": "Social Networking","minimumOsVersion": "15.1","fileSizeBytes": 391026688,"contentRating": "12+","screenshots": ["https://..."],"languages": ["EN", "AR", "..."]}
Reviews (type: "review"):
{"type": "review","appId": 310633997,"country": "US","reviewId": "14431062325","title": "Simple","text": "Reliable","rating": 5,"version": "26.31.74","author": "Lynwasty","voteCount": 0,"updatedAt": "2026-08-15T07:42:28-07:00"}
Apps that cannot be found produce an item with error rather than vanishing from the results.
Notes and limits
- Apple caps reviews at roughly 500 per app per storefront (50 per page, ~10 pages). Asking for more returns what exists rather than failing. To get more, scrape additional storefronts — their reviews are different.
- Reviews are per-storefront. US reviews and UK reviews are separate sets, as are their ratings.
- A bundle ID must contain a dot (
com.burbn.instagram); a bare word is treated as invalid rather than guessed at. - You are charged per review actually returned, never per review requested.
Local development
npm installnpm run buildnode dist/main.js # reads storage/key_value_stores/default/INPUT.json