Apple App Store API — Apps, Reviews, Ratings & ASO avatar

Apple App Store API — Apps, Reviews, Ratings & ASO

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Apple App Store API — Apps, Reviews, Ratings & ASO

Apple App Store API — Apps, Reviews, Ratings & ASO

Unofficial Apple App Store API in one Apify actor. 10 endpoints: app details, search, reviews, top charts, similar apps, developer profiles, autocomplete, rating histograms, privacy labels, version history. Pure HTTP, sub-3s cold start, batch & parallel. For iOS devs, ASO and AI tools.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

🍎 App Store Data API — Unofficial REST-style Scraper for Apple App Store

One actor. Ten endpoints. Sub-3-second cold start. The fastest, most complete unofficial Apple App Store API on Apify — built for iOS developers, ASO platforms, market researchers, AI agents, and anyone who needs structured data from the App Store without an App Store Connect account.

Search iOS apps by keyword, pull full app details, scrape reviews, get top charts by category, find similar apps, list a developer's portfolio, mine autocomplete suggestions for ASO keyword research, get Apple Privacy Labels, fetch rating histograms, and pull version release history — all from a single Apify actor.

No headless browser. No proxy required. No App Store Connect account. Pure HTTP. Just JSON.


🎯 What you can do with this Apple App Store scraper

You want to…Use modeTypical input
Find iOS apps matching a keywordsearch"query": "meditation"
Get every detail about a specific appapp"id": 324684580 or "appId": "com.spotify.client"
Pull user reviews (up to ~500 per app)reviews"id": 324684580, "maxResults": 500
See top free / paid / grossing iOS or iPad appslist"collection": "TOP_FREE_IOS"
Find competitors and similar appssimilar"id": 324684580
List every app by a developerdeveloper"devId": 324684580
Get ASO autocomplete keywordssuggest"query": "fit"
Get rating histogram (1-star to 5-star breakdown)ratings"id": 324684580
Read Apple Privacy Labelsprivacy"id": 324684580
Pull version release historyversionHistory"id": 324684580

Every result is tagged with a _mode field so you can run multiple modes back-to-back and slice the dataset afterwards.


🚀 Why iOS developers, ASO teams, and analysts pick this actor

Compared with other App Store scrapers on Apify

Most othersThis actor
Endpoints1–3 (reviews only, or details only)10 endpoints in one
Cold start8–15 seconds (headless browser)~3 seconds (pure HTTP)
Batch app lookupsSequential5× concurrent
Privacy Labels supportRareBuilt-in privacy mode
Rating histogramOften missingDedicated ratings mode
Version historyRareDedicated versionHistory mode
Output schemaSparse / undocumentedAll fields documented with examples
Dataset viewsNone4 pre-built views (Overview, Apps, Reviews, App details)

Compared with Apple's official App Store Connect API

Apple App Store Connect APIThis actor
Access scopeYour own apps onlyAny public app on App Store
Reviews APIApp Store Connect account + JWT auth requiredJust call it
Search / discoveryNot availableYes
Top chartsNot availableYes
Competitor analysisNot possibleYes (search, similar, developer modes)
Setup timeHours (developer account, certificates, JWT)Seconds

⚡ Quick start — three runs in 30 seconds

Run 1 — Search apps by keyword

{
"mode": "search",
"query": "meditation",
"country": "us",
"language": "en-us",
"maxResults": 50
}

Returns: 50 iOS apps matching "meditation" with title, icon, developer, rating, price, screenshots, genre, and direct App Store URL.

Run 2 — Get full details for one app

{
"mode": "app",
"id": 324684580,
"country": "us",
"language": "en-us"
}

Or by bundle ID:

{
"mode": "app",
"appId": "com.spotify.client",
"country": "us"
}

Returns: every public field — full description, all screenshots (iPhone, iPad, Apple TV variants), all-time and current-version ratings, version history, content rating, supported devices, supported languages, file size, required iOS version, developer name and website, and more.

Run 3 — Pull 500 newest reviews (App Store hard cap)

{
"mode": "reviews",
"id": 324684580,
"country": "us",
"language": "en-us",
"maxResults": 500,
"reviewSort": "RECENT"
}

