App Store Scraper · Apps, Reviews, Search & Developer Emails
Pricing
from $1.00 / 1,000 result rows
App Store Scraper · Apps, Reviews, Search & Developer Emails
Scrape the Apple App Store — app details, reviews, ranked search (ASO), similar apps and developer portfolios — across multiple countries in one run. Optional ratings histogram and developer contact-email enrichment. Prices, ratings and ranking per storefront. JSON, CSV, Excel.
Pricing
from $1.00 / 1,000 result rows
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
18
Total users
17
Monthly active users
a day ago
Last modified
Categories
Share
App Store Scraper — App Details, Reviews, Search, Similar & Developer Apps
Turn any Apple App Store app, search term, or developer into a clean, structured dataset. Pull full app info, reviews, ranked search results, similar apps, or a developer's whole portfolio — and run every input across multiple countries in a single run.

Get full app info including score, ratings histogram (1–5★ breakdown), price, content rating, version, release notes, and a screenshot gallery — plus optional similar apps, ASO search rank, and the developer website + contact email for lead generation. Pure HTTP, no browser.
🧠 NEW: Review Intelligence — reviews → product intel
Don't just pull reviews — find out what to fix and build next. Two opt-in tiers on the reviews action, billed per app:
- 📊 Review insights (free of AI, instant) — one summary row per app: rating breakdown, sentiment split, the recurring complaint themes (crashes, pricing, ads, login…), top negative terms, and the feature requests users keep asking for.
- 🤖 AI pain-point analysis (premium, Claude) — a deeper teardown: severity-ranked themes with how often they recur, missing features, quick wins, and a written summary.
An app, 300 reviews → Frequent crashes on launch (severity 5, 40% of reviews) · Aggressive ads / paywall (28%) · missing: offline mode, dark theme · quick win: fix the login loop.
Why Use This Scraper?
- ✅ Multi-country in one run — every input runs against each storefront you list; prices, ratings, availability, and ranking are returned per country
- ✅ Five actions from one actor — app details, reviews, ranked search (ASO), similar apps, and a developer's full app list
- ✅ Ratings histogram built in — the full 1★–5★ vote breakdown plus the rating total, not just the average score
- ✅ ASO rank tracking built in — search results come back in the App Store's ranked order, and the array position is the rank
- ✅ Optional similar apps — the App Store's own "you may also like" list attached to each app row
- ✅ Developer website + contact email — turn the store into a lead list for app-marketing/ASO outreach (with optional email enrichment)
- ✅ JSON, CSV, or Excel output, ready for spreadsheets, CRMs, and BI tools
Overview
The App Store Scraper is built for ASO specialists, app marketers, market researchers, and developers who need Apple App Store data in a spreadsheet instead of a browser tab.
You pick one action per run and feed it the matching input — app URLs/IDs, search terms, or developer IDs. Every input is then executed against each country in countries, so a single run can compare an app's rating in the US, UK, and Japan side by side, or capture how a keyword ranks in different storefronts.
The actor is pure HTTP — it reads Apple's public iTunes and App Store data (built on the maintained app-store-scraper engine plus a value-add normalization and enrichment layer). No login, no browser, no API key. Output is clean, flat rows you can export straight to CSV or Excel.
Supported Inputs
Actions
| Action | What it returns | Input used |
|---|---|---|
App details (appDetails) | Full app info per app, with optional ratings histogram, similar apps, and developer email | appUrls |
Reviews (reviews) | App reviews, sorted most recent / most helpful, paginated | appUrls |
Search (search) | Ranked search results — the array position is the ASO rank | searchQueries |
Similar apps (similar) | Apps the App Store lists as similar to a given app | appUrls |
Developer's apps (developer) | Every app published by a developer | devIds |
Every action runs across each country in countries, so the row count is roughly inputs × countries (capped by maxItems).
Input formats
| Input | Accepts | Example |
|---|---|---|
appUrls | Full App Store URL, numeric track ID, or bundle ID | https://apps.apple.com/us/app/spotify/id324684580, 324684580, or com.spotify.client |
searchQueries | Plain keywords | podcast app |
devIds | Developer page URL or numeric developer ID | https://apps.apple.com/us/developer/spotify/id324684583 or 324684583 |
countries | Two-letter storefront codes | ["us", "gb", "jp"] |
language | Locale tag (optional) | en-us |
Copy-pasteable input
{"action": "appDetails","appUrls": ["com.spotify.client", "324684580"],"countries": ["us", "gb", "jp"],"language": "en-us","includeRatings": true,"includeSimilar": true}
Unsupported inputs
- ❌ Content behind an Apple account login (purchase history, library, account settings)
- ❌ Google Play / Android apps — this actor targets
apps.apple.comonly - ❌ Mixing actions in one run — pick one
actionper run (chain runs or schedule for multiple)
Use Cases
| Audience | Use case |
|---|---|
| App marketers & ASO specialists | Track keyword rank over time, benchmark competitors, study titles, ratings, and screenshots |
| Market researchers & analysts | Bulk-export app catalogs, ratings, and pricing across categories and countries |
| Pricing & availability teams | Monitor per-country price and availability — the App Store is localized, so it varies by storefront |
| Review intelligence teams | Pull review streams (most recent / most helpful) for sentiment, bug surfacing, and feature requests |
| Competitive intelligence | Compare ratings histograms and versions across an app portfolio or against rivals |
| Sales / lead-gen & agencies | Turn search results and developer portfolios into a prospect list with websites + contact emails |
How It Works
- Input — choose an
actionand supply the matching input (app URLs/IDs/bundle IDs, search terms, or developer IDs) - Fan out by country — each input is queued once per storefront in
countries, so prices/ratings/ranking are captured per market - Fetch — Apple's public iTunes and App Store data is retrieved over HTTP (no browser), via the maintained
app-store-scraperengine - Parse & enrich — raw data is normalized into clean rows; optionally attach the ratings histogram, similar apps, and the developer contact email
- Output — flat
app,review, orsearchResultrows as JSON, CSV, or Excel, stopping oncemaxItemsis reached
Input Configuration
| Field | Type | Required | Notes |
|---|---|---|---|
action | string | yes | One of appDetails, reviews, search, similar, developer. Default appDetails. |
appUrls | array<string> | for appDetails / reviews / similar | App Store URLs, numeric track IDs, or bundle IDs. |
searchQueries | array<string> | for search | Keywords to search. Results come back in ranked (ASO) order. |
devIds | array<string> | for developer | Developer page URLs or numeric developer IDs. |
countries | array<string> | no | Two-letter storefront codes. Every input runs against each one. Default ["us"]. |
language | string | no | Locale tag (e.g. en-us) for returned text. Defaults to the storefront's locale. |
includeRatings | boolean | no | Attach the ratings histogram (1★–5★ vote counts + total). One extra request per app. App details only. Default false. |
includeSimilar | boolean | no | Attach a similarApps[] list to each app row. One extra request per app. App details only. Default false. |
enrichEmails | boolean | no | Resolve a contact email from the developer's website (lead-gen). Adds contactEmail + emailEnrichment. Billed per email found, only when an email is returned. App details only. Default false. |
reviewsSort | string | no | recent or helpful (action = Reviews). Default recent. |
maxReviewsPerApp | integer | no | Upper bound on reviews per app per country (action = Reviews). The App Store exposes up to ~500. Default 100. |
reviewInsights | boolean | no | Add a review_insights summary row per app: rating breakdown, sentiment split, complaint themes, top negative terms, and feature requests. No AI/keys. Billed per app analyzed. Default false. |
painPointAnalysis | boolean | no | AI (Claude) teardown per app — severity-ranked themes, missing features, quick wins, summary. Paid Apify plans only; billed per app analyzed. Default false. |
resultsLimit | integer | no | Max results per search term, developer, or similar-apps call. Default 50. |
maxItems | integer | no | Hard cap on total dataset rows across all inputs and countries. Default 1000. Free-tier runs are capped at 100. |
maxConcurrency | integer | no | Maximum requests in flight. Default 6. |
proxy | object | no | Defaults to Apify Proxy. Geo is handled by the countries param in-request, so a proxy mainly spreads load and avoids rate-limits. |
Common scenarios
1. Compare one app across three countries
{"action": "appDetails","appUrls": ["com.spotify.client"],"countries": ["us", "gb", "jp"]}
2. Track a keyword's ASO rank in two markets
{"action": "search","searchQueries": ["podcast app", "meditation"],"countries": ["us", "de"],"resultsLimit": 50}
3. App details with ratings histogram, similar apps + developer email
{"action": "appDetails","appUrls": ["324684580"],"countries": ["us"],"includeRatings": true,"includeSimilar": true,"enrichEmails": true}
4. Most recent reviews for an app
{"action": "reviews","appUrls": ["com.spotify.client"],"countries": ["us"],"reviewsSort": "recent","maxReviewsPerApp": 200}
Output Overview
Each dataset item is one of five shapes, set by rowType:
app— emitted byappDetails,similar, anddeveloper. Carries the full app schema, plus optionalratings+ratingsHistogram,similarApps[], and (withenrichEmails)contactEmail+emailEnrichment.review— emitted byreviews. One row per review.review_insights— emitted byreviewswhenreviewInsightsis on. Deterministic (no-AI) summary row per app: rating breakdown, sentiment split, complaint themes, top negative terms, feature requests.painPointAnalysis— emitted byreviewswhenpainPointAnalysisis on (paid plans). AI (Claude) teardown per app: clustered themes with severity, missing features, quick wins, sentiment, summary.searchResult— emitted bysearch. One row per ranked result;rankis the 1-based ASO position.
Two tiers of review analysis: reviewInsights is the free-of-AI, instant, deterministic digest; painPointAnalysis is the premium AI version that actually understands the reviews (severity-ranked themes, quick wins, a written summary). Use either or both.
Notes on when fields are populated:
countryis set on every row — the same app/keyword pulled for three countries produces three rows.developerWebsitecomes straight from the app's store listing when the developer provides it.ratings+ratingsHistogramandsimilarApps[]appear only when the matchinginclude*toggle is on.contactEmail+emailEnrichmentappear only withenrichEmailsand a resolvable website.
Output is JSON by default; the Apify Console "Export" tab also produces CSV and Excel.
Output Samples
App row — appDetails with optional sections
{"rowType": "app","id": 324684580,"appId": "com.spotify.client","url": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580","country": "us","title": "Spotify: Music and Podcasts","developer": "Spotify","developerId": 324684583,"developerWebsite": "https://www.spotify.com/","primaryGenre": "Music","price": 0,"free": true,"currency": "USD","score": 4.78,"reviews": 40672036,"version": "9.0.0","ratings": 40672036,"ratingsHistogram": { "1": 839493, "2": 327898, "3": 879940, "4": 2842303, "5": 35783634 },"similarApps": [{ "id": 0, "appId": "...", "title": "...", "score": 4.5 }],"scrapedAt": "2026-06-29T12:00:00.000Z"}
Review row — reviews
{"rowType": "review","id": 324684580,"appId": "com.spotify.client","country": "us","reviewId": "11538914627","userName": "Jane D.","score": 5,"title": "Love the new mix","text": "The redesigned library makes finding playlists so much faster.","version": "9.0.0","updated": "2026-06-20T10:11:00.000Z","url": "https://itunes.apple.com/us/review?id=324684580","scrapedAt": "2026-06-29T12:00:00.000Z"}
Review-insights row — reviews with reviewInsights: true
One summary per app, mined from the reviews just scraped — the "what are people complaining about / begging for" digest:
{"rowType": "review_insights","appId": "com.spotify.client","appName": "Spotify","country": "us","totalAnalyzed": 200,"averageScore": 2.9,"ratingBreakdown": { "1": 62, "2": 28, "3": 24, "4": 30, "5": 56 },"sentimentSplit": { "positive": 43, "neutral": 12, "negative": 45 },"topThemes": [{ "theme": "Pricing & subscriptions", "mentions": 41, "sharePct": 28.5 },{ "theme": "Crashes & stability", "mentions": 33, "sharePct": 22.9 },{ "theme": "Ads", "mentions": 22, "sharePct": 15.3 }],"topComplaintTerms": [ { "term": "shuffle", "count": 18 }, { "term": "premium", "count": 14 } ],"featureRequests": [ "wish it had a sleep timer on the free tier", "please add lyrics offline" ]}
AI pain-point row — reviews with painPointAnalysis: true (paid plans)
An AI teardown per app — the premium version of the digest above:
{"rowType": "painPointAnalysis","appId": "com.spotify.client","reviewsAnalyzed": 200,"topThemes": [{ "theme": "Shuffle feels random and repeats artists", "severity": 4, "mentionSharePct": 24,"exampleQuotes": ["shuffle plays the same 10 songs", "..."] },{ "theme": "Premium price hikes without new value", "severity": 4, "mentionSharePct": 19, "exampleQuotes": ["..."] }],"missingFeatures": ["true offline lyrics", "sleep timer on free tier"],"quickWins": ["fix shuffle randomization", "let free users queue tracks"],"overallSentiment": "mixed","summary": "Users love the catalog but are frustrated by shuffle behavior and rising Premium prices.","generatedAt": "2026-07-09T09:00:00.000Z"}
Search-result row — search (rank = ASO position)
{"rowType": "searchResult","query": "podcast app","country": "us","rank": 1,"id": 324684580,"appId": "com.spotify.client","title": "Spotify: Music and Podcasts","developer": "Spotify","score": 4.78,"price": 0,"scrapedAt": "2026-06-29T12:00:00.000Z"}
Key Output Fields
App row (rowType: "app")
| Field | Description |
|---|---|
id | Numeric App Store track ID, e.g. 324684580 |
appId | Bundle ID, e.g. com.spotify.client |
url | Canonical App Store URL (with the row's storefront) |
country | The storefront this row was scraped for |
title, description | App name and full description |
developer, developerId | Developer name and numeric ID |
developerWebsite | Developer website (lead-gen) |
primaryGenre, genres | Primary category plus the full genre list |
contentRating | Content/age rating |
price, free, currency | Numeric price, free flag, currency |
score, reviews | All-time average rating and review count |
currentVersionScore, currentVersionReviews | Average rating and review count for the current version |
version | Current version string |
released, updated | Original release date and last-updated date |
releaseNotes | "What's New" notes for the current version |
size | Download size |
requiredOsVersion | Minimum iOS version |
languages | Supported languages |
icon, screenshots | Icon URL and screenshot gallery |
ratings (optional) | Total number of ratings (includeRatings) |
ratingsHistogram (optional) | 1★–5★ vote counts (includeRatings) |
similarApps[] (optional) | { id, appId, title, score } per similar app (includeSimilar) |
contactEmail (optional) | Email resolved from the developer site (enrichEmails) |
scrapedAt | ISO timestamp of the scrape |
Review row (rowType: "review")
reviewId, userName, title, text, score, version, updated, url — plus id, appId, country, and scrapedAt.
Search-result row (rowType: "searchResult")
rank (1-based ASO position), id, appId, title, developer, score, price — plus query, country, and scrapedAt.
FAQ
Do I need to log in or supply an API key?
No. The actor reads Apple's public App Store data over HTTP — no Apple ID, no login, no API key.
Is this the official App Store API?
No. It is not an official API and is not affiliated with Apple. It uses Apple's public iTunes and App Store data — the same listings you'd see in a browser — and returns them as clean, structured rows.
Why do I get different data per country?
The App Store is localized — prices, ratings, availability, and search ranking all differ by storefront. So you pass countries (two-letter storefront codes), and every input is scraped once per country. A row's country field tells you which storefront it came from.
Does it work outside the country I'm in?
Yes. Geo is controlled by the countries parameter, in-request — not by your IP or the proxy location. You can sit anywhere and pull US, UK, and Japanese data in the same run.
How many reviews can I get per app?
The App Store exposes up to roughly 500 reviews per app per country. Set maxReviewsPerApp up to that ceiling and choose recent or helpful ordering with reviewsSort.
Is the developer email always present?
Not always. Unlike Google Play, Apple doesn't publish a developer contact email on the app page, so it can only be resolved via the developer's website with the optional enrichEmails step — it's best-effort and present only when a website is listed and an email is found.
What's the difference between search rank and the other actions?
search returns results in the App Store's own ranked order and stamps each with a 1-based rank — that's the ASO position for the keyword. The other actions (appDetails, reviews, similar, developer) aren't ranked.
Can I export to JSON, CSV, or Excel?
Yes. Output is JSON by default; the Apify Console "Export" tab also produces CSV and Excel (XLSX).
What about rate limits?
Apple can throttle heavy runs. Keep maxConcurrency reasonable (the default 6 is a safe start) and use a proxy for large jobs. The actor defaults to Apify Proxy; supply your own pool for very large runs.
Support
Found a bug, hit throttling we don't handle gracefully, or want another action or field supported? Open an issue on the actor's Issues tab, or reach out via the memo23 profile on Apify.
Additional Services
Need a custom export shape, a new entry point, scheduled rank monitoring, or a bespoke enrichment pipeline? I build tailored scrapers and data pipelines — get in touch via the memo23 profile.
Explore More Scrapers
If you track apps, rankings, and developers, these pair well:
- Google Play Scraper — the Android side of the same workflow; cross-reference Apple vs Google Play
- Trustpilot Scraper — company-level sentiment for the developers behind the apps
- G2 Scraper — see how an app's vendor ranks on B2B software reviews
- Product Hunt Scraper — discover newly launched apps and their makers
- LinkedIn Profiles Scraper — backfill founder/developer profiles for outreach
Full portfolio: apify.com/memo23.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Apple Inc., the App Store, or any of their parent companies or subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available App Store data — no authenticated endpoints, no account-gated content, and nothing behind an Apple ID login. Users are responsible for ensuring their use complies with Apple's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization. Developer contact emails and reviewer data are personal data — process them responsibly, honor opt-outs, and seek legal advice before outbound marketing.
SEO Keywords
app store scraper, scrape app store, apple app store scraper, ios app scraper, app store api, itunes app scraper, apple app data, apps.apple.com scraper, Apify app store, app store reviews scraper, app store search scraper, aso rank tracker, app store optimization data, app store developer scraper, ios app reviews api, app market research, app store ratings histogram, multi country app pricing, ios app metadata scraper, developer contact email scraper, app marketing lead generation