Appstore Scraper avatar

Appstore Scraper

Pricing

Pay per usage

Go to Apify Store
Appstore Scraper

Appstore Scraper

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Apple App Store Scraper

Scrape Apple App Store data at scale. Extract app metadata, pricing, ratings, reviews, screenshots, developer info, and more for any search query, category, or country.

Built for market researchers, app developers, and data analysts who need structured App Store data without manual collection.

Key Features

  • iTunes Search API Integration — Fast, structured app discovery using Apple's official API
  • iTunes Lookup API Enrichment — Detailed metadata for every app (bundle ID, size, languages, devices)
  • Web Page Scraping — Parses apps.apple.com pages for data not available via API (screenshots, in-app purchases)
  • Review Extraction — Scrape up to 50 user reviews per app via Apple's RSS feed
  • Multi-Strategy Fallbacks — 4+ extraction strategies ensure maximum data completeness
  • Category Filtering — Filter by any of 25+ App Store categories
  • Global Coverage — Scrape any App Store country/region (100+ countries)
  • Top Charts Access — Discover trending apps via Apple's RSS feeds
  • Anti-Detection — Rotating user agents, random delays, header rotation
  • Pay Per Event — Only pay for results ($0.004 per app scraped)
  • Proxy Support — Residential proxy rotation for high-volume scrapes
  • JSON/CSV Export — Download results in any format via Apify dataset

Use Cases

Use CaseDescription
App Market ResearchAnalyze app categories, pricing trends, and market saturation
Competitor AnalysisTrack competitor apps' ratings, reviews, and update frequency
ASO (App Store Optimization)Research keywords, category rankings, and rating benchmarks
Investment ResearchEvaluate app portfolios, revenue potential, and growth indicators
Lead GenerationFind app developers and companies by category for B2B outreach
Review MonitoringTrack user sentiment and feature requests across competing apps
Price IntelligenceMonitor pricing strategies across app categories and regions
Academic ResearchCollect datasets for mobile app ecosystem studies

Input Parameters

ParameterTypeRequiredDefaultDescription
searchTermStringYesKeyword or app name to search for (e.g., "fitness tracker", "Spotify")
categoryStringNoAllFilter by category: Games, Business, Education, Health & Fitness, etc.
countryStringNousTwo-letter ISO country code (us, gb, de, jp, br, etc.)
maxResultsIntegerNo50Maximum apps to scrape (1-500)
includeReviewsBooleanNofalseAlso scrape user reviews (up to 50 per app)
proxyConfigurationObjectNoNoneApify proxy settings (residential recommended)

Supported Categories

Games, Business, Education, Entertainment, Finance, Food & Drink, Graphics & Design, Health & Fitness, Lifestyle, Medical, Music, Navigation, News, Photo & Video, Productivity, Reference, Shopping, Social Networking, Sports, Travel, Utilities, Weather, Developer Tools, Books, Magazines & Newspapers

Output Data Fields

Each scraped app includes the following fields:

FieldTypeDescription
appNameStringApp display name
appIdStringNumeric Apple App ID
bundleIdStringiOS bundle identifier (e.g., "com.spotify.client")
developerStringDeveloper/company name
developerIdStringNumeric Apple developer ID
developerUrlStringDeveloper's App Store page URL
developerWebsiteStringDeveloper's website URL
priceStringFormatted price (e.g., "Free", "$4.99")
priceNumericNumberNumeric price value
currencyStringCurrency code (e.g., "USD")
isFreeBooleanWhether the app is free
ratingNumberAverage user rating (0-5)
ratingsCountNumberTotal number of ratings
currentVersionRatingNumberRating for the current version
currentVersionRatingsCountNumberRatings count for current version
reviewsCountNumberNumber of reviews scraped
descriptionStringFull app description
releaseNotesStringLatest version release notes
versionStringCurrent app version
sizeStringFile size (human-readable, e.g., "145.2 MB")
sizeBytesNumberFile size in bytes
minimumOsVersionStringMinimum required iOS version
categoryStringPrimary category name
primaryGenreStringPrimary genre
genresArrayAll genre names
contentRatingStringAge rating (e.g., "4+", "12+", "17+")
iconUrlStringApp icon URL (512px)
screenshotsArrayScreenshot image URLs
appUrlStringApp Store listing URL
supportUrlStringApp support page URL
privacyUrlStringPrivacy policy URL
releaseDateStringOriginal release date (ISO 8601)
lastUpdatedStringLast update date (ISO 8601)
languagesArraySupported language codes
supportedDevicesArrayCompatible device list
hasInAppPurchasesBooleanWhether app has in-app purchases
reviewsArrayUser reviews (if includeReviews is enabled)
countryStringApp Store country code
scrapedAtStringTimestamp of data collection

Review Object Fields (when includeReviews is enabled)

FieldTypeDescription
titleStringReview title
bodyStringReview text
ratingNumberStar rating (1-5)
reviewerStringReviewer display name
versionStringApp version reviewed
voteSumNumberNet helpfulness votes
voteCountNumberTotal votes on review

