Apple App Store: Reviews, Apps, Charts & IAPs Scraper avatar

Apple App Store: Reviews, Apps, Charts & IAPs Scraper

Pricing

$2.00 / 1,000 results

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

Apple App Store: Reviews, Apps, Charts & IAPs Scraper

Apple App Store data in 10 modes: app reviews (thousands per app per country), app details with ratings histogram, top charts, In-App Purchases, App Store events, similar apps, country availability matrix, developer portfolio, in-Store editorial, and search. 50+ countries. $2 per 1,000 rows, flat.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Sourabh Kumar

Sourabh Kumar

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

6

Monthly active users

2 hours ago

Last modified

Share

Apple App Store scraper — apps, reviews, charts & in-app purchases

One actor for the whole App Store: app details, deep review pulls, top charts, in-app purchases, App Store events, and more — across 50+ countries.

$2 per 1,000 results. Flat for every mode. No per-run fee.

The headline: reviews go far past the 500-row RSS cap. Every other App Store scraper hits Apple's public RSS feed and stops at 500 reviews per app. This one paginates Apple's catalog directly and routinely returns thousands of reviews per app per country before Apple's CDN soft-throttles. Multi-country fan-out keeps going where one country slows down.

Why use Apple App Store Scraper

  • 📦 Reviews go past the 500-cap that locks every other scraper. Routinely pull a few thousand reviews per app per country for sentiment analysis or backfilling history.
  • 💸 In-app purchase catalog with prices. Subscription tiers, free trials, and renewal cadence — in local currency for every country.
  • 📅 App Store events. Calendared in-app events from Pokémon GO, Genshin, Roblox, and most major games — with start/end dates and deep links.
  • 🔒 Privacy Nutrition Labels. The full "Data Used to Track You / Linked to You / Not Linked to You" breakdown, opt-in.
  • 🕐 Version history. Up to 25 past releases with full release notes — most "version history" scrapers only return the current one.
  • 5-star breakdown on every app. Know whether a 4.5 average is "lots of 5s with a few 1s" or "barely-3s averaged up by old 5s."
  • 🌍 50+ storefronts. Probe app availability across countries, find apps removed from CN/RU stores, or compare ratings between markets.
  • 🔁 Built-in fallback. If Apple's catalog hiccups, the actor automatically retries via the iTunes API.
  • 🚫 No empty-input footgun. Send {} and you get a clean error — not surprise charges from a default search.

What data can you extract?

📱 App name + bundle ID👤 Developer💰 Price + currency📊 5-star breakdown
⭐ Rating + review count🏆 Live chart position📝 Full review text💬 Developer responses
💸 IAP catalog + free trials📅 App Store events🔗 Similar apps🌍 Country availability
🔒 Privacy labels🕐 Version history📦 File size by device📰 Editorial features

How it compares

Apple's free APIOther store scrapersApple App Store Scraper
Reviews per app500 hard cap500 hard capPast the 500-cap, into the thousands
5-star breakdown✅ on every app
Live chart position per app
In-app purchase catalog
App Store events
Privacy labels
Version history (25 deep)Current release only
Per-run start feen/a$0.005–$0.01None
Per 1,000 rowsFree, rate-limited$2–$3, often multi-event$2 flat, single event
CoverageSearch + lookup onlyOften split across 3–6 actors10 modes in one actor

Scraping modes

🔍 search — find apps by keyword

{
"mode": "search",
"countries": ["us", "gb", "de"],
"searchConfig": {
"searchTerms": ["fitness tracker", "language learning"],
"maxResultsPerSearch": 50
}
}

Up to 200 results per query. Fans out across countries × terms automatically.

📱 app-details — full record for one or more apps

{
"mode": "app-details",
"countries": ["us"],
"appDetailsConfig": {
"appIds": ["570060128", "https://apps.apple.com/us/app/whatsapp-messenger/id310633997"],
"includePrivacyLabels": true,
"includeVersionHistory": true,
"includeFileSizeByDevice": true
}
}

appIds accepts numeric IDs or full App Store URLs. The 5-star breakdown is on by default. Privacy labels, version history, and file size are opt-in toggles — they enrich the row at no extra charge.

⭐ reviews — past the 500-cap

{
"mode": "reviews",
"countries": ["us", "gb"],
"reviewsConfig": {
"appIds": ["570060128"],
"maxReviewsPerApp": 5000,
"sortBy": "mostRecent",
"sinceDate": null
}
}

The headline mode. sinceDate (ISO 8601) early-stops when older reviews appear — perfect for incremental scrapes.

🏆 charts — top free / paid / grossing / new

{
"mode": "charts",
"countries": ["us", "gb", "jp"],
"chartsConfig": {
"chartTypes": ["topfreeapplications", "toppaidapplications", "topgrossingapplications", "newapplications"],
"genreIds": [null, 6014, 6017],
"limit": 100
}
}

null = overall chart. Otherwise pass genre IDs (Games 6014, Education 6017, Health & Fitness 6013, Finance 6015, Social Networking 6005, etc.).

💸 iap-catalogue — in-app purchases

