Apple App Store Scraper
Pricing
Pay per event
Apple App Store Scraper
Scrape Apple App Store app data using the public iTunes Search API. Search by keyword, look up apps by ID, and browse top charts. Extracts name, developer, ratings, price, genres, screenshots, and more. No auth required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrapes Apple App Store app data using the public iTunes Search API. Search by keyword, look up apps by ID, or pull top chart rankings. Returns 30+ fields per app — name, developer, ratings, price, genres, screenshots, version history, and more.
No authentication required. No browser needed. The iTunes API is public, fast, and returns everything in JSON.
What It Does
Three modes, pick the one that fits:
- Search — query by keyword across the entire App Store. Paginated; handles multi-page result sets automatically.
- Lookup — fetch specific apps by their iTunes app ID. Useful when you already know what you want.
- Charts — pull top free, paid, or grossing app rankings for any country.
All modes support country targeting via the country field, so you can pull data for the US, Japan, Germany, or anywhere else Apple sells apps.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | Operation mode: search, lookup, or charts |
searchTerms | array | — | Keywords to search. Each term runs as a separate query. Used with mode=search. |
appIds | array | — | iTunes app IDs to look up directly. Used with mode=lookup. |
country | string | us | ISO 3166-1 alpha-2 country code (e.g. us, gb, jp, de). |
chartType | string | topfreeapplications | Chart to fetch: topfreeapplications, toppaidapplications, topgrossingapplications, topfreeipadapplications, toppaidipadapplications. |
maxResults | integer | 50 | Max results per query (1-200). The API caps individual requests at 200. |
maxItems | integer | 0 | Total result cap across all queries. Set to 0 for no limit. |
Example: search
{"mode": "search","searchTerms": ["photo editor", "productivity"],"country": "us","maxResults": 50}
Example: lookup by app ID
{"mode": "lookup","appIds": ["333903271", "544007664"],"country": "us"}
Example: top charts
{"mode": "charts","chartType": "topfreeapplications","country": "jp","maxResults": 100}
Output
One record per app. Most scrapers give you a handful of fields. This one gives you everything the iTunes API has.
| Field | Type | Description |
|---|---|---|
appId | integer | iTunes app ID (numeric) |
bundleId | string | App bundle identifier (e.g. com.example.myapp) |
name | string | App name |
url | string | App Store URL |
developer | string | Developer / seller name |
developerId | integer | Developer iTunes artist ID |
developerUrl | string | Developer App Store URL |
developerWebsite | string | Developer's external website URL |
icon | string | App icon URL (512x512) |
price | number | App price in the queried country's currency |
formattedPrice | string | Human-readable price string (e.g. Free, $0.99) |
currency | string | Currency code (e.g. USD) |
primaryGenre | string | Primary genre / category name |
primaryGenreId | integer | Primary genre ID |
genres | string | All genre names, comma-separated |
genreIds | string | All genre IDs, comma-separated |
rating | number | Average user rating (all versions) |
ratingCount | integer | Total number of ratings (all versions) |
ratingCurrentVersion | number | Average rating for current version |
ratingCountCurrentVersion | integer | Number of ratings for current version |
version | string | Current app version string |
releaseDate | string | Original release date (ISO-8601) |
currentVersionReleaseDate | string | Current version release date (ISO-8601) |
releaseNotes | string | What's new in the current version |
description | string | Full app description |
contentRating | string | Content advisory rating (e.g. 4+, 17+) |
minimumOsVersion | string | Minimum iOS/macOS version required |
fileSizeBytes | integer | App file size in bytes |
screenshotUrls | string | iPhone screenshot URLs, pipe-separated |
ipadScreenshotUrls | string | iPad screenshot URLs, pipe-separated |
supportedDevices | integer | Number of supported device types |
languages | string | Supported language codes, comma-separated |
country | string | App Store country code queried |
scrapedAt | string | ISO-8601 timestamp when the record was scraped |
Pricing
Pay-per-event. $0.10 to start a run, $0.001 per record saved.
Notes
- The iTunes API enforces a 200-result cap per request. For large keyword searches, the scraper pages through automatically using offset/limit pagination.
- Chart data from the RSS feed contains fewer fields than search/lookup results. The trade-off: charts are fast and single-request.
- Country targeting affects search rankings, pricing (currency), and available apps. Not all apps are available in all regions.
- The iTunes API has undocumented rate limits. The scraper uses a 200ms courtesy delay between requests and limits concurrency to 3.
Powered by OrbTop — Apify actor infrastructure.