Skip to content

logiover/app-store-data-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

App Store Scraper — iOS App Data, Reviews, Ratings & ASO API (No API Key)

Apify Actor Run on Apify No API key Pay per result Export

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.


🧭 Ten App Store endpoints in one Actor

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.

📦 What you get (output fields)

The app mode returns the widest record; every other mode returns the subset relevant to it. Real fields include:

  • Identityid (numeric App Store ID), appId (bundle ID), title, url, description
  • Mediaicon, screenshots, ipadScreenshots, appletvScreenshots
  • Publisherdeveloper, developerId, developerUrl, developerWebsite
  • Ratingsscore, reviews, currentVersionScore, currentVersionReviews, plus the histogram / ratings breakdown in ratings mode
  • Monetizationprice, currency, free
  • TaxonomyprimaryGenre, primaryGenreId, genres, genreIds, contentRating
  • TechnicalrequiredOsVersion, supportedDevices, languages, size (bytes)
  • Versioningversion, released, updated, currentVersionReleaseDate, releaseNotes, versionHistory
  • Reviews modereviewId, userName, score, title, text, date, version
  • Suggest modeterm, position
  • Privacy modedata, privacyTypes, managePrivacyChoicesUrl
  • Every row_mode, scrapedAt

💡 Use cases

  • ASO & App Store Optimization — rank keywords with search, mine long-tail terms with suggest, and track competitor titles, ratings and version changes over time.
  • App market intelligence — bulk-ingest app details, 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 similar graph and enumerate a rival's entire catalog with developer mode.
  • 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.

🚀 Quick start

You need a free Apify account and (for the CLI / API methods) your API token from Settings → Integrations.

1. Apify Console (no code)

  1. Open the Actor: apify.com/logiover/app-store-data-api
  2. Click Try for free.
  3. Pick a Mode and fill the fields it highlights (e.g. a query for search).
  4. Click Start, then export the results from the Output tab.

2. Apify CLI

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
}'

3. API / cURL

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
  }'

4. apify-client (JavaScript)

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);

5. apify-client (Python)

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.

📥 Input

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 id vs bundle appId: either works for most modes. Numeric id is supported everywhere; bundle appId works for app, reviews, similar, ratings, privacy, versionHistory. For ratings and privacy the Actor resolves the bundle ID to the numeric ID automatically. Empty / broad inputs still return plenty of data.

📤 Output

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"
}

🔌 Integrations & automation

Because this runs on Apify, you can wire the App Store Data API into the rest of your stack:

  • Schedules — run reviews daily or list weekly 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.

📦 Export formats

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.

❓ FAQ

Is there a free Apple App Store API?

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.

How do I scrape App Store reviews without an 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.

How do I do App Store keyword research for ASO?

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.

How many reviews / apps can I get?

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.

Should I use the numeric id or the bundle appId?

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.

Can I get App Store data for a specific country storefront?

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.

Does it return Apple Privacy Labels?

Yes. privacy mode extracts each app's Apple Privacy Labels — data collected, tracking and purposes — for GDPR, CCPA and App Tracking Transparency research.

How do I export App Store data to Excel or CSV?

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.

Can I run several modes in one run?

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.

Is it legal to scrape the App Store?

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.

Do I need to install or host anything?

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.

🔗 Related actors by logiover

👉 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. ▶️ Run it: apify.com/logiover/app-store-data-api

Licensed under the MIT License · © 2026 logiover

About

Apple App Store scraper API — app details, reviews, ratings, top charts, ASO keywords, privacy labels & version history. No API key.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors