Apple App Store Scraper: Apps, Reviews & ASO
Pricing
from $0.38 / 1,000 search results
Apple App Store Scraper: Apps, Reviews & ASO
Extract Apple App Store apps, reviews, rankings, privacy labels, version history, in-app purchases, events, editorial features, similar apps, developer portfolios, and country availability. Get 55-field app details and up to 500 reviews per app. No Apple account or API key required.
Pricing
from $0.38 / 1,000 search results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Apple App Store Scraper - App Details, Reviews, Rankings and Market Data
Extract public Apple App Store apps, enriched product details, customer reviews, charts, developer catalogs, similar apps, privacy labels, regional availability, in-app purchases, events, editorial features, and search suggestions into analysis-ready datasets.
- Run 11 focused modes for discovery, product intelligence, review research, localization, and monitoring
- Get 55 top-level fields in each enriched details row, including ratings histogram, App Privacy, version history, device requirements, IAPs, events, and editorial placements
- Search multiple keywords or process multiple apps and developers in one run
- Accept numeric Apple IDs, bundle IDs, and full
apps.apple.comURLs - Localize catalog metadata, prices, ratings, and availability by App Store country and language
- Filter reviews by star rating and ISO date; retain review and parent-app context in every row
- No Apple account, API key, browser cookies, or user-supplied proxy configuration is required
- Export results to JSON, CSV, Excel, XML, or consume them through the Apify API
What can you do with this Apple App Store Scraper?
| Mode | Input | One dataset row | Best for |
|---|---|---|---|
search | searchTerms | One matching app with 44 App Store fields plus query context | Keyword research and competitor discovery |
details | appIds | One app with 55 top-level fields and nested enrichment | Complete product intelligence |
reviews | appIds | One customer review with app context | Voice-of-customer and sentiment analysis |
charts | Collection and optional genre ID | One ranked chart app | Ranking and category monitoring |
developer | developerIds | One app published by the developer | Portfolio research |
similar | appIds | One Apple-recommended related app | Competitive landscape discovery |
suggest | searchTerms | One App Store search suggestion | ASO keyword expansion |
availability | appIds, countries | One app-country availability result | Launch and localization audits |
iap | appIds | One displayed in-app purchase and localized price | Monetization research |
events | appIds | One current or upcoming in-app event | Live-ops monitoring |
editorial | appIds | One Apple editorial placement featuring the app | Featuring and promotion research |
Choose one mode per run. You can feed IDs discovered by search, charts, developer, or similar into details, reviews, availability, iap, events, or editorial in a later run.
Quick start
- Open the Actor and click Try for free.
- Keep
searchselected and enter one or more keywords in Search terms. - Set Maximum items per input to a small value such as
10. - Click Start.
- Preview the Dataset or download it in your preferred format.
The default input searches for photo editor and works without credentials or proxy setup.
Input examples
Search apps
{"mode": "search","searchTerms": ["photo editor", "video editor"],"maxItems": 20,"country": "us","language": "en-US"}
maxItems applies separately to each search term. One row represents one matching app.
Enriched app details
{"mode": "details","appIds": ["https://apps.apple.com/us/app/instagram/id389801252","com.google.ios.youtube","835599320"],"country": "us","language": "en-US","includePrivacy": true,"includeVersionHistory": true,"includeRatingsHistogram": true,"includeIAP": true,"includeEvents": true,"includeReviews": false}
Filtered reviews
{"mode": "reviews","appIds": ["389801252", "com.spotify.client"],"maxItems": 100,"country": "us","language": "en-US","reviewSort": "mostRecent","reviewScore": 1,"reviewsSince": "2026-01-01"}
Top charts
{"mode": "charts","chartCollection": "topFree","category": 6014,"maxItems": 100,"country": "us","language": "en-US"}
Apps by developer
{"mode": "developer","developerIds": ["570060151"],"maxItems": 100,"country": "us"}
Similar apps
{"mode": "similar","appIds": ["570060128"],"maxItems": 20,"country": "us"}
Search suggestions
{"mode": "suggest","searchTerms": ["photo", "fitness"],"maxItems": 10,"country": "us","language": "en-US"}
Availability by country
{"mode": "availability","appIds": ["com.duolingo.DuolingoMobile"],"countries": ["us", "gb", "de", "jp"],"language": "en-US"}
In-app purchases
{"mode": "iap","appIds": ["570060128"],"country": "us","language": "en-US"}
App events
{"mode": "events","appIds": ["1094591345"],"country": "us","language": "en-US"}
Featured editorial stories
{"mode": "editorial","appIds": ["570060128"],"country": "us","language": "en-US"}
Complete output examples
Every distinct dataset shape is shown below. Optional scalar values are null when Apple does not publish them; repeatable groups are empty arrays when unavailable. Failed targets are logged and skipped rather than emitted as artificial error rows.
Complete search output - 46 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","title": "Duolingo: Language Lessons","url": "https://apps.apple.com/us/app/id570060128","description": "Learn languages with short lessons.","icon": "https://example.com/icon-512.jpg","icon60": "https://example.com/icon-60.jpg","icon100": "https://example.com/icon-100.jpg","icon512": "https://example.com/icon-512.jpg","genres": ["Education", "Productivity"],"genreIds": ["6017", "6007"],"primaryGenre": "Education","primaryGenreId": 6017,"contentRating": "4+","trackContentRating": "4+","languages": ["EN", "DE"],"sizeBytes": 498500000,"minimumOsVersion": "17.0","released": "2012-11-13T08:00:00Z","updated": "2026-08-03T18:03:04Z","releaseNotes": "Performance improvements.","version": "7.134.0","price": 0.0,"formattedPrice": "Free","currency": "USD","free": true,"developerId": "570060151","developer": "Duolingo","developerUrl": "https://apps.apple.com/us/developer/id570060151","developerWebsite": "https://www.duolingo.com/","sellerName": "Duolingo, Inc","score": 4.7,"ratingCount": 5374930,"currentVersionScore": 4.7,"currentVersionRatingCount": 1200,"screenshots": ["https://example.com/iphone.jpg"],"ipadScreenshots": ["https://example.com/ipad.jpg"],"appleTvScreenshots": [],"supportedDevices": ["iPhone15,2"],"features": ["iosUniversal"],"advisories": [],"kind": "software","isGameCenterEnabled": false,"country": "us","searchTerm": "language learning","recordType": "search"}
Complete details output - 55 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","title": "Duolingo: Language Lessons","url": "https://apps.apple.com/us/app/id570060128","description": "Learn languages with short lessons.","icon": "https://example.com/icon-512.jpg","icon60": "https://example.com/icon-60.jpg","icon100": "https://example.com/icon-100.jpg","icon512": "https://example.com/icon-512.jpg","genres": ["Education", "Productivity"],"genreIds": ["6017", "6007"],"primaryGenre": "Education","primaryGenreId": 6017,"contentRating": "4+","trackContentRating": "4+","languages": ["EN", "DE"],"sizeBytes": 498500000,"minimumOsVersion": "17.0","released": "2012-11-13T08:00:00Z","updated": "2026-08-03T18:03:04Z","releaseNotes": "Performance improvements.","version": "7.134.0","price": 0.0,"formattedPrice": "Free","currency": "USD","free": true,"developerId": "570060151","developer": "Duolingo","developerUrl": "https://apps.apple.com/us/developer/id570060151","developerWebsite": "https://www.duolingo.com/","sellerName": "Duolingo, Inc","score": 4.7,"ratingCount": 5374930,"currentVersionScore": 4.7,"currentVersionRatingCount": 1200,"screenshots": ["https://example.com/iphone.jpg"],"ipadScreenshots": ["https://example.com/ipad.jpg"],"appleTvScreenshots": [],"supportedDevices": ["iPhone15,2"],"features": ["iosUniversal"],"advisories": [],"kind": "software","isGameCenterEnabled": false,"country": "us","formattedSize": "498.5 MB","information": [{"name": "Compatibility","value": null,"details": [{"name": "iPhone","value": "Requires iOS 17.0 or later."}]}],"deviceRequirements": [{"device": "iPhone","requirement": "Requires iOS 17.0 or later."}],"ratingsHistogram": {"average": 4.7,"total": 5374930,"1": 134624,"2": 44984,"3": 131110,"4": 543631,"5": 4520581},"privacyDetails": {"privacyPolicyUrl": "https://www.duolingo.com/privacy","privacyTypes": [{"identifier": "DATA_USED_TO_TRACK_YOU","title": "Data Used to Track You","description": "Data may be used to track you.","dataCategories": [{"identifier": "CONTACT_INFO","title": "Contact Info","dataTypes": ["Email Address"]}],"purposes": [{"identifier": "THIRD_PARTY_ADVERTISING","title": "Third-Party Advertising","description": "Used to display third-party advertisements."}]}]},"versionHistory": [{"version": "7.134.0","releaseDate": "Mon Aug 03 2026 18:03:04 GMT+0000 (Coordinated Universal Time)","releaseNotes": "Performance improvements."}],"inAppPurchases": [{"rank": 1,"name": "Super Duolingo","priceText": "$9.99"}],"appEvents": [{"eventId": "event-123","title": "Learning challenge","subtitle": "Complete daily lessons","description": "A limited-time learning event.","promotionType": "event","badge": "CHALLENGE","kind": "event","startDate": "2026-08-01T00:00:00Z","endDate": "2026-08-10T00:00:00Z","formattedDates": [{"kind": "AppEventFormattedDate","showLiveIndicator": false,"displayText": "HAPPENING NOW","displayFromDate": "2026-08-01T00:00:00Z","countdownToDate": null,"countdownStringKey": null}],"image": "https://example.com/event.jpg","url": "https://apps.apple.com/us/app/id570060128"}],"featuredEditorial": [{"editorialId": "1825160725","heading": "APP OF THE DAY","title": "Make language practice a habit","description": "Learn something new every day.","style": "EditorialCard","image": "https://example.com/editorial.jpg","url": "https://apps.apple.com/us/iphone/story/id1825160725"}],"includedReviews": [{"appId": "570060128","reviewId": "14158523706","userName": "Reviewer","userUrl": null,"version": null,"score": 5,"title": "Experience so far","text": "A useful review.","url": "https://apps.apple.com/us/app/id570060128?see-all=reviews","date": "2026-06-08T14:19:22.000Z","isEdited": null,"thumbsUpCount": null,"thumbsUpTotal": null,"country": "us","reviewSort": "mostHelpful","requestedReviewSort": "mostRecent","reviewSource": "appPageFallback","appTitle": "Duolingo: Language Lessons","appUrl": "https://apps.apple.com/us/app/id570060128","bundleId": "com.duolingo.DuolingoMobile","developer": "Duolingo","appScore": 4.7,"appRatingCount": 5374930,"primaryGenre": "Education"}],"recordType": "details"}
When includeReviews is false, includedReviews is []. Disabled detail enrichments keep their stable keys and return an empty array or an empty/default object.
Complete review output - 25 top-level fields
{"appId": "389801252","reviewId": "14158523706","userName": "Reviewer","userUrl": "https://itunes.apple.com/us/reviews/id123","version": "390.0","score": 5,"title": "Great app","text": "Works well for sharing photos.","url": "https://itunes.apple.com/review?id=14158523706","date": "2026-08-01T12:30:00-07:00","isEdited": null,"thumbsUpCount": 42,"thumbsUpTotal": 50,"country": "us","reviewSort": "mostRecent","requestedReviewSort": "mostRecent","reviewSource": "rss","appTitle": "Instagram","appUrl": "https://apps.apple.com/us/app/instagram/id389801252","bundleId": "com.burbn.instagram","developer": "Instagram, Inc.","appScore": 4.7,"appRatingCount": 28000000,"primaryGenre": "Photo & Video","recordType": "review"}
Paginated rows use reviewSource: "api". If that source is temporarily unavailable, the Actor tries Apple's RSS feed and then public helpful reviews embedded in the app page. Embedded rows have reviewSource: "appPageFallback", reviewSort: "mostHelpful", and preserve the requested value in requestedReviewSort; source-specific fields may be null.
Complete chart output - 48 top-level fields
{"appId": "389801252","bundleId": "com.burbn.instagram","title": "Instagram","url": "https://apps.apple.com/us/app/id389801252","description": "Share photos and videos.","icon": "https://example.com/icon-512.jpg","icon60": "https://example.com/icon-60.jpg","icon100": "https://example.com/icon-100.jpg","icon512": "https://example.com/icon-512.jpg","genres": ["Photo & Video", "Social Networking"],"genreIds": ["6008", "6005"],"primaryGenre": "Photo & Video","primaryGenreId": 6008,"contentRating": "12+","trackContentRating": "12+","languages": ["EN"],"sizeBytes": 315000000,"minimumOsVersion": "15.1","released": "2010-10-06T08:12:41Z","updated": "2026-08-01T09:00:00Z","releaseNotes": "Performance improvements.","version": "390.0","price": 0.0,"formattedPrice": "Free","currency": "USD","free": true,"developerId": "389801255","developer": "Instagram, Inc.","developerUrl": "https://apps.apple.com/us/developer/id389801255","developerWebsite": "https://www.instagram.com/","sellerName": "Instagram, Inc.","score": 4.7,"ratingCount": 28000000,"currentVersionScore": 4.7,"currentVersionRatingCount": 120000,"screenshots": ["https://example.com/iphone.jpg"],"ipadScreenshots": ["https://example.com/ipad.jpg"],"appleTvScreenshots": [],"supportedDevices": ["iPhone15,2"],"features": ["iosUniversal"],"advisories": ["Infrequent/Mild Mature/Suggestive Themes"],"kind": "software","isGameCenterEnabled": false,"country": "us","chartCollection": "topFree","chartCategory": 6008,"chartRank": 1,"recordType": "chart"}
Complete developer output - 47 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","title": "Duolingo: Language Lessons","url": "https://apps.apple.com/us/app/id570060128","description": "Learn languages with short lessons.","icon": "https://example.com/icon-512.jpg","icon60": "https://example.com/icon-60.jpg","icon100": "https://example.com/icon-100.jpg","icon512": "https://example.com/icon-512.jpg","genres": ["Education"],"genreIds": ["6017"],"primaryGenre": "Education","primaryGenreId": 6017,"contentRating": "4+","trackContentRating": "4+","languages": ["EN"],"sizeBytes": 498500000,"minimumOsVersion": "17.0","released": "2012-11-13T08:00:00Z","updated": "2026-08-03T18:03:04Z","releaseNotes": "Performance improvements.","version": "7.134.0","price": 0.0,"formattedPrice": "Free","currency": "USD","free": true,"developerId": "570060151","developer": "Duolingo","developerUrl": "https://apps.apple.com/us/developer/id570060151","developerWebsite": "https://www.duolingo.com/","sellerName": "Duolingo, Inc","score": 4.7,"ratingCount": 5374930,"currentVersionScore": 4.7,"currentVersionRatingCount": 1200,"screenshots": ["https://example.com/iphone.jpg"],"ipadScreenshots": ["https://example.com/ipad.jpg"],"appleTvScreenshots": [],"supportedDevices": ["iPhone15,2"],"features": ["iosUniversal"],"advisories": [],"kind": "software","isGameCenterEnabled": false,"country": "us","sourceDeveloperId": "570060151","developerAppRank": 1,"recordType": "developer"}
Complete similar output - 47 top-level fields
{"appId": "1546079573","bundleId": "com.example.languageapp","title": "Language Learning App","url": "https://apps.apple.com/us/app/id1546079573","description": "Practice another language.","icon": "https://example.com/icon-512.jpg","icon60": "https://example.com/icon-60.jpg","icon100": "https://example.com/icon-100.jpg","icon512": "https://example.com/icon-512.jpg","genres": ["Education"],"genreIds": ["6017"],"primaryGenre": "Education","primaryGenreId": 6017,"contentRating": "4+","trackContentRating": "4+","languages": ["EN"],"sizeBytes": 125000000,"minimumOsVersion": "16.0","released": "2021-01-01T00:00:00Z","updated": "2026-07-30T00:00:00Z","releaseNotes": "Bug fixes.","version": "5.2.0","price": 0.0,"formattedPrice": "Free","currency": "USD","free": true,"developerId": "123456789","developer": "Example Developer","developerUrl": "https://apps.apple.com/us/developer/id123456789","developerWebsite": "https://example.com/","sellerName": "Example Developer LLC","score": 4.6,"ratingCount": 42000,"currentVersionScore": 4.6,"currentVersionRatingCount": 500,"screenshots": ["https://example.com/iphone.jpg"],"ipadScreenshots": [],"appleTvScreenshots": [],"supportedDevices": ["iPhone15,2"],"features": ["iosUniversal"],"advisories": [],"kind": "software","isGameCenterEnabled": false,"country": "us","sourceAppId": "570060128","similarityRank": 1,"recordType": "similar"}
Complete suggestion output - 5 top-level fields
{"searchTerm": "photo","suggestion": "photo editor","rank": 1,"country": "us","recordType": "suggestion"}
Complete availability output - 10 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","title": "Duolingo: Language & Chess","country": "gb","available": true,"url": "https://apps.apple.com/gb/app/id570060128","price": 0.0,"formattedPrice": "Free","currency": "GBP","recordType": "availability"}
Unavailable country rows retain the same 10 keys with available: false and unavailable catalog values set to null.
Complete iap output - 8 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","appTitle": "Duolingo: Language Lessons","country": "us","rank": 1,"name": "Super Duolingo","priceText": "$9.99","recordType": "iap"}
Complete app-event output - 17 top-level fields
{"appId": "1094591345","bundleId": "com.nianticlabs.pokemongo","appTitle": "Pokémon GO","country": "us","eventId": "event-123","title": "Community Day","subtitle": "A featured Pokémon appears","description": "Join a limited-time in-game event.","promotionType": "event","badge": "SPECIAL_EVENT","kind": "event","startDate": "2026-08-09T14:00:00Z","endDate": "2026-08-09T17:00:00Z","formattedDates": [{"kind": "AppEventFormattedDate","showLiveIndicator": false,"displayText": "HAPPENING NOW","displayFromDate": "2026-08-09T14:00:00Z","countdownToDate": null,"countdownStringKey": null}],"image": "https://example.com/event.jpg","url": "https://apps.apple.com/us/app/id1094591345","recordType": "app-event"}
Complete editorial output - 12 top-level fields
{"appId": "570060128","bundleId": "com.duolingo.DuolingoMobile","appTitle": "Duolingo: Language Lessons","country": "us","editorialId": "1825160725","heading": "APP OF THE DAY","title": "Make language practice a habit","description": "Learn something new every day.","style": "EditorialCard","image": "https://example.com/editorial.jpg","url": "https://apps.apple.com/us/iphone/story/id1825160725","recordType": "editorial"}
What data can you extract?
| Category | Complete field inventory |
|---|---|
| Record context | recordType, searchTerm, suggestion, rank, sourceAppId, sourceDeveloperId, chartCollection, chartCategory, chartRank, developerAppRank, similarityRank |
| App identity and content | appId, bundleId, title, url, description, icon, icon60, icon100, icon512, kind |
| Classification and compatibility | genres, genreIds, primaryGenre, primaryGenreId, contentRating, trackContentRating, languages, sizeBytes, formattedSize, minimumOsVersion, supportedDevices, features, advisories, isGameCenterEnabled, information, deviceRequirements |
| Release data | released, updated, releaseNotes, version, versionHistory |
| Pricing and monetization | price, formattedPrice, currency, free, inAppPurchases, name, priceText |
| Developer | developerId, developer, developerUrl, developerWebsite, sellerName |
| Ratings | score, ratingCount, currentVersionScore, currentVersionRatingCount, ratingsHistogram |
| Media | screenshots, ipadScreenshots, appleTvScreenshots, image |
| App Privacy | privacyDetails with privacyPolicyUrl; each privacy type has identifier, title, description, dataCategories, and purposes; categories have identifier, title, dataTypes; purposes have identifier, title, description |
| Reviews | includedReviews, reviewId, userName, userUrl, text, date, isEdited, thumbsUpCount, thumbsUpTotal, reviewSort, requestedReviewSort, reviewSource, appTitle, appUrl, appScore, appRatingCount |
| Availability | country, available plus localized title, url, price, formattedPrice, currency |
| Events | appEvents, eventId, subtitle, promotionType, badge, startDate, endDate, formattedDates |
| Editorial | featuredEditorial, editorialId, heading, style |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | Yes | search | search, details, reviews, charts, developer, similar, suggest, availability, iap, events, or editorial |
searchTerms | string[] | In search / suggest | ["photo editor"] | Keywords processed independently |
appIds | string[] | In app-target modes | [] | Numeric IDs, bundle IDs, or App Store URLs |
developerIds | string[] | In developer | [] | Numeric Apple developer IDs |
country | string | No | us | Two-letter App Store country controlling catalog and prices |
countries | string[] | In availability | [] | Regions checked independently; country is used when empty |
language | string | No | en-US | Locale such as en-US, de-DE, ja-JP, or en |
maxItems | integer | No | 50 | Maximum per search term, app, developer, or chart; 0 requests all source-exposed items; accepted range 0-500 |
maxConcurrency | integer | No | 5 | Independent terms, app IDs, developer IDs, or availability regions processed concurrently, from 1 to 20 |
includeReviews | boolean | No | false | Nest reviews inside details rows; every nested review is billed as one review event in addition to the app-detail event |
includePrivacy | boolean | No | true | Include privacy policy and structured App Privacy labels |
includeVersionHistory | boolean | No | true | Include embedded version-history entries |
includeRatingsHistogram | boolean | No | true | Include exact 1-star through 5-star counts |
includeIAP | boolean | No | true | Include displayed in-app purchases in details |
includeEvents | boolean | No | true | Include displayed app events in details |
reviewSort | string | No | mostRecent | mostRecent or mostHelpful |
reviewScore | integer | No | unset | Keep only a rating from 1 to 5 |
reviewsSince | string | No | unset | ISO date or timestamp lower bound |
chartCollection | string | No | topFree | topFree, topPaid, topGrossing, new, newFree, newPaid, topFreeIpad, topPaidIpad, topGrossingIpad, topFreeMac, topPaidMac, or topGrossingMac |
category | integer | No | unset | Optional Apple genre ID, for example 6014 for Games |
Use cases
App Store optimization and keyword research
Combine suggest and search to expand seed keywords, measure the apps Apple returns for each query, and track competitors occupying important discovery positions.
Competitive product and monetization intelligence
Use details, similar, developer, and iap to compare positioning, screenshots, releases, ratings distributions, device requirements, portfolios, and localized purchase prices.
Review and customer research
Collect rating-filtered reviews with parent-app metadata, then send the Dataset to a notebook, warehouse, or language model for topic, complaint, and sentiment analysis.
Ranking and launch monitoring
Schedule charts, availability, events, and editorial runs to observe rank changes, country launches, live-ops campaigns, and Apple featuring over time.
Privacy and compliance research
Compare the public App Privacy categories and policies disclosed across competing apps or across repeated snapshots.
Performance and cost
This Actor uses pay-per-event billing when that pricing model is enabled. Each saved row triggers the matching event: search-result, app-detail, review, chart-result, developer-app, similar-app, suggestion, availability-result, iap-item, app-event, or editorial-item. When includeReviews is enabled in details mode, the details row triggers one app-detail event and every review stored inside includedReviews triggers one additional review event. The Actor limits the nested review count before saving when the run is close to its maximum charge limit. Check the Actor's Pricing tab for the current per-event rates.
Details requests are heavier than basic app rows because they load the public product page. includeReviews adds review requests. Independent terms, app IDs, developer IDs, and availability app-country pairs run concurrently up to maxConcurrency. Pagination for one target remains sequential because each page depends on the previous response. Runtime also depends on Apple's response time, retries, input count, and source-controlled pagination. The Actor stops cleanly when an Apify maximum charge limit is reached.
No precise runtime or cost table is published here because repeatable production measurements depend on the final Store pricing and Apify run configuration.
API usage
The public username is not yet stored in this project. Replace YOUR_USERNAME with the final Apify account name:
curl -X POST \"https://api.apify.com/v2/acts/YOUR_USERNAME~apple-app-store-data-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "details","appIds": ["389801252", "com.spotify.client"],"country": "us","language": "en-US"}'
Use Apify schedules for recurring snapshots and webhooks for downstream processing. Dataset results work naturally with Google Sheets, Make, Zapier, n8n, Airbyte, Slack, databases, and data warehouses through Apify integrations or API exports.
The Output tab uses one unified Results view with all 94 top-level fields across every supported mode. Fields that do not apply to a row's recordType remain empty, so users never need to switch mode-specific tabs or open the automatic All fields view.
Best for / not for
Best for: ASO research, public competitive intelligence, App Store ranking monitoring, review analysis, localized pricing and availability audits, developer portfolio mapping, and Apple featuring research.
Not for: private Apple account data, authenticated purchase history, downloading IPA binaries, modifying App Store listings, bypassing paid content, or real-time streaming of every Store change.
Limits and good to know
- One mode runs at a time; arrays batch multiple terms, apps, developers, or countries.
maxItemsaccepts0-500, but Apple controls actual availability: search and developer lookup expose up to about 200; legacy charts up to 200; modern chart fallback up to 100; paginated reviews up to the Actor limit of 500; suggestions, similar apps, IAPs, events, editorial stories, and embedded review fallback return only what the page exposes.- Some legacy chart collections and category-filtered charts require a supported Apple storefront region. Top free, paid, and grossing charts have a country-based fallback where Apple offers it.
- App titles, descriptions, prices, rating counts, charts, availability, reviews, and some media can differ by country and language.
- Apple may temporarily rate-limit its paginated review source or return an empty RSS feed. The Actor falls back safely and identifies the source and actual ordering with
reviewSource,reviewSort, andrequestedReviewSort. - Search, chart, developer, and similar rows always contain the stable 44-field app object plus their mode context. Details always retains all enrichment keys even when a block is disabled or unavailable.
- Retries use exponential backoff for blocks, rate limits, transient HTTP responses, proxy failures, and network errors.
- A failed target is logged and skipped so valid inputs can still finish. If every operation fails, the Actor run fails instead of producing a misleading empty success.
- All production traffic is routed through Apify Proxy. Proxy setup is internal and no proxy field is shown in the input.
Frequently asked questions
What input should I provide?
For app-target modes use a numeric ID (389801252), bundle ID (com.burbn.instagram), or full App Store URL. Search and suggestion modes take keywords; developer mode takes numeric developer IDs.
How many results can I extract?
Set maxItems from 1 to 500, or 0 for everything exposed by the selected public source. The effective limits listed above are imposed by Apple and vary by mode.
Why are some fields empty?
Not every app has iPad or Apple TV screenshots, IAPs, events, editorial stories, privacy purposes, a developer website, or reviews in every storefront. Stable optional scalars use null; repeatable data uses [].
Can I process multiple inputs?
Yes. searchTerms, appIds, developerIds, and countries accept arrays. Limits apply independently as documented for the selected mode.
Can I schedule recurring runs?
Yes. Use Apify schedules for recurring jobs and webhooks to notify or trigger another system after completion.
Do I need an Apple account, API key, cookies, or proxy?
No Apple credentials or cookies are required. Production requests automatically use Apify Proxy, so users do not need to configure or supply a proxy.
Responsible use
This Actor extracts publicly available Apple App Store information. Users are responsible for complying with applicable laws, privacy regulations, contractual obligations, and Apple's terms.
Apple, App Store, iPhone, iPad, and related marks are trademarks of Apple Inc. This Actor is independent and is not affiliated with, endorsed by, or sponsored by Apple Inc.
Support
If you encounter a problem, create an issue in the Actor's Issues tab. Include the Apify run ID, selected mode, country/language, and a non-sensitive reproducible input. Do not publish tokens, credentials, or private proxy URLs.