Returns: Up to 500 reviews (10 pages × 50 — App Store's hard limit) with user name, star rating, review title, full text, date, and app version.


📖 All 10 endpoints in depth

Find iOS apps that match a search term — same results as App Store's search box.

{
"mode": "search",
"query": "spotify",
"country": "us",
"language": "en-us",
"maxResults": 50,
"idsOnly": false
}

Set idsOnly: true to return only numeric app IDs (much faster — useful when you'll enrich via app mode afterwards).

Use cases: keyword tracking for App Store ASO, finding competitors, niche discovery, building iOS app directories.


2. mode: "app" — Full app details

Pull every public field for one app — or many apps in parallel (5× concurrency). Accepts numeric id or bundle appId, individual or batched.

{
"mode": "app",
"ids": [324684580, 389801252, 686449807],
"country": "us",
"language": "en-us"
}

Or via bundle IDs:

{
"mode": "app",
"appIds": ["com.spotify.client", "com.burbn.instagram"],
"country": "us"
}

Returns 45+ fields including:

  • Identity: id, appId (bundle), title, description, url
  • Ratings: score, ratings, currentVersionScore, currentVersionRatings
  • Visual assets: icon, screenshots[], ipadScreenshots[], appletvScreenshots[]
  • Pricing: price, currency, free
  • Version: version, releaseDate, currentVersionReleaseDate, releaseNotes, versionHistory[]
  • Compatibility: requiredOsVersion, supportedDevices[], languages[], features[], size
  • Genre: primaryGenre, primaryGenreId, genres[], genreIds[]
  • Content: contentRating, advisoryRating
  • Developer: developer, developerId, developerUrl, developerWebsite

Use cases: iOS app intelligence dashboards, version monitoring, competitor pricing analysis, supported-device research.


3. mode: "reviews" — User reviews

Pull up to ~500 reviews per app — the App Store hard cap (10 pages × 50 reviews). The actor automatically iterates pages until it hits your maxResults or the cap.

{
"mode": "reviews",
"id": 324684580,
"country": "us",
"language": "en-us",
"maxResults": 500,
"reviewSort": "RECENT"
}

Sort options: RECENT (default), HELPFUL (most helpful first).

Use cases: review sentiment analysis, NPS-style monitoring, support-load forecasting, competitor weakness research.

⚠️ App Store limitation: Unlike Google Play, the iOS App Store caps reviews at roughly 500 per app per country via its public RSS feed. To pull more historical reviews, run the same reviews mode for multiple country storefronts and dedupe.


4. mode: "list" — Top charts

Pull top charts for any collection × category combination across iOS, iPad, and Mac App Stores.

{
"mode": "list",
"collection": "TOP_FREE_IOS",
"category": "GAMES_PUZZLE",
"maxResults": 100,
"country": "us",
"language": "en-us"
}

Collections:

  • iPhone/iOS: TOP_FREE_IOS, TOP_PAID_IOS, TOP_GROSSING_IOS, NEW_IOS, NEW_FREE_IOS, NEW_PAID_IOS
  • iPad: TOP_FREE_IPAD, TOP_PAID_IPAD, TOP_GROSSING_IPAD
  • Mac App Store: TOP_MAC, TOP_FREE_MAC, TOP_PAID_MAC, TOP_GROSSING_MAC

Common category codes: GAMES, BUSINESS, EDUCATION, FINANCE, SOCIAL_NETWORKING, MUSIC, PHOTO_AND_VIDEO, PRODUCTIVITY, SHOPPING, UTILITIES, TRAVEL, HEALTH_AND_FITNESS, LIFESTYLE, ENTERTAINMENT, NEWS, NAVIGATION, FOOD_AND_DRINK, WEATHER, REFERENCE, BOOKS, MEDICAL, SPORTS, MAGAZINES_AND_NEWSPAPERS.

Game sub-categories: GAMES_ACTION, GAMES_ADVENTURE, GAMES_ARCADE, GAMES_BOARD, GAMES_CARD, GAMES_CASINO, GAMES_DICE, GAMES_EDUCATIONAL, GAMES_FAMILY, GAMES_MUSIC, GAMES_PUZZLE, GAMES_RACING, GAMES_ROLE_PLAYING, GAMES_SIMULATION, GAMES_SPORTS, GAMES_STRATEGY, GAMES_TRIVIA, GAMES_WORD.

Use cases: chart-position tracking, category benchmarking, country-by-country expansion research, iPad-vs-iPhone analysis.


5. mode: "similar" — Apps similar to a given app

Get the "You Might Also Like" / similar-apps list that App Store shows on every app page.

{
"mode": "similar",
"id": 324684580,
"country": "us",
"language": "en-us"
}

Use cases: competitor mapping, market sizing for a niche, finding adjacent categories, ad-targeting lookalike audiences.


6. mode: "developer" — All apps by a publisher

List every app a developer has published. Requires numeric devId (artistId).

{
"mode": "developer",
"devId": 324684580,
"country": "us",
"language": "en-us"
}

The devId is the developerId field in any app record. You can also extract it from a developer's App Store URL: https://apps.apple.com/us/developer/spotify-ltd/id324684580.

Use cases: publisher portfolio analysis, M&A research, agency competitive monitoring.


7. mode: "suggest" — Autocomplete suggestions for ASO

Get the autocomplete suggestions App Store shows as you type — gold for ASO keyword research because they reflect actual user search behavior.

{
"mode": "suggest",
"query": "fit",
"country": "us",
"language": "en-us"
}

Returns: ranked list of suggested search terms (e.g. fitness apps, fitness tracker, fitness coach).

Use cases: ASO keyword discovery, long-tail keyword mining, title and subtitle optimization, paid Apple Search Ads keyword seeding.


8. mode: "ratings" — Rating histogram (iOS-exclusive)

Get the all-time rating breakdown (1-star to 5-star counts) for an app. Useful for sentiment distribution analysis.

{
"mode": "ratings",
"id": 324684580,
"country": "us"
}

Returns: ratings count plus histogram object like { "1": 240000, "2": 80000, "3": 150000, "4": 800000, "5": 12200000 }.

💡 You can pass bundle appId instead of numeric id — the actor will resolve it for you.

Use cases: sentiment distribution research, "is this app loved or polarizing?" analysis, competitor rating comparisons.


9. mode: "privacy" — Apple Privacy Labels (iOS-exclusive)

Get the "App Privacy" section that Apple requires every developer to fill in — what data the app collects, how it's used, whether it's linked to user identity, and tracking practices.

{
"mode": "privacy",
"id": 324684580,
"country": "us",
"language": "en-us"
}

Returns: structured privacy data with data[] (categories collected and their purposes), privacyTypes[] (high-level groupings like "Data Used to Track You" / "Data Linked to You" / "Data Not Linked to You"), and managePrivacyChoicesUrl.

Use cases: GDPR/CCPA compliance research, vendor security reviews, consumer privacy tools, "App Tracking Transparency" research, building privacy-comparison UIs.


10. mode: "versionHistory" — Version release history (iOS-exclusive)

Pull the full version-release history of an app, with release dates and release notes for every version.

{
"mode": "versionHistory",
"id": 324684580,
"country": "us",
"language": "en-us"
}

Returns: an array of version records, each with versionDisplay, releaseDate, and releaseNotes.

Use cases: update-cadence analysis, "what's changed in the last 6 months?" research, competitor release-velocity benchmarking, changelog mining for product trend analysis.


💡 Real-world use cases

iOS ASO platforms and App Store optimization tools

  • Keyword tracking — run search mode daily across your tracked keywords, compute rank changes
  • Suggest mining — feed suggest mode 1,000 seed terms, harvest tens of thousands of long-tail keywords
  • Competitor monitoring — run app mode on competitors weekly, alert on title / subtitle / description / screenshot changes
  • Top-chart trackinglist mode by country + category for market-share dashboards
  • Update cadenceversionHistory mode to see how often competitors ship updates

iOS app intelligence and analytics platforms

  • Bulk metadata ingestionapp mode in batch (pass hundreds of ids or appIds)
  • Review streamingreviews mode scheduled hourly, dedupe by review identifier
  • Rating distribution analysisratings mode for full histogram, not just average
  • Pricing intelligenceprice, free, currency fields tracked by country

AI agents and LLM-powered tools

  • ChatGPT / Claude plugins — wrap this actor as a tool so users can ask "what are the top 10 fitness apps in Japan?"
  • RAG pipelines — pull full app description + recent reviews + versionHistory for context-rich embeddings
  • Customer-support bots — fetch latest reviews + version + release notes to answer "what's broken in the new version?"

Market research and consultancies

  • Category benchmarking — top-100 free + grossing charts by country, joined to ratings histograms
  • Genre trend analysis — track which categories are growing by sampling top charts over time
  • Publisher M&A researchdeveloper mode to map a target's portfolio

Privacy, compliance, and security teams

  • Privacy Label auditsprivacy mode for vendor procurement and ATT (App Tracking Transparency) research
  • Building "privacy nutrition labels" UIs — surface what an app collects in a user-friendly format
  • GDPR / CCPA compliance research — bulk privacy-label extraction across procured iOS apps

Internal alerting and product monitoring

  • Your own app's reviews — schedule reviews mode hourly, alert on sudden 1-star spikes
  • Version driftapp mode + diff currentVersionReleaseDate between runs to detect new releases
  • Competitor releasesversionHistory mode on competitor IDs daily, alert on new entries

🔌 Integration — call this actor from your stack

REST API (curl)

curl -X POST \
"https://api.apify.com/v2/acts/YOUR-USERNAME~app-store-data-api/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "search",
"query": "meditation",
"maxResults": 50
}'

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const { defaultDatasetId } = await client
.actor('YOUR-USERNAME/app-store-data-api')
.call({
mode: 'reviews',
id: 324684580,
country: 'us',
maxResults: 500,
reviewSort: 'RECENT',
});
const { items } = await client.dataset(defaultDatasetId).listItems();
for (const review of items) {
console.log(`${review.score}${review.userName}: ${review.text}`);
}

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR-USERNAME/app-store-data-api").call(
run_input={
"mode": "app",
"ids": [324684580, 389801252],
"country": "us",
"language": "en-us",
}
)
for app in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{app['title']:40s}{app['score']:.1f} 💰 {app['price']} {app['currency']}")

