This repository is documentation only. The scraper itself runs as a hosted Actor on the Apify platform — no setup, no servers, no code to maintain.
Scrape the Apple App Store — app details, user reviews, rating histograms, top charts, similar apps, developer catalogs, ASO keyword suggestions, Apple Privacy Labels and full version history — from one Actor. The App Store Data API returns clean, structured JSON from any country storefront with no API key, no App Store Connect account, and no login. Ten App Store endpoints share a single input form, every result is tagged with a _mode field, and a single run can return thousands of apps, reviews and keywords.
Whether you need an iOS app scraper, an App Store reviews scraper, an ASO keyword tool, or an unofficial Apple App Store API alternative, this Actor covers the whole surface in one place — pick a mode, fill the fields it needs, and export to JSON, CSV or Excel.
Pick a mode and the input form shows only the fields it needs:
| Mode | What it returns |
|---|---|
search |
Keyword search across the App Store catalog (most common) |
app |
Full details for one or more apps (by numeric id or bundle appId) |
reviews |
User reviews with reviewer, star score, text, date and app version |
list |
Top charts — Top Free / Paid / Grossing / New — by category & device |
similar |
The "You Might Also Like" graph for any app |
developer |
Every app published by a developer (numeric artistId) |
suggest |
App Store autocomplete suggestions — great for ASO keyword research |
ratings |
Rating histogram (1★–5★ breakdown + total rating count) |
privacy |
Apple Privacy Labels — data collected, tracking and purposes |
versionHistory |
The full version-release / release-notes timeline of an app |
Every row carries _mode and scrapedAt, so you can mix modes across runs and keep a combined dataset easy to filter and pivot.
The app mode returns the widest record; every other mode returns the subset relevant to it. Real fields include:
- Identity —
id(numeric App Store ID),appId(bundle ID),title,url,description - Media —
icon,screenshots,ipadScreenshots,appletvScreenshots - Publisher —
developer,developerId,developerUrl,developerWebsite - Ratings —
score,reviews,currentVersionScore,currentVersionReviews, plus thehistogram/ratingsbreakdown inratingsmode - Monetization —
price,currency,free - Taxonomy —
primaryGenre,primaryGenreId,genres,genreIds,contentRating - Technical —
requiredOsVersion,supportedDevices,languages,size(bytes) - Versioning —
version,released,updated,currentVersionReleaseDate,releaseNotes,versionHistory - Reviews mode —
reviewId,userName,score,title,text,date,version - Suggest mode —
term,position - Privacy mode —
data,privacyTypes,managePrivacyChoicesUrl - Every row —
_mode,scrapedAt
- ASO & App Store Optimization — rank keywords with
search, mine long-tail terms withsuggest, and track competitor titles, ratings and version changes over time. - App market intelligence — bulk-ingest
appdetails, country top charts and rating histograms into dashboards and BI tools. - Review monitoring & sentiment — pull reviews for your app or competitors, alert on 1-star spikes, and feed NPS / sentiment models.
- Competitor discovery — expand the
similargraph and enumerate a rival's entire catalog withdevelopermode. - Privacy & compliance research — extract Apple Privacy Labels for GDPR / CCPA vendor reviews and App Tracking Transparency analysis.
- AI agents & RAG — wrap the Actor as a tool so an LLM can answer "what are the top fitness apps in Japan?" or embed app descriptions and reviews.
You need a free Apify account and (for the CLI / API methods) your API token from Settings → Integrations.
- Open the Actor: apify.com/logiover/app-store-data-api
- Click Try for free.
- Pick a Mode and fill the fields it highlights (e.g. a
queryforsearch). - Click Start, then export the results from the Output tab.
npm install -g apify-cli
apify login
# Search the US App Store for "meditation" apps:
apify call logiover/app-store-data-api --input='{
"mode": "search",
"query": "meditation",
"country": "us",
"maxResults": 50
}'curl -X POST "https://api.apify.com/v2/acts/logiover~app-store-data-api/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "reviews",
"id": 324684580,
"country": "us",
"reviewSort": "RECENT",
"maxResults": 200
}'import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover/app-store-data-api').call({
mode: 'list',
collection: 'TOP_FREE_IOS',
category: 'GAMES',
country: 'jp',
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/app-store-data-api").call(run_input={
"mode": "privacy",
"appId": "com.spotify.client",
"country": "us",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)More detailed, copy-pasteable recipes live in
examples/: CLI · API / cURL · JavaScript · Python.
Every run needs a mode; the remaining fields depend on which mode you choose. All are optional beyond the mode's own requirements.
| Field | Type | Description |
|---|---|---|
mode |
string (dropdown) | Which App Store endpoint to call: search, app, reviews, list, similar, developer, suggest, ratings, privacy, versionHistory. Default search. |
id |
integer | Numeric App Store ID (digits after id in an App Store URL, e.g. 324684580). Used by app, reviews, similar, ratings, privacy, versionHistory. |
ids |
array | Numeric App Store IDs for batch operations (adds to id). |
appId |
string | Reverse-DNS bundle ID, e.g. com.spotify.client. Alternative to numeric id. |
appIds |
array | Bundle IDs for batch operations. |
query |
string | Keyword for search mode, or partial term for suggest autocomplete. |
devId |
integer | Numeric developer artistId for developer mode. |
collection |
string (dropdown) | Top chart for list mode: TOP_FREE_IOS, TOP_PAID_IOS, TOP_GROSSING_IOS, NEW_IOS, plus iPad and Mac variants. |
category |
string (dropdown) | Optional category filter for list mode (GAMES, BUSINESS, SOCIAL_NETWORKING, HEALTH_AND_FITNESS, game sub-categories, etc.). |
device |
string (dropdown) | Optional device class: IPAD, MAC or ALL. |
reviewSort |
string (dropdown) | Review order for reviews mode: RECENT or HELPFUL. |
country |
string (dropdown) | App Store storefront (ISO 3166-1 alpha-2), e.g. us, gb, de, jp, tr. 50+ storefronts. Default us. |
language |
string (dropdown) | BCP 47 language + region, e.g. en-us, de-de, ja-jp. Affects localized title, description and screenshots. Default en-us. |
maxResults |
integer | Max results. For reviews it is per-app (App Store cap ≈ 500); for list/search/similar/developer it is overall (cap ≈ 200). Default 100. |
idsOnly |
boolean | For search mode: return only numeric app IDs (much faster) for bulk pipelines you enrich later via app mode. |
Numeric
idvs bundleappId: either works for most modes. Numericidis supported everywhere; bundleappIdworks forapp,reviews,similar,ratings,privacy,versionHistory. Forratingsandprivacythe Actor resolves the bundle ID to the numeric ID automatically. Empty / broad inputs still return plenty of data.
One row per result, tagged with _mode and scrapedAt. A trimmed app-mode sample record:
{
"_mode": "app",
"id": 324684580,
"appId": "com.spotify.client",
"title": "Spotify: Music and Podcasts",
"url": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580",
"description": "Spotify is the best way to listen to music and podcasts…",
"icon": "https://is1-ssl.mzstatic.com/image/thumb/…/512x512bb.jpg",
"developer": "Spotify",
"developerId": 324684583,
"developerUrl": "https://apps.apple.com/us/developer/spotify/id324684583",
"developerWebsite": "https://www.spotify.com",
"score": 4.79,
"reviews": 29841203,
"currentVersionScore": 4.79,
"currentVersionReviews": 29841203,
"price": 0,
"currency": "USD",
"free": true,
"primaryGenre": "Music",
"primaryGenreId": 6011,
"genres": ["Music", "Entertainment"],
"genreIds": ["6011", "6016"],
"contentRating": "4+",
"requiredOsVersion": "13.0",
"size": "289538048",
"version": "9.0.10",
"released": "2011-07-14T02:27:33Z",
"updated": "2026-07-02T18:03:10Z",
"releaseNotes": "We're always making changes and improvements to Spotify…",
"screenshots": ["https://…/1.jpg", "https://…/2.jpg"],
"scrapedAt": "2026-07-06T12:00:00Z"
}A reviews-mode row instead looks like:
{
"_mode": "reviews",
"id": 324684580,
"reviewId": "10394857612",
"userName": "musiclover99",
"score": 5,
"title": "Best music app",
"text": "Been using it for years, the recommendations keep getting better…",
"date": "2026-07-01T09:14:00Z",
"version": "9.0.10",
"scrapedAt": "2026-07-06T12:00:00Z"
}Because this runs on Apify, you can wire the App Store Data API into the rest of your stack:
- Schedules — run
reviewsdaily orlistweekly to snapshot rankings and sentiment over time. - Webhooks — trigger a downstream service the moment a run finishes.
- Google Sheets / Amazon S3 / databases — push results with Apify's storage integrations.
- Zapier, Make, n8n, Pipedream — connect the Actor to thousands of apps for no-code automation.
- Apify API & MCP — call the Actor from your own backend, or expose it as a tool for AI agents.
Download any run's dataset as CSV, JSON, JSONL (JSON Lines), Excel (XLSX), HTML, RSS or XML, or pull it programmatically via the Apify API. Four pre-built dataset views (Overview, App catalog, Reviews, App details) slice the data with no post-processing.
Apple exposes public apps.apple.com and iTunes endpoints, but there is no official, fully-featured App Store data API for third-party analytics. This Actor is the practical App Store API alternative: it returns structured JSON across ten endpoints with no App Store Connect account and no API key.
Pick reviews mode, set the app id (or bundle appId) and a country, choose RECENT or HELPFUL, and run. You get reviewer name, star score, title, full text, date and app version — no login, no key.
Use search mode to rank keywords, then suggest mode to mine long-tail App Store autocomplete terms. Export both as CSV or JSON to build an ASO keyword map.
Two App Store caps apply: reviews returns up to ~500 per app per storefront (10 pages × ~50), and list/search/similar/developer return up to ~200 apps. To gather more reviews, run reviews across additional country storefronts and dedupe. A single run still returns thousands of records across modes.
Either works for most modes. Numeric id (e.g. 324684580) is supported everywhere; bundle appId (e.g. com.spotify.client) works for app, reviews, similar, ratings, privacy, versionHistory. For ratings and privacy the bundle ID is resolved automatically.
Yes. Set the country code (us, gb, de, jp, tr, and 45+ more) to pull storefront-specific pricing, ratings, screenshots and top charts — the same iOS app can differ per region.
Yes. privacy mode extracts each app's Apple Privacy Labels — data collected, tracking and purposes — for GDPR, CCPA and App Tracking Transparency research.
Run any mode, then export the dataset as CSV, JSON, Excel (XLSX), HTML, RSS or JSONL from the run page, or pull it via the Apify API.
Each run executes one mode. To combine modes, call the Actor multiple times and join the datasets on id. Every row carries _mode, so mixed datasets stay easy to filter.
The Actor collects only publicly available data from apps.apple.com and public iTunes endpoints. You are responsible for using the data in compliance with Apple's terms and applicable laws such as GDPR and CCPA.
No. The Actor runs on Apify's infrastructure. This repo is documentation only — you interact with the hosted Actor via the Console, CLI, API or client libraries.
- 🤖 Google Play Data API — the Android counterpart: Google Play app details, reviews, charts & data.
- ⭐ App Reviews Scraper — focused App Store & Google Play review extraction at scale.
- 📊 Similarweb Scraper — website traffic & competitive analytics.
👉 Browse all logiover scrapers on Apify Store — 180+ actors across app stores, ecommerce, jobs, crypto, social media & B2B data.
📄 Documentation only — the Actor runs on the Apify platform, not from this repository.
Licensed under the MIT License · © 2026 logiover