{
"mode": "iap-catalogue",
"countries": ["us", "gb", "in"],
"iapCatalogueConfig": { "appIds": ["570060128"] }
}

Returns up to 10 IAPs per app per country with subscription tiers, prices in local currency, free trials, and intro pricing.

📅 app-events — calendared App Store events

{
"mode": "app-events",
"countries": ["us"],
"appEventsConfig": { "appIds": ["1094591345"] }
}

Returns the live-ops events shown on an app's App Store page. Pokémon GO, Genshin Impact, and Roblox keep this populated; non-gaming apps usually have none.

🔗 similar-apps — apps customers also bought

{
"mode": "similar-apps",
"countries": ["us"],
"similarAppsConfig": { "appIds": ["570060128"], "maxSimilarPerApp": 40 }
}

Returns related app IDs and their rank. Re-feed into app-details for full data.

🌍 availability-matrix — probe N apps × M countries

{
"mode": "availability-matrix",
"countries": ["us", "gb", "in", "de", "jp", "cn", "ru"],
"availabilityMatrixConfig": { "appIds": ["570060128"] }
}

For each app × country pair, returns one row with available: true/false. Useful for tracking app removals (CN/RU) or market-entry gaps.

👨‍💻 developer-portfolio — full catalog by developer

{
"mode": "developer-portfolio",
"countries": ["us"],
"developerPortfolioConfig": { "developerIds": ["570060151"] }
}

Pass the numeric developer ID (visible in /developer/<slug>/id<NNNNNNNNN> URLs) and get the developer's full app catalog.

📰 editorial — fetch a story or collection

{
"mode": "editorial",
"countries": ["us"],
"editorialConfig": { "editorialIds": ["1748181882"], "editorialKind": "story" }
}

editorialKind is story (single article) or collection (curated list). IDs come from the "Featured In" links on app pages.

How to scrape the App Store: step by step

  1. Create a free Apify account. 30 seconds, no card.
  2. Open Apple App Store Scraper in the Console.
  3. Pick a mode and paste the matching input.
  4. Click Start. Most runs finish in seconds; large review pulls (1,500+ rows) take 1–2 minutes.
  5. Export as JSON, CSV, or Excel — or fetch via the Apify API.

How much does Apple App Store Scraper cost?

  • Per 1,000 results: $2.00
  • Free-plan yield: about 2,500 results
  • Starter-plan yield: about 14,500 results per month

Same flat price for every mode — reviews, app details, IAPs, charts, events, everything. No per-run fee. Failed runs cost nothing.

Input

{
"mode": "reviews",
"countries": ["us"],
"reviewsConfig": {
"appIds": ["570060128"],
"maxReviewsPerApp": 1500,
"sortBy": "mostRecent",
"sinceDate": null
}
}
FieldTypeDefaultNotes
modeenumrequiredsearch, app-details, reviews, charts, iap-catalogue, app-events, similar-apps, availability-matrix, developer-portfolio, editorial
countriesstring[]["us"]Two-letter codes, lowercase. 50+ supported
searchConfig.searchTermsstring[]Required for search
searchConfig.maxResultsPerSearchint501–200
appDetailsConfig.appIdsstring[]Required for app-details. IDs or URLs
appDetailsConfig.includePrivacyLabelsboolfalseAdds Privacy Nutrition Labels
appDetailsConfig.includeVersionHistoryboolfalseAdds 25 past releases
appDetailsConfig.includeFileSizeByDeviceboolfalseAdds per-device file size
reviewsConfig.appIdsstring[]Required for reviews
reviewsConfig.maxReviewsPerAppint5001–100,000
reviewsConfig.sortByenummostRecentmostRecent or mostHelpful
reviewsConfig.sinceDatestringnullISO 8601. Stops when older reviews appear
chartsConfig.chartTypesstring[]["topfreeapplications"]One or more chart types
chartsConfig.genreIds(int|null)[][null]null = overall
chartsConfig.limitint1001–200
iapCatalogueConfig.appIdsstring[]Required for iap-catalogue
appEventsConfig.appIdsstring[]Required for app-events
similarAppsConfig.appIdsstring[]Required for similar-apps
similarAppsConfig.maxSimilarPerAppint401–1,000
availabilityMatrixConfig.appIdsstring[]Required. countries.length >= 2
developerPortfolioConfig.developerIdsstring[]Required for developer-portfolio
editorialConfig.editorialIdsstring[]Required for editorial
editorialConfig.editorialKindenumstorystory or collection

Output

App detail

{
"_recordType": "app-detail",
"appId": "570060128",
"name": "Duolingo: Language Lessons",
"artistName": "Duolingo",
"primaryGenreName": "Education",
"averageUserRating": 4.7,
"userRatingCount": 5143921,
"ratingsHistogram": {
"one": 126797, "two": 42424, "three": 124546, "four": 518215, "five": 4331939
},
"contentAdvisoryRating": "4+",
"chartPosition": { "chart": "top-free", "genreName": "Education", "position": 2 },
"appUrl": "https://apps.apple.com/us/app/duolingo-language-lessons/id570060128",
"country": "us",
"scrapedAt": "2026-05-07T18:14:22.103Z"
}