Code Examples

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"searchTerm": "fitness tracker",
"category": "Health & Fitness",
"country": "us",
"maxResults": 100,
"includeReviews": True,
}
run = client.actor("sovereigntaylor/appstore-scraper").call(run_input=run_input)
# Iterate over results
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['appName']}{item['rating']}★ ({item['ratingsCount']} ratings) — {item['price']}")
if item.get("reviews"):
for review in item["reviews"][:3]:
print(f" Review: {review['title']} ({review['rating']}★)")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const input = {
searchTerm: 'photo editor',
category: 'Photo & Video',
country: 'us',
maxResults: 50,
includeReviews: false,
};
const run = await client.actor('sovereigntaylor/appstore-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const app of items) {
console.log(`${app.appName} by ${app.developer}${app.price}${app.rating}`);
}

cURL (API Direct Call)

curl "https://api.apify.com/v2/acts/sovereigntaylor~appstore-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"searchTerm": "weather app",
"country": "us",
"maxResults": 25
}'

Sample Output

{
"appName": "Spotify: Music and Podcasts",
"appId": "324684580",
"bundleId": "com.spotify.client",
"developer": "Spotify AB",
"developerId": "324684580",
"price": "Free",
"priceNumeric": 0,
"currency": "USD",
"isFree": true,
"rating": 4.8,
"ratingsCount": 12543210,
"description": "With Spotify, you can listen to music and play millions of songs and podcasts for free...",
"version": "8.9.14",
"size": "145.2 MB",
"category": "Music",
"contentRating": "12+",
"iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple.../512x512bb.jpg",
"screenshots": ["https://is1-ssl.mzstatic.com/image/thumb/..."],
"appUrl": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580",
"releaseDate": "2011-07-14T00:00:00.000Z",
"lastUpdated": "2026-02-28T00:00:00.000Z",
"languages": ["EN", "ES", "FR", "DE", "JA", "PT"],
"hasInAppPurchases": true,
"country": "US",
"scrapedAt": "2026-03-02T12:00:00.000Z"
}

Extraction Strategies

The scraper uses multiple strategies to ensure comprehensive data extraction:

  1. iTunes Search API (Primary) — Searches Apple's public API for apps matching the keyword. Returns structured JSON with up to 200 results per query. Fastest and most reliable source.

  2. App Store Web Scraping (Enrichment) — Visits apps.apple.com pages to extract data not available via API, such as detailed screenshots, in-app purchase lists, and visual layout data.

  3. iTunes Lookup API (Detail) — Fetches full metadata for individual apps by ID. Used to enrich partial results from RSS feeds or web scraping.

  4. Meta Tags / Open Graph (Fallback) — Extracts basic app info from HTML meta tags when other strategies fail. Provides name, description, and icon as a last resort.

  5. RSS Top Charts (Discovery) — Accesses Apple's marketing RSS feeds for top free/paid apps by category. Useful for discovering popular apps when search results are insufficient.

  6. RSS Reviews Feed (Reviews) — Fetches user reviews via Apple's public RSS review feed. Provides review text, rating, reviewer name, and version info.

Performance & Pricing

MetricValue
Speed~60-120 apps/minute (API), ~20-40 apps/minute (with web enrichment)
Cost$0.004 per app scraped (Pay Per Event)
Max results500 per run
ReviewsUp to 50 per app (when enabled)
ProxyOptional (recommended for 100+ results)

Cost Examples

ScenarioAppsReviewsEstimated Cost
Quick search50No$0.20
Category analysis200No$0.80
Competitor deep dive50Yes (50/app)$0.20
Full category scan500No$2.00

FAQ

Q: Does this scraper require an Apple Developer account? A: No. The scraper uses Apple's public iTunes Search API, public web pages, and RSS feeds. No authentication or API keys needed.

Q: Can I scrape apps from different countries? A: Yes. Set the country parameter to any two-letter ISO code (e.g., "gb" for UK, "de" for Germany, "jp" for Japan). Pricing and availability vary by region.

Q: Why am I getting fewer results than maxResults? A: Apple's iTunes Search API returns a maximum of 200 results per query. For niche searches, there may be fewer matching apps. The scraper runs supplemental queries to fill the gap, but some searches naturally have limited results.

Q: Are reviews always available? A: Review availability depends on the app and region. Some apps may have no reviews in certain countries, and Apple's RSS review feed may not include all reviews.

Q: How often is the data updated? A: Each run fetches live data from Apple's servers. Ratings, reviews, and rankings change frequently, so run the scraper periodically for fresh data.

Q: Can I scrape a specific app by ID or URL? A: The scraper is designed for keyword search. To look up a specific app, use its name as the search term — the iTunes API will match it precisely.

Q: Is this scraper compliant with Apple's terms? A: This scraper accesses publicly available data through Apple's public APIs and web pages. It implements respectful rate limiting and does not bypass any access controls.

Support

For issues, feature requests, or questions, contact ricardo.yudi@gmail.com or open an issue on the actor page.