App Store Scraper (Apple) avatar

App Store Scraper (Apple)

Pricing

Pay per event

Go to Apify Store
App Store Scraper (Apple)

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

Pay per event

Rating

0.0

(0)

Developer

Muhammad Ahmed

Muhammad Ahmed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

FieldTypeDescription
appsarrayApp Store URLs, numeric IDs, or bundle IDs
searchTermsarrayEach term returns up to searchLimit apps, which are then scraped
countriesarrayTwo-letter storefront codes (default ["us"])
scrapeAppDetailsbooleanInclude app metadata (default true)
scrapeReviewsbooleanInclude customer reviews (default true)
maxReviewsPerAppintegerPer app per storefront (default 100)
reviewSortstringmostRecent or mostHelpful
searchLimitintegerApps returned per search term (default 10)
maxItemsintegerStop after N dataset items (0 = no limit)
concurrency / requestDelayMsintegerThroughput controls
proxyConfigurationobjectOptional — 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 install
npm run build
node dist/main.js # reads storage/key_value_stores/default/INPUT.json