With opt-in toggles, the same row gets versionHistory (array of 25 releases), fileSizeByDevice (object: device → bytes), and privacyDetails (categorized data uses).

Review

{
"_recordType": "review",
"reviewId": "11301765602",
"appId": "570060128",
"rating": 5,
"title": "Great app!",
"review": "I wanted to download Duolingo because I am going to fly to Paris France soon …",
"userName": "yhgchggchht",
"date": "2024-05-24T13:18:58Z",
"isEdited": false,
"developerResponse": null,
"country": "us",
"scrapedAt": "2026-05-07T18:18:45.221Z"
}

Chart ranking

{
"_recordType": "chart-ranking",
"appId": "6448311069",
"rank": 1,
"chartType": "topfreeapplications",
"genreId": null,
"name": "ChatGPT",
"artistName": "OpenAI OpCo, LLC",
"country": "us",
"scrapedAt": "2026-05-07T18:21:09.880Z"
}

In-app purchase

{
"_recordType": "iap-item",
"iapId": "1365793322",
"appId": "570060128",
"name": "Super Duolingo",
"isSubscription": true,
"subscriptionFamilyName": "Super Duolingo",
"offers": [
{
"type": "buy",
"currencyCode": "USD",
"price": 9.99,
"priceFormatted": "$9.99",
"discounts": [
{
"modeType": "FreeTrial",
"numOfPeriods": 1,
"recurringSubscriptionPeriod": "P7D",
"type": "IntroOffer"
}
]
}
],
"country": "us",
"scrapedAt": "2026-05-07T18:24:11.512Z"
}

App Store event

{
"_recordType": "app-event",
"eventId": "6762316582",
"appId": "1094591345",
"name": "Spring Marathon",
"subtitle": "Flittle and Espathra make their debuts!",
"eventKind": "specialEvent",
"startDate": "2026-05-12T17:00:00Z",
"endDate": "2026-05-19T03:00:00Z",
"deepLink": "https://pokemon-go.onelink.me/nBRb/jm7xy3xh",
"country": "us",
"scrapedAt": "2026-05-07T18:25:43.118Z"
}

Other modes (similar-app, availability-probe, developer-portfolio-app, app-search-hit, editorial-item) follow the same flat shape — see _recordType to filter.

Use cases

  • 📊 App Store Optimization (ASO) — Pull the 5-star breakdown to see whether a 4.5-star rating is healthy or front-loaded with old reviews.
  • 🔍 Competitor reputation watch — Schedule weekly review pulls, diff the new ones, route negatives into Slack.
  • 💰 Subscription benchmarking — Compare IAP prices, free trials, and tiers across competitors and countries.
  • 🌍 Market entry research — Search and chart data across storefronts to find apps with US traction missing localization elsewhere.
  • 🛡️ Brand & IP monitoring — Surface clones and look-alikes before the official "Report a Concern" cycle catches them.
  • 📅 Live-ops tracking — Watch competitor in-app events for gaming roadmap intel.
  • 📚 Research & journalism — Track app removals from CN/RU stores for digital-rights and platform-governance reporting.

Limitations

  • Reviews are soft-throttled by Apple's CDN at depth. Per-run volume per app per country is stochastic — typically a few hundred to a few thousand rows before Apple's catalog slows pagination. Apify's residential proxies (built in) help, and multi-country fan-out keeps going where one country stalls. There's no fixed ceiling; different runs return different numbers.
  • App events return zero rows for apps without active events. That's normal — most non-gaming apps don't use this surface.
  • In-app purchases cap at 10 per app per country (Apple's limit, sorted by tier rank).
  • mostHelpful review sort isn't honored — Apple's catalog returns most-recent regardless. The actor warns once and continues.
  • Charts are a snapshot, not a trend — Apple has no historical chart endpoint. Schedule daily runs to build your own.
  • Editorial discovery isn't included. You supply the story or collection ID (from "Featured In" links); the actor doesn't crawl for them.

FAQ

How much does Apple App Store Scraper cost?

You pay $2.00 per 1,000 results for any mode — reviews, app details, IAPs, charts, events, all the same. The Apify Free plan includes $5/month in credits, about 2,500 results. The $29/month Starter plan covers around 14,500 results.

No subscription lock-in. Pause whenever.

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible App Store pages, but how you use the output is on you. Review text and reviewer usernames are user-generated; treat them accordingly.

Apify's full breakdown: Is web scraping legal?.

Can I integrate Apple App Store Scraper with other tools?

Push results into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.

Full list: Apify integrations.

Can I use Apple App Store Scraper with the Apify API?

Yes. Every run is available via the Apify REST API:

curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~apple-app-store-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"reviews","countries":["us"],"reviewsConfig":{"appIds":["570060128"],"maxReviewsPerApp":1000}}'

Docs: Apify API reference.

Can I use Apple App Store Scraper through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call this scraper. Setup: Apify MCP docs.

Your feedback

Bug, missing field, or odd behavior? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.