No-code automation (n8n, Make, Zapier)

This actor works out-of-the-box with any tool that supports Apify's HTTP API. Trigger it on a schedule, push results to Google Sheets, Airtable, Notion, Slack, your warehouse — whatever you already use.


📊 Output format

Universal fields (on every item, every mode)

FieldTypeDescription
_modestringWhich endpoint produced this item — use it to filter when you mix modes
scrapedAtstring (ISO 8601)UTC timestamp of when this item was scraped

Pre-built dataset views

Switch between these in the Apify dataset UI without any post-processing:

  • Overview — universal columns across all modes (_mode, id, appId, title, developer, score, price, url)
  • App catalog — best for search, list, similar, developer modes (icon, title, developer, rating, price, genre)
  • Reviews — best for reviews mode (user, rating, title, text, date, version)
  • App details — wide view for app mode (40+ fields including ratings, pricing, version, supported devices, content rating)

Export formats

The Apify dataset exposes the data as JSON, CSV, XLSX (multi-sheet workbook), HTML, RSS (great for review monitoring), and JSONLines (for streaming pipelines).


⚡ Performance benchmarks

Measured on Apify default resources, us locale:

OperationTime
Cold start (container spin-up to first result)~3 seconds
search — 50 results2–4 seconds
app — single app full details1–2 seconds
app — batch of 100 apps (5× concurrency)20–30 seconds
reviews — 500 reviews (10 pages)8–12 seconds
list — top 100 from a chart2–4 seconds
similar — full list2–4 seconds
developer — full portfolio2–4 seconds
suggest — autocomplete<1 second
ratings1–2 seconds
privacy1–2 seconds
versionHistory1–2 seconds

