App Stores Scraper - Apple App Store & Google Play ASO
Pricing
from $0.25 / 1,000 app / listing / rank rows
App Stores Scraper - Apple App Store & Google Play ASO
Scrape Apple App Store and Google Play in one run: app details, reviews, keyword search, top charts, ASO keyword ranks, developer catalogs, and monitors. Cross-store app pairs, multi-country. Fast HTTP — no browser.
Pricing
from $0.25 / 1,000 app / listing / rank rows
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
App Stores Scraper — Apple App Store & Google Play ASO
Unofficial tool for publicly accessible Apple App Store / iTunes and Google Play Store data. Apple, App Store, Google Play, and related trademarks belong to their respective owners. Not affiliated with, sponsored by, or endorsed by Apple Inc. or Google LLC. Provided for informational use only; users must comply with applicable terms and laws.
App Stores Scraper ◄── you are here
| Actor | Platform |
|---|---|
| App Stores Scraper ◄── you are here | Apple App Store + Google Play (combo) |
| Apple App Store Scraper | iOS / App Store only |
| Google Play Store Scraper | Android / Google Play only |
App Store and Google Play scraper for Apify — one Actor for cross-platform ASO: app metadata, customer reviews, keyword search, top charts, ASO keyword ranks, developer catalogs, and listing monitors. Scrape Apple App Store and Google Play in a single run, or either store alone. Map the same product with app pairs (pairKey on every row). Fast HTTP — no browser.
Use it for dual-store competitor research, ASO rank tracking, review mining, release / price / rating monitors, and agency reporting when you need iOS + Android without two Actor jobs. For deepest single-store options, use the sibling Actors above.
When to use this Actor
- Track the same app on iOS + Android (details, ranks, reviews) with
appPairs - ASO keyword ranks across both stores and countries / locales
- Competitor cards: version, price, ratings, App Privacy / Data safety
- Top charts + keyword discovery for App Store and Google Play in one job
- Review intelligence from both marketplaces
- Scheduled monitor for version / price / rating / listing deltas
- One Actor ID in automations instead of separate Apple and Play pipelines
Modes
| Mode | Apple App Store | Google Play |
|---|---|---|
app_details | iTunes lookup (+ optional HTML enrich) | Full metadata (+ similar / permissions / data safety) |
reviews | Customer reviews RSS (~500/country) | Paginated reviews (sort / stars / after-date) |
search | Keyword search | Keyword search |
top_charts | Top Free / Paid / Grossing / New | Top free / paid / grossing (+ category) |
search_and_charts | Search + charts | Search + charts |
developer_apps | Artist / developer catalog | Developer page listings |
keyword_ranks | SERP position + KV history + RANK_CHANGE | SERP position + KV history |
monitor | Version / price / rating / privacy / IAP deltas | Version / price / rating / listing + review watch + webhook |
Key features
- Both stores, one run —
stores: ["apple","google"](default) or either alone - App pairs for ASO —
appPairs: [{ name, appleId, googleId }]stampspairKeyfor joins - ASO keyword ranks — track App Store IDs and Play packages across keywords × countries
- Fair
maxItemssplit — when both stores run, the global cap is split evenly (balanceStoreLimits); optionalmaxItemsPerStore - Parallel pipelines —
runStoresInParallel(default true) - Apple HTML enrich — privacy nutrition labels, IAP, rating histogram
- Play extras — similar apps, permissions, Data safety, monitor webhooks
- Typed rows — every item has
storeplusitemType/ native fields - Monitor state — separate KV namespaces per store under
monitorStoreName
Input parameters
| Parameter | Description |
|---|---|
mode | See modes table |
stores | apple, google, or both (default both) |
appPairs | Cross-store ASO pairs (name / appleId / googleId) |
startUrls | App Store or Play URLs (store auto-detected) |
appleAppIds / googleAppIds | Explicit track IDs / package names |
searchTerms / searchTerm | Keywords for search and keyword ranks |
trackAppleAppIds / trackGoogleAppIds | Apps to locate in SERP (keyword_ranks) |
country / countries / useAllCountries | Storefronts (Apple majors preset supported) |
language / languages | Play hl (+ multi-locale matrix with countries) |
appleChartType / googleChartType / chartLimit | Top charts |
appleGenreId / googleCategory | Category / genre filters |
enrichFromHtml / enrichChartDetails | Apple HTML / chart enrich |
includeSimilarApps / includePermissions / includeDataSafety | Play detail extras |
enrichListings / enrichDeveloperApps / maxSearchPages | Play listing enrich |
maxReviewsPerApp / appleReviewSort / googleReviewSort | Reviews |
reviewScoreFilter / reviewAfterDate | Play review filters |
maxItems | Global row cap (auto-split across stores when both run) |
maxItemsPerStore | Optional hard cap per store |
balanceStoreLimits | Even split of maxItems (default true) |
monitorStoreName / monitorBaselineOnly / resetMonitorState | Monitor / rank KV |
webhookUrl / notifyOn* | Play monitor alerts |
concurrency / maxRequestsPerSecond | Parallelism and Apple RPS |
runStoresInParallel | Scrape Apple and Google concurrently |
proxyConfiguration | Residential recommended for Google Play |
Example — dual-store app details (ASO competitor pack)
{"mode": "app_details","stores": ["apple", "google"],"appPairs": [{"name": "WhatsApp","appleId": "310633997","googleId": "com.whatsapp"}],"countries": ["us", "de"],"enrichFromHtml": true,"includeDataSafety": true,"includeSimilarApps": true,"maxItems": 50}
Example — ASO keyword ranks (both stores)
{"mode": "keyword_ranks","stores": ["apple", "google"],"searchTerms": ["vpn", "secure vpn", "proxy"],"appPairs": [{"name": "CompetitorA","appleId": "123456789","googleId": "com.example.vpn"}],"countries": ["us", "gb", "de"],"languages": ["en"],"monitorStoreName": "my-aso-ranks","maxItems": 200}
Example — reviews from App Store + Google Play
{"mode": "reviews","stores": ["apple", "google"],"appPairs": [{"name": "WhatsApp","appleId": "310633997","googleId": "com.whatsapp"}],"maxReviewsPerApp": 100,"countries": ["us"],"appleReviewSort": "mostRecent","googleReviewSort": "NEWEST","maxItems": 400}
Example — top charts both stores
{"mode": "top_charts","stores": ["apple", "google"],"countries": ["us"],"languages": ["en"],"appleChartType": "top_free","appleGenreId": 6014,"googleChartType": "topselling_free","googleCategory": "GAME","chartLimit": 100,"maxItems": 200}
Example — monitor (baseline then schedule)
{"mode": "monitor","stores": ["apple", "google"],"appPairs": [{"name": "Spotify","appleId": "324684580","googleId": "com.spotify.music"}],"countries": ["us"],"monitorStoreName": "app-stores-aso-monitor","monitorBaselineOnly": true,"enrichFromHtml": true,"maxItems": 100}
After the baseline run, set monitorBaselineOnly to false (or omit it) so later runs push only change events.
Output
| Field | Description |
|---|---|
store | apple or google |
itemType / recordType | app, review, keyword_rank, chart_entry, search_result, monitor_event, … |
pairKey | Cross-store pair name when provided in appPairs |
appId | Apple track ID or Google package name |
title / developerName | Listing title and publisher |
score / rating | Average rating (mirrored for cross-store tables) |
price / currency / version | Commercial / version metadata |
keyword / rank / found | ASO SERP / chart position |
country / language | Storefront / Play locale |
eventType / changeType | Monitor deltas |
url | Store listing URL when present |
scrapedAt | UTC collection time |
Limitations
- Apple reviews RSS is a recent window (~500 per country per sort), not full history.
- Apple keyword ranks / search stop at the top 200 per term per country.
- Google Play developer pages and chart RPCs can return fewer apps than your store quota — total rows may be below
maxItems. - With both stores and
balanceStoreLimits,maxItemsis split evenly; one store cannot consume the whole cap. - Play version may be missing (
Varies with device); monitor prefers update timestamps when present. - Residential proxy is recommended for non-US Play locales and larger review volumes.
Workflow tips
- Validate IDs with
app_details+appPairs(checkpairKeyin the dataset). - Seed ASO with
keyword_ranks+ a dedicatedmonitorStoreName, then schedule daily. - Run
monitoronce withmonitorBaselineOnly: true, then schedule deltas. - Cap cost with
maxItemswhile testing (auto-splits across stores; or setmaxItemsPerStore). - Prefer Residential proxy for Google Play; Apple iTunes JSON often works without proxy.
Related Actors
| Actor | What it covers |
|---|---|
| App Stores Scraper ◄── you are here | Apple App Store + Google Play combo ASO suite |
| Apple App Store Scraper | iOS apps, games, reviews, ASO ranks, charts, monitor |
| Google Play Store Scraper | Android apps, reviews, ASO ranks, monitor + webhooks |