App Store Search, Lookup & Reviews Scraper
Pricing
from $0.49 / 1,000 results
App Store Search, Lookup & Reviews Scraper
Search the Apple App Store by keyword or look up apps by ID or URL, with pricing, ratings, screenshots, developer info, and optional customer reviews across any App Store country.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Nimbryxo-studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Features
Share
iOS App Store Deep Reviews & App Intelligence
Collect structured data from the iOS App Store: app metadata, customer reviews with developer replies, publisher catalogs, and top-chart rankings. Everything runs without an Apple account, cookie, API key, or proxy setup.
What this actor does
- Five modes:
search,lookup,reviews,developer,charts - Deep reviews: pages through Apple's own App Store review API at 20 reviews per request, well past the 500-review RSS limit, and falls back to RSS when needed
- Developer replies: kept when Apple exposes them for a review
- Rich app data: privacy labels, rating histogram, version history, subtitle, support URL, requirements, and chart position
- 62 storefronts: pricing, availability, charts, and review language follow the selected country
- Backward compatible: old saved inputs with
searchTerms,appIds,startUrls,maxResults,includeReviews, orreviewPagesstill run; the legacy fields are accepted in code and are no longer shown in the input form - No empty values: every record is cleaned recursively; fields Apple does not provide are omitted rather than returned as
null,"", or[]
Modes
| Mode | What it returns | Notes |
|---|---|---|
search | One row per app for each keyword | Up to 200 apps per term (Apple's cap), de-duplicated across terms, with searchTerm and searchRank |
lookup | One row per app | Accepts numeric IDs, bundle IDs, app URLs, and developer URLs; developer URLs expand to the publisher catalog |
reviews | One row per review | Deep pagination plus RSS enrichment for version, reviewer URL, and helpful votes |
developer | One row per app | Resolves a developer ID, developer URL, or publisher name; up to 200 apps per publisher |
charts | One row per chart entry | Top free, paid, grossing, iPad, and Mac charts, with chartPosition |
Output per app
Identity and storefront:
id,appId— numeric App Store IDbundleId,name,subtitleurl,sourceUrl— App Store pagecountry,language
Developer:
developer,developerId,developerUrl,developerWebsitesellerInfo— EU/EEA trader details when Apple publishes them
Pricing and ratings:
price,formattedPrice,currency,isFreerating,ratingCountcurrentVersionRating,currentVersionRatingCountratingHistogram— 1★ through 5★ counts
Content and release data:
description,releaseNotes,versionreleaseDate,lastUpdatedcategory,genres,contentRating,ageRating,advisoriesminimumOs,requirementsfileSize,size— bytesicon,screenshots,ipadScreenshotslanguages— iTunes language codeslanguageNames— full language names from the App Store detail page
Trust and depth:
privacy— App Store privacy labels as{type, category, dataTypes}rows, plus purposes where Apple supplies themprivacyPolicyUrl,supportUrlversionHistory— up to 25 releases, newest firstchartPosition,chartType— when Apple reports a current chart position, and for chart runssearchTerm,searchRank— search runs onlyrecordType: "app",scrapedAt
Rich fields appear only when includeDetails is on and Apple exposes the data. A field Apple genuinely lacks for a given app is omitted.
Output per review
id— Apple review IDappIdcountryrating— 1 to 5title,textauthor,authorUrldate— Apple's review timestampversion— reviewed release, when RSS exposes itvoteCount,voteSum— helpfulness votes, when RSS exposes themisEditeddeveloperResponse—{body, date}when the developer replied andincludeDeveloperResponsesis onsort,positionsourceUrl,recordType: "review",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search, lookup, reviews, developer, or charts |
searchTerms | array | ["calculator"] in the daily prefill | Keywords for search |
appIds | array | – | Numeric IDs, bundle IDs, app URLs, or developer URLs for lookup/reviews |
startUrls | array | – | App Store app or developer URLs for lookup/reviews |
developerId | string | – | Apple artist ID or developer URL for developer |
developerName | string | – | Publisher name to resolve for developer |
country | string | us | One of 62 App Store storefronts |
language | string | en-US | Storefront language |
maxItems | integer | 100 | Hard row cap for the whole run (1–5000) |
maxReviewsPerApp | integer | 200 | Review cap per app (1–50000) |
reviewSort | string | recent | recent or helpful |
includeDeveloperResponses | boolean | true | Keep developer replies when present |
includeDetails | boolean | true | Add privacy, version history, histogram, support URL, and other rich detail |
chartType | string | top-free | top-free, top-paid, top-grossing, top-free-ipad, top-paid-ipad, or top-free-mac |
proxyConfiguration | object | disabled | Optional proxy; the actor works without one |
The daily test prefill runs search for calculator in the US storefront, maxItems: 3, and includeDetails: false. That is three App Store search results from a single iTunes request.
Example: search with rich details
{"mode": "search","searchTerms": ["photo editor", "note taking"],"country": "us","maxItems": 50,"includeDetails": true}
Example: look up apps by ID, bundle ID, and URL
{"mode": "lookup","appIds": ["544007664", "com.google.ios.youtube"],"startUrls": [{"url": "https://apps.apple.com/gb/app/things-3/id904280696"}],"country": "gb"}
Example: deep reviews with developer replies
{"mode": "reviews","appIds": ["618783545"],"country": "us","maxReviewsPerApp": 2000,"reviewSort": "recent","includeDeveloperResponses": true}
Example: a developer's catalog
{"mode": "developer","developerId": "281956209","country": "us","maxItems": 200}
Example: top free chart
{"mode": "charts","chartType": "top-free","country": "jp","maxItems": 100}
What is available and what is not
- Search returns up to 200 apps per term. Apple does not paginate search results.
- RSS reviews are capped at 10 pages, 50 reviews per page, so 500 reviews per app and country.
- Deep reviews use Apple's same-origin App Store API at 20 reviews per request. Pagination stops when Apple's corpus ends (HTTP 404), when the per-app cap is reached, or when
maxItemsis reached. - Developer responses exist only on apps where the developer replied. They are not available for every review or every app.
- Written reviews are not the same as ratings.
ratingCountcounts star ratings; the actor reports only the review rows it actually collected. - Version, reviewer URL, and helpful votes come from the RSS feed and therefore cover at most the first 500 reviews per app and country.
- In-app purchase catalogs, autocomplete, and Apple TV screenshots are not exposed by the cookieless routes used here, so they are not emitted.
- Apple TV apps are outside this actor's scope; it reads iPhone, iPad, and Mac listings.
Reliability
- Requests to
apps.apple.comare serialized and throttled. HTTP 429 and 5xx responses retry with exponential backoff andRetry-Aftersupport. - If a rich detail request fails, the app still ships with its iTunes metadata and the run reports a warning.
- If every request is blocked or Apple is unavailable, the run fails with an explicit message instead of returning an empty dataset.
- Duplicate apps are removed by App Store ID. Duplicate reviews are removed by review ID.
- Partial runs keep the rows that succeeded and report how many warnings occurred.
FAQ
Do I need an Apple Developer account or API key? No. The actor reads Apple's public App Store listings, review feeds, and the same-origin web API used by the App Store website.
How do I find an app ID?
Open the app in a browser. The number after /id is the App Store ID, for example https://apps.apple.com/us/app/youtube/id544007664 gives 544007664.
Can I pass bundle IDs?
Yes. Put a bundle ID such as com.google.ios.youtube in appIds. Bundle IDs also work in lookup and reviews modes.
Why do some apps have fewer reviews than requested? Apple returns only the reviews that exist for that app in that storefront. The deep route can page far past the 500-review RSS limit for large apps, but a small app may have only a handful. RSS is capped at 500.
Why are developer replies missing?
Apple exposes a reply only when the developer actually wrote one. Apps with no reply history return no developerResponse field.
Why is version missing from a deep review?
The deep review API does not include the reviewed version. The actor fills it from RSS for the first 500 reviews; older reviews have no version.
Does the country change results? Yes. Country controls pricing and currency, app availability, chart contents, and the language of reviews.
Can I run several countries in one run? One country per run. Run the actor once per storefront and combine the datasets.
Is this affiliated with Apple? No. This is an independent third-party actor that reads publicly available App Store data. It is not affiliated with or endorsed by Apple Inc.
Use it as an API (server mode)
Need one answer right away instead of a batch job? Send the input as an HTTP request and the results come back in the response. There's no run to start and poll.
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://nimbryxo-studio--app-store-search-lookup-and-reviews-scraper.apify.actor/?mode=search&searchTerms=calculator&maxItems=3&includeDetails=false&includeDeveloperResponses=false"
Or POST the same input as JSON:
curl -X POST -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"mode": "search", "searchTerms": ["calculator"], "maxItems": 3, "includeDetails": false, "includeDeveloperResponses": false}' \"https://nimbryxo-studio--app-store-search-lookup-and-reviews-scraper.apify.actor/"
- The fields are the same as in the input above. With GET, repeat a parameter once for each value in a list.
- You get back a JSON array with the same records a normal run saves. They're saved to the run's dataset too.
- Each request is capped at 100 results and 4 minutes. For bigger jobs, start a normal run.
- The request runs in your own Apify account at the Actor's normal price (a start fee plus a price per result). The server shuts down after a minute with no requests.
- The Server tab on this page lists every parameter and lets you try a request from your browser.