Non-US storefronts may be slightly slower due to localization.


🌍 Country and language support

App Store has 115+ country storefronts. Pass any combination of country (ISO 3166-1 alpha-2) and language (BCP 47 with region, e.g. en-us, tr-tr, de-de, ja-jp, pt-br).

💡 Important: Unlike Google Play, App Store treats country as a storefront — the same numeric app id can exist in multiple storefronts with different titles, descriptions, screenshots, ratings, pricing, and even availability. Always specify the country relevant to your research.

Tested heavily in: us/en-us, gb/en-gb, de/de-de, fr/fr-fr, es/es-es, it/it-it, tr/tr-tr, jp/ja-jp, kr/ko-kr, br/pt-br, mx/es-mx, in/en-in, cn/zh-cn.


❓ FAQ

Is this an official Apple API?

No — this is an unofficial scraper. It uses public iTunes Search API and public App Store endpoints, the same way the App Store web pages do. No authentication, no App Store Connect account, no JWT.

Do I need an Apple Developer account or API key?

No. You only need an Apify account (free tier works for testing).

This actor accesses publicly available data from apps.apple.com and itunes.apple.com. As with any scraper, use it responsibly: respect rate limits, follow Apple's terms of service, and use the data for legitimate research, analytics, or product purposes. Bulk redistribution of Apple's data or commercial resale may require additional consideration — consult your legal counsel.

