Apple App Store Scraper - Top Charts, Apps, Developers, Reviews
Pricing
from $1.00 / 1,000 apps
Apple App Store Scraper - Top Charts, Apps, Developers, Reviews
App Store charts (free/paid, by category, 169 countries), app details by ID/URL/bundle ID, developer portfolios, reviews. Input: app IDs, developer IDs or charts + countries. Returns per app: name, developer, rating, price, genre, version, URL. Default: 20 apps. $1/1k apps, $0.10/1k reviews.
Pricing
from $1.00 / 1,000 apps
Rating
0.0
(0)
Developer
Bence Kadi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Apple App Store Scraper: top charts, apps, developers and reviews
Export iOS app data from the Apple App Store to JSON, CSV or Excel: top free and top paid charts for every category in 169 countries, app details, developer portfolios, the 1-5 star ratings histogram and user reviews. One clean, flat row per app (or review), no browser, no login.
What is the Apple App Store Scraper?
It is a tool that collects public App Store data for you. You give it top charts (with categories), a list of apps (URLs, IDs or bundle IDs) or developers, and the countries you care about. It returns 45+ fields per app, with each country's own prices, ratings and chart positions, and optionally the reviews Apple shows on each app's page.
Who uses it and why:
- ASO and app marketing teams track their own and their competitors' chart positions, ratings and updates in every market, every day.
- Market researchers and investors see what is trending in a category or country, compare free and paid charts, and size a niche by rating counts.
- Product managers read the reviews of competing apps in several countries, with the 1-5 star breakdown, to find feature gaps and complaints.
- Competitive intelligence analysts export a competitor's whole portfolio (developer mode) with versions, release notes and prices.
- Agencies and B2B sales teams build lead lists of app developers, with their seller websites, from a category chart.
- Data teams and AI agents feed fresh App Store metadata into dashboards, databases or LLM pipelines.
Data fields
The dataset has two row types: type: "app" and type: "review". Examples are from real runs.
App rows
| Field | Description | Example |
|---|---|---|
type | Row type | app |
appId | Numeric App Store ID | 6760173601 |
name | App name | Muse from Meta |
bundleId | iOS bundle ID | com.facebook.hatch |
developer | Developer (artist) name | Meta Platforms, Inc. |
developerId | Developer ID | 284882218 |
developerUrl | Developer page | https://apps.apple.com/us/developer/meta-platforms-inc/id284882218 |
sellerName | Legal seller name | Meta Platforms, Inc. |
sellerUrl | Seller website (when published) | https://muse.ai |
price | Price in the country's currency | 0.0 |
formattedPrice | Price as shown in the store | Free |
currency | Currency code | USD |
isFree | true if the price is 0 | true |
rating | Average rating, all versions | 4.86 |
ratingCount | Number of ratings, all versions | 150233 |
ratingCurrentVersion | Average rating, current version | 4.86 |
ratingCountCurrentVersion | Number of ratings, current version | 150233 |
ratingHistogram | 1-5 star breakdown (when reviews are on) | {"5": 138415, "4": 7199, ...} |
genres | All genres | ["Productivity", "Lifestyle"] |
primaryGenre | Main genre | Productivity |
primaryGenreId | Main genre ID | 6007 |
releaseDate | First release date | 2026-09-08T07:00:00Z |
currentVersionReleaseDate | Date of the latest update | 2026-10-01T06:49:33Z |
version | Current version | 9.1 |
releaseNotes | "What's new" text | Muse now works with more of your favorite apps, ... |
sizeBytes | App size in bytes | 137283584 |
sizeMb | App size in MB | 130.9 |
contentRating | Age rating | 17+ |
advisories | Content advisories | ["Unrestricted Web Access"] |
minimumOsVersion | Minimum iOS version | 18.0 |
languages | Supported languages | ["EN", "FR", "DE"] |
platforms | Supported devices | ["iPhone", "iPad", "iPod touch"] |
isGameCenterEnabled | Game Center support | false |
description | Full store description | Muse is your personal AI agent that gets things done, ... |
url | App Store page | https://apps.apple.com/us/app/muse-from-meta/id6760173601 |
iconUrl | Icon image URL (512 px) | https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg |
screenshots | iPhone screenshot URLs | ["https://is1-ssl.mzstatic.com/..."] |
ipadScreenshots | iPad screenshot URLs | [] |
country | Storefront the row comes from | us |
source | Where the row came from: lookup, developer or chart | chart |
chartType | Chart (chart rows only) | top-free |
chartCategory | Chart category | All apps |
chartPlatform | iPhone or iPad chart | iphone |
chartPosition | Position in the chart | 1 |
scrapedAt | When the row was saved (UTC) | 2026-10-05T00:36:33Z |
Review rows
| Field | Description | Example |
|---|---|---|
type | Row type | review |
reviewId | Stable review ID (use it to de-duplicate) | 10272565482 |
appId | App the review belongs to | 337472899 |
appName | App name | Insight Timer: Meditate, Sleep |
country | Storefront | us |
rating | Stars, 1-5 | 5 |
title | Review title | Pure Source of Good Will and some |
text | Review text (e-mails and phone numbers masked) | I became aware of the existence of this app ... |
date | Review date | 2023-08-18T14:27:09.000Z |
isNew | Only in monitoring mode: true for reviews not seen before | true |
scrapedAt | When the row was saved (UTC) | 2026-10-05T00:36:26Z |
Reviewer names are never saved.
Use cases: Research markets & competitors (research app stores & software markets, collect & analyze customer reviews, track competitors, track trends).
How to use the App Store scraper
- Open the Actor and click Try for free (you need a free Apify account).
- Choose what to scrape: Top charts (with categories), Apps (URLs, IDs or bundle IDs), Developers, or any mix.
- Pick the Countries. Every app, developer and chart is scraped in each selected country.
- Set the chart depth and Max apps in total.
- Optionally switch on Include reviews and rating histogram.
- Click Start. The prefilled example (top 10 free apps in the US plus Spotify, 3 reviews each) finishes in under a minute.
- Open the Output tab and download CSV, Excel or JSON, or send the data to Google Sheets. For daily rank tracking, add a Schedule.
Input guide
Apps (IDs, URLs or bundle IDs). Specific apps to get details for. All of these work:
- Good:
https://apps.apple.com/us/app/notes/id1110145109,1110145109,id1110145109,com.spotify.client. - Bad: an app name such as
Spotify, or a developer page URL. Names are not searched (see the FAQ on keyword search), and developer pages belong under Developers. The run stops with a clear message if an entry cannot be read. - Tip: the country part of a URL (
/us/) is ignored. The Countries field decides which storefronts are scraped.
Developers (all their apps). Developer page URLs (https://apps.apple.com/us/developer/google/id281956209) or developer IDs (281956209). Returns every app of the developer, up to 200 per developer and country.
Top charts. Top free and/or Top paid. Each app row gets its chartPosition. Top grossing is not available (see the FAQ).
Chart categories. Leave empty for the overall chart (All apps), or pick categories such as Games, Finance, Health & Fitness or a game genre like Puzzle. Each category is a separate chart, so 2 charts x 3 categories x 2 countries = 12 charts.
Chart depth (positions). 1 to 200 positions per chart. The cost grows with this number: 200 positions = 200 app rows per chart.
Device. iPhone or iPad charts. App details are the same on both.
Countries (App Store storefronts). Any of Apple's 169 storefronts. Prices, ratings, chart positions and reviews are different in each country.
- Good:
us,gb,de.ukis accepted and treated asgb. - Warning: the number of rows multiplies with the number of countries. 10 apps in 20 countries = 200 app rows.
Max apps in total. Stop after this many app rows. 0 = no limit. Reviews are limited separately.
Include reviews and rating histogram. Saves the reviews Apple shows on each app's public page as separate rows, and adds ratingHistogram to the app row. Reviews make the run slower, because each 10 reviews need one page request.
Reviews per app and country. 1 to 20. Apple's public page shows up to two sets of 10, and for many apps both sets are the same, so expect about 10 per app and country. For more reviews, select more countries.
Only new reviews (monitoring mode). The Actor remembers which reviews it returned and outputs only new ones on the next run with the same input. It needs Include reviews to be on. App rows are still saved (and charged) on every run, so keep the app list short for review monitoring. Use a different Monitor name for each schedule that should keep its own list.
Proxy. Off by default and usually not needed. If Apple rate-limits the shared IP (HTTP 403 retries in the log), turn on Apify Proxy.
Input example: daily top 100 free and paid games in three countries
{"charts": ["top-free", "top-paid"],"chartCategories": ["6014"],"maxChartPositions": 100,"countries": ["us", "gb", "de"]}
Input example: watch new reviews of two competitors
{"appIds": ["com.spotify.client", "324684580"],"countries": ["us", "gb"],"includeReviews": true,"maxReviewsPerApp": 20,"onlyNewReviews": true,"monitorName": "competitor-reviews"}
Output
This is a real app row from a run on 2026-10-05 (long fields shortened):
{"type": "app","appId": "6760173601","name": "Muse from Meta","bundleId": "com.facebook.hatch","developer": "Meta Platforms, Inc.","developerId": "284882218","developerUrl": "https://apps.apple.com/us/developer/meta-platforms-inc/id284882218","sellerName": "Meta Platforms, Inc.","sellerUrl": "https://muse.ai","price": 0.0,"formattedPrice": "Free","currency": "USD","isFree": true,"rating": 4.86,"ratingCount": 150233,"ratingCurrentVersion": 4.86,"ratingCountCurrentVersion": 150233,"ratingHistogram": { "5": 138415, "4": 7199, "3": 2154, "2": 537, "1": 1928 },"genres": ["Productivity", "Lifestyle"],"primaryGenre": "Productivity","primaryGenreId": "6007","releaseDate": "2026-09-08T07:00:00Z","currentVersionReleaseDate": "2026-10-01T06:49:33Z","version": "9.1","releaseNotes": "Muse now works with more of your favorite apps, ...","sizeBytes": 137283584,"sizeMb": 130.9,"contentRating": "17+","advisories": ["Unrestricted Web Access", "Infrequent/Mild Profanity or Crude Humor"],"minimumOsVersion": "18.0","languages": ["AR", "BN", "BG", "HR", "CS", "DA", "NL", "EN", "FR", "DE", "..."],"platforms": ["iPhone", "iPad", "iPod touch"],"isGameCenterEnabled": false,"description": "Muse is your personal AI agent that gets things done, ...","url": "https://apps.apple.com/us/app/muse-from-meta/id6760173601","iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/14/f4/82/.../512x512bb.jpg","screenshots": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/19/56/c3/.../392x696bb.jpg"],"ipadScreenshots": [],"country": "us","source": "chart","chartType": "top-free","chartCategory": "All apps","chartPlatform": "iphone","chartPosition": 1,"scrapedAt": "2026-10-05T00:36:33Z"}
A real review row (the reviewer's name is never included):
{"type": "review","reviewId": "10272565482","appId": "337472899","appName": "Insight Timer: Meditate, Sleep","country": "us","rating": 5,"title": "Pure Source of Good Will and some","text": "I became aware of the existence of this app during a professional training on Mindfulness. ...","date": "2023-08-18T14:27:09.000Z","scrapedAt": "2026-10-05T00:36:26Z"}
source tells you where an app row came from: lookup (your app list), developer or chart. The same app can appear in several rows, for example once per country, or in a chart and in a developer's portfolio.
Field fill rates from a live run of 806 apps (top 100 free and paid in US, UK and Germany, plus one developer): 100% for appId, name, bundle ID, developer, price, currency, rating, rating count, genres, dates, version, size, age rating, minimum iOS, description, URL, icon and screenshots. Release notes 99%, languages 99%, seller website 83%, iPad screenshots 76%, content advisories 32% (most apps have none). ratingHistogram is filled for every app when reviews are on.
Dataset views. The Output tab has four tables:
- Apps: icon, name, developer, country, source, chart position, rating, rating count, price, genre, version, last update, link.
- Top charts: country, chart, category, position, app, developer, rating and price. Best for rank tracking.
- Reviews: app, country, stars, title, text, date, review ID.
- All app fields: IDs, seller, ratings histogram, genres, dates, size, age rating, languages, devices, description.
Every run also saves a Run summary (RUN_SUMMARY in the key-value store): apps and reviews saved, requests, rate-limit retries, apps or developers not found in a country (notFound) and any errors.
Export. Download any view as JSON, CSV, Excel, XML, HTML or RSS from the Output tab or the API, or append it to Google Sheets with the Google Sheets integration.
Pricing
This Actor uses pay per event: $1.00 per 1,000 app rows ($0.001 per app) and $0.10 per 1,000 review rows ($0.0001 per review). Apify also charges a start fee of $0.00005 per run. Platform compute is included in the price.
| Typical run | Rows | Cost |
|---|---|---|
| Prefilled test: top 10 free in the US plus Spotify, 3 reviews each | 11 apps + about 33 reviews | about $0.015 |
| Top 100 free apps, 1 country | 100 apps | about $0.10 |
| 50 apps x 20 reviews x 5 countries | 250 apps + 5,000 reviews | about $0.75 |
| Top 100 free + paid in 3 countries, daily for 30 days | 18,000 apps | about $18 |
What is free:
- In monitoring mode, reviews that were already returned in earlier runs are skipped and not charged.
- Apps that do not exist in a country are listed in the run summary and not charged.
- Apify's free plan gives you monthly platform credit (see apify.com/pricing), which covers thousands of app rows each month.
You can cap spending with Max apps in total or with Max charge per run in the run options. When the cap is reached, the Actor stops cleanly and keeps what it already saved.
Use it via API
Replace MY_APIFY_TOKEN with your token from Apify Console > Settings > API & Integrations.
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('kadi_bence/app-store-scraper').call({charts: ['top-free', 'top-paid'],chartCategories: ['6015'],maxChartPositions: 50,countries: ['us', 'gb'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((i) => `${i.country} #${i.chartPosition} ${i.name}`));
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("MY_APIFY_TOKEN")run = client.actor("kadi_bence/app-store-scraper").call(run_input={"appIds": ["com.spotify.client"],"countries": ["us", "de", "fr"],"includeReviews": True,"maxReviewsPerApp": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["type"] == "review" and item["rating"] <= 2:print(item["country"], item["rating"], item["title"])
cURL (runs the Actor and returns the items in one call):
curl -X POST "https://api.apify.com/v2/acts/kadi_bence~app-store-scraper/run-sync-get-dataset-items?token=MY_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"developerIds": ["281956209"], "countries": ["us"]}'
Apify CLI:
$apify call kadi_bence/app-store-scraper --input '{"charts": ["top-paid"], "maxChartPositions": 25, "countries": ["jp"]}' --output-dataset
MCP (AI agents such as Claude, Cursor or VS Code). Add this to your MCP client config. The client will ask you to sign in to Apify (or send your token as an Authorization: Bearer header):
{"mcpServers":{"apify":{"url":"https://mcp.apify.com/?actors=kadi_bence/app-store-scraper"}}}
Then ask your agent things like "What are the top 20 paid finance apps in Germany, and what do they cost?"
Integrations and scheduling
- Schedules. In Apify Console go to Schedules > Create new, pick this Actor (or a saved task) and set a cron time, for example every day at 06:00.
- Webhooks. Call your own URL when a run succeeds or fails, and fetch the items from the dataset.
- Zapier, Make and n8n. Use the Apify app or node: "Run Actor" as an action, or "Actor run finished" as a trigger, then send rows to Slack, Notion, Airtable or your database.
- Google Sheets. Use the Google Sheets integration on the Actor's Integrations tab to append each run's results to a sheet.
Recipe: daily chart snapshot. Charts = Top free and Top paid, your categories and countries, depth 100. Save as a task, schedule it daily, and append the Top charts view to Google Sheets. After a week you have a rank history per app and country.
Recipe: new negative reviews of competitors every morning. Add the competitors' apps, your key countries, Include reviews on, Reviews per app 20, Only new reviews on. Schedule it daily and use Make, Zapier or n8n to post reviews with rating 1 or 2 to Slack.
Related actors by the same developer
- Website Tech Stack Detector: find out what the app developers' websites (
sellerUrl) are built with. - Bulk WHOIS & RDAP Domain Lookup: domain age, registrar and e-mail provider for the same seller websites.
- Website Screenshot & PDF API: full-page screenshots of app landing pages, for competitor tracking.
FAQ
How does it work, and where does the data come from? Only public data from Apple's own public sources: the iTunes Lookup API for app and developer details, Apple's Marketing Tools RSS feed for the overall top charts, and the public chart and review pages on apps.apple.com. The Actor checks every request against Apple's robots.txt, with no exceptions. It never logs in, never uses private app APIs and never bypasses protections. App names, descriptions, icons and screenshots belong to their owners: the Actor returns image URLs, not the files.
Can I search the App Store by keyword?
No, and that is intentional. Apple's robots.txt disallows search on both itunes.apple.com (/search) and apps.apple.com (/search?), and this Actor respects robots.txt literally. Use top charts by category, developer portfolios or a list of app IDs instead.
Why are reviews limited to 20 per app and country? The Actor reads only the reviews Apple shows on the public App Store page: up to two sets of 10 per app and country, often the same set twice. Deeper review history would need feeds that Apple's robots.txt disallows, or private APIs. Each storefront has its own reviews, so select more countries for more reviews.
Is "Top grossing" supported? No. Apple no longer publishes a public top-grossing chart on the App Store website or in its current RSS feeds.
How fast is it? Charts and lookups are fast: 806 apps from 6 charts and one developer in 3 countries took 42 seconds, because one lookup request returns up to 200 apps. Lookups are paced at about 20 per minute, Apple's documented limit. Reviews need one page per 10 reviews, paced at 2 pages per second: 20 apps with 200 reviews took 21 seconds. A big job (top 200 paid iPad games in 3 countries with reviews: 601 apps and 5,849 reviews) took 11 minutes.
How fresh is the data? Everything is read live at run time, so you get what Apple shows at that moment. Charts change during the day, so schedule rank tracking at the same time each day.
Why are my results different from the App Store app?
Charts, prices and ratings depend on the country and device. The App Store app on your phone shows your own storefront and device, and charts move during the day. Also, for about 1-3% of chart positions (app bundles and some Apple Arcade titles) Apple's lookup returns no details, so the Actor skips that row and keeps the real positions of the others. You will see a gap in chartPosition. Apps that are not available in a country are listed under notFound in RUN_SUMMARY.
Is it legal? What about personal data?
The Actor collects only public data and respects Apple's robots.txt. Reviewer nicknames are personal data and are never saved; each review has a stable reviewId instead. E-mail addresses and phone numbers inside review texts are masked. You are responsible for how you use the data, for example under GDPR and Apple's terms.
Can I use it from Python or another program? Yes. See Use it via API above for JavaScript, Python, cURL, the Apify CLI and MCP for AI agents.
Can I connect it to Google Sheets, Slack or my database? Yes, through the Google Sheets integration, webhooks, or the Apify apps for Zapier, Make and n8n. See Integrations and scheduling.
How does "Only new reviews" work?
The Actor stores the IDs of returned reviews in a named key-value store in your account. The next run with the same input and monitor name outputs only reviews that are not in that list, marked isNew: true, and you pay only for those. App rows are not de-duplicated: they are saved on every run. Change the monitor name to start a fresh list.
What if a run fails or something looks wrong?
Invalid input (for example an unknown country code or an app name instead of an ID) stops the run at once with a clear message. If Apple rate-limits the requests, the Actor backs off and retries; if nothing could be saved, the run fails with the reason. Check RUN_SUMMARY first, then open an issue on the Issues tab with the run link. Fixes usually land within 24 to 48 hours.
What changed recently? See the changelog below.
Need a custom version?
I build custom scrapers, scheduled data feeds and integrations (CSV, Excel, Google Sheets, API, MCP for AI agents). Tell me the sites and fields you need:
- Email: bence.kadi@gmail.com
- Apify profile: https://apify.com/kadi_bence
Related Actors
More low-cost Actors by the same developer, built on official APIs and public data:
- Website Tech Stack Detector — CMS, ecommerce, analytics and frameworks of any website
- Bulk Image Downloader — download all images from URLs as a ZIP
- Website Screenshot & PDF API — full-page screenshots and PDFs of any URL
- SEO Site Audit — 0-100 SEO score per page, broken links and fix hints
- AI Visibility Tracker — how ChatGPT, Perplexity, Gemini and Claude mention your brand
- Bulk WHOIS & RDAP Domain Lookup — registrar, dates and DNS for many domains
- PageSpeed Insights Bulk Checker — Core Web Vitals and Lighthouse scores in bulk
All my Actors: apify.com/kadi_bence
Changelog
- 2026-10-05: Review price lowered from $0.20 to $0.10 per 1,000 reviews. Keyword search of apps is still not offered: itunes.apple.com robots.txt disallows
/search*(the iTunes Search API included). - 1.0 (2026-10-05): First release. App lookup (IDs, URLs, bundle IDs), developer portfolios, top free/paid charts by category up to 200 for iPhone and iPad in 169 countries, ratings histogram, reviews without reviewer names, monitoring mode for new reviews.