Appstore Scraper
Pricing
Pay per usage
Appstore Scraper
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
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 Case | Description |
|---|---|
| App Market Research | Analyze app categories, pricing trends, and market saturation |
| Competitor Analysis | Track competitor apps' ratings, reviews, and update frequency |
| ASO (App Store Optimization) | Research keywords, category rankings, and rating benchmarks |
| Investment Research | Evaluate app portfolios, revenue potential, and growth indicators |
| Lead Generation | Find app developers and companies by category for B2B outreach |
| Review Monitoring | Track user sentiment and feature requests across competing apps |
| Price Intelligence | Monitor pricing strategies across app categories and regions |
| Academic Research | Collect datasets for mobile app ecosystem studies |
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerm | String | Yes | — | Keyword or app name to search for (e.g., "fitness tracker", "Spotify") |
category | String | No | All | Filter by category: Games, Business, Education, Health & Fitness, etc. |
country | String | No | us | Two-letter ISO country code (us, gb, de, jp, br, etc.) |
maxResults | Integer | No | 50 | Maximum apps to scrape (1-500) |
includeReviews | Boolean | No | false | Also scrape user reviews (up to 50 per app) |
proxyConfiguration | Object | No | None | Apify 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:
| Field | Type | Description |
|---|---|---|
appName | String | App display name |
appId | String | Numeric Apple App ID |
bundleId | String | iOS bundle identifier (e.g., "com.spotify.client") |
developer | String | Developer/company name |
developerId | String | Numeric Apple developer ID |
developerUrl | String | Developer's App Store page URL |
developerWebsite | String | Developer's website URL |
price | String | Formatted price (e.g., "Free", "$4.99") |
priceNumeric | Number | Numeric price value |
currency | String | Currency code (e.g., "USD") |
isFree | Boolean | Whether the app is free |
rating | Number | Average user rating (0-5) |
ratingsCount | Number | Total number of ratings |
currentVersionRating | Number | Rating for the current version |
currentVersionRatingsCount | Number | Ratings count for current version |
reviewsCount | Number | Number of reviews scraped |
description | String | Full app description |
releaseNotes | String | Latest version release notes |
version | String | Current app version |
size | String | File size (human-readable, e.g., "145.2 MB") |
sizeBytes | Number | File size in bytes |
minimumOsVersion | String | Minimum required iOS version |
category | String | Primary category name |
primaryGenre | String | Primary genre |
genres | Array | All genre names |
contentRating | String | Age rating (e.g., "4+", "12+", "17+") |
iconUrl | String | App icon URL (512px) |
screenshots | Array | Screenshot image URLs |
appUrl | String | App Store listing URL |
supportUrl | String | App support page URL |
privacyUrl | String | Privacy policy URL |
releaseDate | String | Original release date (ISO 8601) |
lastUpdated | String | Last update date (ISO 8601) |
languages | Array | Supported language codes |
supportedDevices | Array | Compatible device list |
hasInAppPurchases | Boolean | Whether app has in-app purchases |
reviews | Array | User reviews (if includeReviews is enabled) |
country | String | App Store country code |
scrapedAt | String | Timestamp of data collection |
Review Object Fields (when includeReviews is enabled)
| Field | Type | Description |
|---|---|---|
title | String | Review title |
body | String | Review text |
rating | Number | Star rating (1-5) |
reviewer | String | Reviewer display name |
version | String | App version reviewed |
voteSum | Number | Net helpfulness votes |
voteCount | Number | Total votes on review |
Code Examples
Python
from apify_client import ApifyClientclient = 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 resultsfor 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:
-
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.
-
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.
-
iTunes Lookup API (Detail) — Fetches full metadata for individual apps by ID. Used to enrich partial results from RSS feeds or web scraping.
-
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.
-
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.
-
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
| Metric | Value |
|---|---|
| Speed | ~60-120 apps/minute (API), ~20-40 apps/minute (with web enrichment) |
| Cost | $0.004 per app scraped (Pay Per Event) |
| Max results | 500 per run |
| Reviews | Up to 50 per app (when enabled) |
| Proxy | Optional (recommended for 100+ results) |
Cost Examples
| Scenario | Apps | Reviews | Estimated Cost |
|---|---|---|---|
| Quick search | 50 | No | $0.20 |
| Category analysis | 200 | No | $0.80 |
| Competitor deep dive | 50 | Yes (50/app) | $0.20 |
| Full category scan | 500 | No | $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.
Related Actors
- Google Search Scraper — Scrape Google search results for app-related keywords
- Product Hunt Scraper — Discover trending apps and products on Product Hunt
- G2 Reviews Scraper — Scrape software reviews from G2 and Capterra
Support
For issues, feature requests, or questions, contact ricardo.yudi@gmail.com or open an issue on the actor page.