Should I use numeric id or bundle appId?

Both work for most modes. Numeric id (e.g. 324684580) is universally supported by every endpoint. Bundle appId (e.g. com.spotify.client) works for app, reviews, similar, ratings, privacy, and versionHistory — when used with ratings or privacy, the actor automatically resolves the bundle ID to the numeric ID first.

Why is the reviews cap only ~500?

This is an App Store limitation, not an actor limit. Apple's public review RSS feed returns up to 10 pages of ~50 reviews each. To pull more historical reviews, run the reviews mode for additional country storefronts and dedupe by review identifier.

How accurate is the rating data?

score is the floating-point all-time average rating (e.g. 4.8). ratings is the total count of all-time ratings. currentVersionScore and currentVersionRatings cover only the current app version. The ratings mode returns a full histogram with exact 1-star to 5-star counts.

Can I scrape paid app prices and in-app purchases?

Yes — price returns the numeric price in the requested country's currency. App Store doesn't expose granular IAP prices via the public API (those are visible only on the app page itself).

What about app screenshots?

app mode returns three separate arrays: screenshots (iPhone), ipadScreenshots (iPad), and appletvScreenshots (Apple TV). Each is a direct CDN URL — no auth required to fetch.

Can I run multiple modes in one actor run?

Each actor run executes one mode. To combine modes, call the actor multiple times via the API and join the datasets on id. Each result includes _mode so you can keep everything in a single combined dataset.

What's the difference between Google Play Data API and this one?

This actor is the Apple App Store counterpart of the Google Play Data API — same architecture, same Apify Store conventions, same pricing model. Run both together for cross-platform app intelligence.

How do I monitor my own iOS app's reviews?

Set up a scheduled Apify task with this config:

{
"mode": "reviews",
"id": YOUR_APP_ID,
"country": "us",
"reviewSort": "RECENT",
"maxResults": 100
}

Schedule it hourly. Use the Apify dataset's RSS export to feed into Slack, email, or a webhook.

Does this support proxy rotation?

The actor uses pure HTTP and works fine from Apify's default infrastructure without proxies. For very high-volume runs, you can configure proxy settings in the Apify run options.


🛠 Built on open source

This actor is built on top of app-store-scraper — the de-facto unofficial App Store library (MIT-licensed, actively maintained, sister project of google-play-scraper). The actor wraps the library with:

  • A unified mode-based interface so all 10 methods are accessible from one input form
  • Automatic pagination for reviews (1–10 pages)
  • Concurrent batch processing (5× workers) for app detail lookups
  • Automatic bundleId → numeric ID resolution for ratings and privacy modes
  • Retry logic with exponential backoff for transient errors
  • Output normalization (consistent price / free reconciliation)
  • A complete dataset schema with all fields documented
  • Production logging with per-mode and per-app progress

🆘 Support

Have an issue, a feature request, or a use case you'd like supported?

  • Bug reports & feature requests: open an Issue on this actor's page
  • Response time: typically within 24 hours
  • Custom modifications: available on request — contact via Apify Console

Keywords

app store scraper · app store api · unofficial app store api · apple app store scraper · ios app data api · app store reviews scraper · app store search api · app store top charts · apple privacy labels · ios app analytics · app store ratings histogram · app store version history · ios aso keyword research · app store metadata · app store autocomplete · ios app intelligence · app store competitor analysis · app store similar apps · ipad app charts · mac app store scraper