App Store Search, Lookup & Reviews Scraper avatar

App Store Search, Lookup & Reviews Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
App Store Search, Lookup & Reviews Scraper

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

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Features

Limited permissionsSingle-tenantServer interface

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, or reviewPages still 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

ModeWhat it returnsNotes
searchOne row per app for each keywordUp to 200 apps per term (Apple's cap), de-duplicated across terms, with searchTerm and searchRank
lookupOne row per appAccepts numeric IDs, bundle IDs, app URLs, and developer URLs; developer URLs expand to the publisher catalog
reviewsOne row per reviewDeep pagination plus RSS enrichment for version, reviewer URL, and helpful votes
developerOne row per appResolves a developer ID, developer URL, or publisher name; up to 200 apps per publisher
chartsOne row per chart entryTop free, paid, grossing, iPad, and Mac charts, with chartPosition

Output per app

Identity and storefront:

  • id, appId — numeric App Store ID
  • bundleId, name, subtitle
  • url, sourceUrl — App Store page
  • country, language

Developer:

  • developer, developerId, developerUrl, developerWebsite
  • sellerInfo — EU/EEA trader details when Apple publishes them

Pricing and ratings:

  • price, formattedPrice, currency, isFree
  • rating, ratingCount
  • currentVersionRating, currentVersionRatingCount
  • ratingHistogram — 1★ through 5★ counts

Content and release data:

  • description, releaseNotes, version
  • releaseDate, lastUpdated
  • category, genres, contentRating, ageRating, advisories
  • minimumOs, requirements
  • fileSize, size — bytes
  • icon, screenshots, ipadScreenshots
  • languages — iTunes language codes
  • languageNames — 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 them
  • privacyPolicyUrl, supportUrl
  • versionHistory — up to 25 releases, newest first
  • chartPosition, chartType — when Apple reports a current chart position, and for chart runs
  • searchTerm, searchRank — search runs only
  • recordType: "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 ID
  • appId
  • country
  • rating — 1 to 5
  • title, text
  • author, authorUrl
  • date — Apple's review timestamp
  • version — reviewed release, when RSS exposes it
  • voteCount, voteSum — helpfulness votes, when RSS exposes them
  • isEdited
  • developerResponse — {body, date} when the developer replied and includeDeveloperResponses is on
  • sort, position
  • sourceUrl, recordType: "review", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch, lookup, reviews, developer, or charts
searchTermsarray["calculator"] in the daily prefillKeywords for search
appIdsarray–Numeric IDs, bundle IDs, app URLs, or developer URLs for lookup/reviews
startUrlsarray–App Store app or developer URLs for lookup/reviews
developerIdstring–Apple artist ID or developer URL for developer
developerNamestring–Publisher name to resolve for developer
countrystringusOne of 62 App Store storefronts
languagestringen-USStorefront language
maxItemsinteger100Hard row cap for the whole run (1–5000)
maxReviewsPerAppinteger200Review cap per app (1–50000)
reviewSortstringrecentrecent or helpful
includeDeveloperResponsesbooleantrueKeep developer replies when present
includeDetailsbooleantrueAdd privacy, version history, histogram, support URL, and other rich detail
chartTypestringtop-freetop-free, top-paid, top-grossing, top-free-ipad, top-paid-ipad, or top-free-mac
proxyConfigurationobjectdisabledOptional 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 maxItems is 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. ratingCount counts 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.com are serialized and throttled. HTTP 429 and 5xx responses retry with exponential backoff and Retry-After support.
  • 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.