A powerful App Store scraper that pulls detailed metadata, media information, and comprehensive user reviews from iTunes and the Apple App Store. Designed to overcome the lack of official APIs, it automates large-scale data extraction with speed and precision.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for App Store Data Extractor - Scrape reviews too! you've just found your team — Let's Chat. 👆👆
This project provides a fast and reliable scraper for extracting Apple App Store and iTunes data, including app details, movies, podcasts, and user reviews. It solves the problem of Apple not offering a public, flexible API for developers, analysts, and researchers who need structured App Store data. It is ideal for data analysts, competitive researchers, marketers, and developers who need accurate App Store intelligence.
- Retrieve detailed media information from apps, movies, music, podcasts, and more.
- Extract unlimited user reviews with pagination support.
- Search by keyword, filters, or lookup by specific IDs.
- Supports country-level and media-type targeting.
- Optimized for high-speed scraping with low compute consumption.
| Feature | Description |
|---|---|
| Keyword Search | Search for any keyword and retrieve matching App Store or iTunes items. |
| Reviews Extraction | Fetch unlimited paginated reviews with user metadata and ratings. |
| Multiple Media Types | Scrape apps, movies, podcasts, songs, and more. |
| URL Lookup | Extract details directly from App Store/iTunes URLs. |
| Filtered Scraping | Target by country, media type, keyword, or combinations. |
| Multi-ID Lookup | Query multiple items or competitors in a single run. |
| Custom Mapping | Transform each result with your own custom map function. |
| Performance Optimized | High-speed scraping with minimal compute resources. |
| Field Name | Field Description |
|---|---|
| wrapperType | Type of media wrapper (e.g., track). |
| kind | Media type such as podcast, app, movie, etc. |
| collectionId | Collection identifier for the media. |
| trackId | Unique ID of the asset. |
| artistName | Name of the publisher or creator. |
| collectionName | Name of the collection. |
| trackName | Name of the specific track or item. |
| artworkUrlXX | Various artwork sizes for the item. |
| collectionPrice | Price of the collection. |
| trackPrice | Price of the item. |
| releaseDate | Date when the media was released. |
| genres | List of genres applied to the item. |
| country | Country of origin for scraped content. |
| currency | Currency related to pricing. |
| reviews | Array of review objects with user details and ratings. |
{
"wrapperType": "track",
"kind": "podcast",
"collectionId": 1043547750,
"trackId": 1043547750,
"artistName": "Game Dev Unchained",
"trackName": "Game Dev Unchained",
"primaryGenreName": "Video Games",
"reviews": [
{
"id": "9519350766",
"userName": "ultrageoffe",
"score": 1,
"title": "Ad nightmare",
"text": "Ads every few seconds. Don’t waste your time"
}
]
}
App Store Data Extractor - Scrape reviews too!/
├── src/
│ ├── index.js
│ ├── helpers/
│ │ ├── parser.js
│ │ ├── review_loader.js
│ │ └── request_utils.js
│ ├── services/
│ │ ├── lookup_service.js
│ │ ├── search_service.js
│ │ └── media_processor.js
│ └── config/
│ └── settings.example.json
├── data/
│ ├── sample_input.json
│ └── sample_output.json
├── package.json
├── LICENSE
└── README.md
- Market analysts use it to gather App Store insights, so they can track competitors and new market trends.
- Developers use it to research similar apps, so they can improve product decisions with validated data.
- Marketers use it to collect user review sentiment, so they can enhance campaigns based on customer feedback.
- Researchers use it to build datasets about media content, so they can conduct large-scale user behavior studies.
- Content creators use it to analyze top-performing media, so they can align output with proven trends.
Q: Can this scraper extract unlimited reviews? Yes. Reviews are retrieved with pagination, allowing you to collect as many reviews as exist for an item.
Q: Does it support scraping by specific ID? Absolutely. Lookup mode is designed for precise ID-based extraction such as individual apps, movies, or podcasts.
Q: What happens if I provide incorrect input? The system stops immediately and returns a clear explanation of what needs to be corrected.
Q: Can I use a custom mapping function? Yes. You can pass a custom function to transform each output object before it’s saved.
Primary Metric: Handles ~100 media listings in under two minutes, maintaining high throughput during continuous scraping.
Reliability Metric: Achieves a stable success rate with resilient handling of pagination, detail pages, and regional variations.
Efficiency Metric: Consumes approximately 0.01–0.02 compute units per 100 listings under normal operation.
Quality Metric: Delivers complete metadata and full review chains with consistent field integrity across diverse media types.
