Apple App Store Scraper avatar

Apple App Store Scraper

Pricing

from $1.50 / 1,000 app details

Go to Apify Store
Apple App Store Scraper

Apple App Store Scraper

Scrape the Apple App Store: search apps by keyword, get full app details by ID or URL, pull up to 500 reviews per app per country, or grab the Top Free, Top Paid and Top Grossing charts by category. Any country. No API key.

Pricing

from $1.50 / 1,000 app details

Rating

0.0

(0)

Developer

mick_

mick_

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Apple App Store Scraper logo

Apple App Store Scraper

Scrape the Apple App Store in any country. Search apps by keyword, get full details for any app, pull up to 500 reviews per app per country, or read the Top Free, Top Paid and Top Grossing charts by category. No API key, no login.

At a glance
You give itSearch terms, app IDs or URLs, or a chart and genre, plus countries
You getOne row per app (price, ratings, version, developer) and optionally per review
Price$0.005 per run + $0.0029 per app + $0.00098 per review (Free plan, lower on paid plans)
Speed1 app and 20 reviews in about 8 seconds
NeedsNothing: no login, no API key, no proxy

What you get

  • Four modes in one actor: keyword search, app details by ID or URL, reviews only, and top charts.
  • Top charts by category: Top Free, Top Paid, Top Grossing, New Free, New Paid, for all apps or one of 25 categories, up to 200 ranks, with the rank on every row.
  • Reviews: up to 500 per app per country (Apple's limit). Add countries to get more; each country has its own reviews.
  • Review filters: only certain star ratings, only reviews after a date, most recent or most helpful.
  • 30+ app fields: rating and rating count (all time and current version), price, version and release notes, description, developer, seller, category, age rating, file size, languages, screenshots, icon.
  • Any country: us, gb, de, jp, br and every other App Store storefront. Prices come back in the local currency.
  • Cheap to run: it reads Apple's own public JSON endpoints. 1 app and 50 reviews used $0.0004 of platform usage in testing.

Use cases

  • App store optimization (ASO). See who ranks for your keywords and how their ratings and update cadence compare.
  • Competitor review mining. Pull every 1 and 2 star review for a rival app and find the features users are begging for.
  • Chart tracking. Snapshot Top Grossing Games daily and watch who climbs.
  • Market research and lead lists. Every app in a category with developer name and seller website.
  • Release monitoring. Catch a competitor's new version and its release notes the day it ships.
  • Sentiment and AI analysis. Clean review text with rating, version and date.

Example inputs

{ "mode": "search", "searchTerms": ["habit tracker", "budget app"], "countries": ["us"], "maxAppsPerQuery": 50 }

Top Grossing Games in the US and UK, with their 1-star reviews

{
"mode": "charts",
"chart": "top-grossing",
"genre": "games",
"countries": ["us", "gb"],
"maxAppsPerQuery": 25,
"includeReviews": true,
"reviewRatings": ["1"],
"maxReviewsPerApp": 100
}

New reviews since a date (for daily syncs)

{
"mode": "reviews",
"appIds": ["https://apps.apple.com/us/app/instagram/id389801252"],
"reviewsSince": "2026-09-20",
"maxReviewsPerApp": 500
}

App details for a list of apps

{ "mode": "apps", "appIds": ["389801252", "284882215", "310633997"], "countries": ["us", "de"] }

Output

Each row has a type: app or review. The Apps and Reviews tabs in the Output view split them. These are real rows from a test run on 2026-09-26 (long text shortened here).

App row

{
"type": "app",
"appId": "389801252",
"appName": "Instagram",
"bundleId": "com.burbn.instagram",
"country": "us",
"appUrl": "https://apps.apple.com/us/app/instagram/id389801252",
"developer": "Instagram, Inc.",
"developerId": "389801255",
"developerUrl": "https://apps.apple.com/us/developer/instagram-inc/id389801255",
"sellerName": "Instagram, Inc.",
"sellerUrl": "http://instagram.com/",
"price": 0,
"currency": "USD",
"formattedPrice": "Free",
"rating": 4.69,
"ratingCount": 29526007,
"ratingCurrentVersion": 4.69,
"ratingCountCurrentVersion": 29526007,
"primaryGenre": "Photo & Video",
"genres": [
"Photo & Video",
"Social Networking"
],
"contentRating": "12+",
"version": "448.0.0",
"currentVersionDate": "2026-09-21T15:59:55Z",
"releaseDate": "2010-10-06T08:12:41Z",
"releaseNotes": "Performance optimizations and stability improvements for a smoother, more reliable experience.",
"description": "Little moments lead to big friendships. Share yours on Instagram. ...",
"fileSizeBytes": 611172352,
"minimumOsVersion": "16.3",
"languages": [
"BN",
"HR",
"CS",
"DA",
"NL"
],
"features": [
"iosUniversal"
],
"supportedDevicesCount": 130,
"iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/f5/7f/2c/f57f2c00-2dff-4704-501b-ab6849c6277d/Prod-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.jpg",
"screenshotUrls": [
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/50/e2/8b/50e28b44-daa5-7101-6fb6-2d0e10fc72f3/1_iOS_5.5.jpg/392x696bb.jpg"
],
"ipadScreenshotUrls": [
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/76/04/4d/76044de8-e420-2e6b-cea4-60821fb85156/10.5__Following_tab.png/360x480bb.jpg"
],
"chartRank": null,
"chart": null,
"searchTerm": null
}

Review row

{
"type": "review",
"reviewId": "14591124902",
"appId": "389801252",
"appName": "Instagram",
"country": "us",
"rating": 1,
"title": "Incredible corporate greed",
"text": "Getting rid of the recent tags feature strictly affects new creators. IG is pay to play these days. Evil company.",
"appVersion": "448.0.0",
"date": "2026-09-25T03:18:11-07:00",
"author": "Kyle12234",
"authorUrl": "https://itunes.apple.com/us/reviews/id258173935",
"voteSum": 0,
"voteCount": 0
}

Pricing

Pay per event:

  • $0.005 per run start
  • $0.0029 per app
  • $0.00098 per review

Lower on higher Apify plans. Apify platform usage is billed separately to your account and is very small: 1 app with 50 reviews used $0.0004.

What you scrapeActor cost
50 apps from a searchabout $0.15
Top 100 chartabout $0.30
1 app + 500 reviewsabout $0.50

Set a Maximum cost per run in the run options and the actor stops cleanly when it reaches it.

Automate it with n8n

Each workflow uses n8n's official Apify node, operation Run actor and get dataset, actor labrat011/app-store-scraper. Paste the input into Input JSON; switch the field to Expression when it contains {{ }}.

1. Daily 1-star review alert for your app

Schedule Trigger (daily 08:00)
> Apify: Run actor and get dataset
> Slack: post each review to #app-feedback
{
"mode": "reviews",
"appIds": ["YOUR_APP_ID"],
"reviewRatings": ["1", "2"],
"reviewsSince": "{{ $now.minus({ days: 1 }).toISO() }}",
"maxReviewsPerApp": 500
}

Slack text: {{ $json.rating }} stars on v{{ $json.appVersion }}: {{ $json.title }} {{ $json.text }}

2. Daily Top Grossing snapshot to Google Sheets

Schedule Trigger (daily)
> Apify: Run actor and get dataset (mode charts, chart top-grossing, genre games, 100 apps)
> Set: add today's date
> Google Sheets: Append rows (date, chartRank, appName, developer, rating, ratingCount)

Chart a line per app over time and you can see launches, feature placements and slumps.

3. Competitor release watch

Schedule Trigger (daily)
> Apify: Run actor and get dataset (mode apps, your competitors' IDs)
> Compare Datasets / Code: keep apps whose version changed since yesterday (store the last version in a Sheet or Data Table)
> Email: "Competitor X shipped v1.2.3" with releaseNotes

4. Feature requests from competitor reviews, summarized by AI

Schedule Trigger (weekly)
> Apify: Run actor and get dataset (mode reviews, competitor app, ratings 1-3, last 7 days)
> Aggregate: all reviews into one list
> OpenAI / Anthropic: "List the top 10 missing features users mention, with counts and one quote each"
> Notion / Google Docs: save the report for the product team

5. Category lead list

Manual Trigger
> Apify: Run actor and get dataset (mode charts, chart top-free, genre business, 200 apps)
> Filter: sellerUrl is not empty
> Google Sheets / HubSpot: developer, sellerUrl, appName, ratingCount

For AI agents

  • Actor: labrat011/app-store-scraper
  • Smallest input: { "searchTerms": ["photo editor"] }
  • One row = one app (type: "app") or one review (type: "review"). Key fields: apps: appId, appName, developer, price, rating, ratingCount, version; reviews: reviewId, rating, title, text, date.
  • Billing: apify-actor-start once per run, app-detail per app row, review per review row. Cap spend with maxAppsPerQuery, maxReviewsPerApp or a maximum cost per run.
  • Run it: POST https://api.apify.com/v2/acts/labrat011~app-store-scraper/run-sync-get-dataset-items with the input as the JSON body, or call it from the Apify MCP server.
  • Done signal: the run's status message reads Saved N apps and M reviews in R requests.

FAQ

Why only 500 reviews per app? Apple's public review feed serves 10 pages of 50 per app per country. Run several countries to collect more, and schedule a daily run with reviewsSince to build a full history going forward.

Do I need a proxy? No. The actor uses Apple's public endpoints and backs off automatically if Apple slows it down.

Where do I find an app ID? It is the number after id in the App Store link: apps.apple.com/us/app/instagram/id389801252. You can also paste the whole link.

Support

Open an issue on the actor's Issues tab with the run ID and it will be looked at.