App Store Reviews Scraper, Top Charts & App Details API
Pricing
from $0.10 / 1,000 reviews
App Store Reviews Scraper, Top Charts & App Details API
App Store reviews scraper and top charts API: iOS app reviews, app details and top free, paid and grossing charts for any country, from Apple's official feeds. Monitor mode returns only new reviews. $0.10 per 1,000 reviews, $0.10 per 100-app chart. No reviewer names.
Pricing
from $0.10 / 1,000 reviews
Rating
0.0
(0)
Developer
Local Wire
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Features
Share
App Store Reviews Scraper: Reviews, App Details & Top Charts API
Apple App Store reviews, app details and top charts (top free, top paid, top grossing) for any iOS app and any country, from Apple's official RSS feeds and Search API. $0.10 per 1,000 reviews, $0.10 per 100-app chart, $0.30 per 1,000 app records. No start fee, no login, no reviewer names.
One Actor covers all three jobs, fetches many countries in a single run, and has a monitor mode that returns only reviews you have not had before, so a daily schedule gives you each new review once. Results come as flat JSON, CSV or Excel.
What you get
Every record has a type: review, app or chartEntry. The dataset has a table view for each.
Review
{"type": "review","reviewId": "14751234821","appId": "389801252","appName": "Instagram","country": "gb","rating": 5,"title": "Sick","text": "Sick app.","appVersion": "454.1","reviewedAt": "2026-11-04T20:21:17.000Z","helpfulVotes": 0,"totalVotes": 0,"sortedBy": "mostRecent","appUrl": "https://apps.apple.com/gb/app/id389801252","scrapedAt": "2026-11-06T20:40:00.000Z"}
Chart entry
{"type": "chartEntry","chart": "topFree","device": "iphone","country": "gb","genreId": "6015","genreName": "Finance","rank": 1,"appId": "469964520","bundleId": "com.lloydstsb.LloydsTSB","name": "Lloyds Mobile Banking","developerName": "Lloyds Banking Group","developerUrl": "https://apps.apple.com/gb/developer/lloyds-banking-group/id469964523","price": 0,"currency": "GBP","category": "Finance","categoryId": "6015","releasedAt": "2011-10-10T07:00:00.000Z","summary": "Bank on the go with the Lloyds app…","iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/…/100x100bb.png","appUrl": "https://apps.apple.com/gb/app/lloyds-mobile-banking/id469964520","chartUpdatedAt": "2026-11-06T19:33:40.000Z","scrapedAt": "2026-11-06T20:40:00.000Z"}
App
The store listing of one app in one country: appId, bundleId, name, developerName, developerId, sellerName, averageRating, ratingCount, averageRatingCurrentVersion, ratingCountCurrentVersion, price, currency, formattedPrice, version, currentVersionReleasedAt, releasedAt, releaseNotes, description, primaryGenre, genres, contentRating, advisories, minimumOsVersion, fileSizeBytes, languages, features, iconUrl, screenshotUrls, ipadScreenshotUrls, appUrl, developerUrl, sellerUrl, plus searchTerm and searchRank when the app was found by a search.
The run's key-value store gets an OUTPUT summary: counts per country, apps not found in a storefront, reviews filtered out or skipped as already seen, and any errors.
Quick start
The form opens with Instagram's reviews in the UK and US stores. Press Start: you get the latest 100 reviews from each store, 200 records, for $0.02. As JSON:
{"mode": "reviews","apps": ["https://apps.apple.com/gb/app/instagram/id389801252"],"countries": ["gb", "us"]}
Put your own app in apps as an App Store URL, a numeric app id (389801252) or a bundle id (com.burbn.instagram).
The smallest top-charts input (top free iPhone apps, UK and US, 100 each):
{ "mode": "topCharts" }
App Store top charts: top free, top paid and top grossing
Set mode to topCharts to get Apple's top charts as data. Each chart position is one chartEntry record with its rank, app id, bundle id, name, developer, price, category, release date and store link.
- Charts:
topFree,topPaid,topGrossing. - Devices:
iphoneandipad. - Countries: any App Store storefront, several per run.
- Genres: all apps, or any genre by name or id (Business, Education, Entertainment, Finance, Games, Health & Fitness, Lifestyle, Music, Productivity, Shopping, Social Networking, Travel, Utilities and the rest of Apple's top-level list). Game sub-genres work by id (7001 to 7019).
- Depth: up to 100 apps per chart.
Top grossing finance and games apps on iPhone in the UK, US and Germany:
{"mode": "topCharts","charts": ["topGrossing"],"genres": ["Finance", "Games"],"countries": ["gb", "us", "de"],"chartLimit": 50}
A run fetches every combination you ask for: charts × devices × genres × countries. The example above is 1 × 1 × 2 × 3 = 6 charts of 50, so 300 records and $0.06.
Track chart rank over time. Schedule a daily top-charts run and keep the datasets. rank, appId, chart, genreName, country and chartUpdatedAt are stable keys, so a spreadsheet or database can chart any app's daily position.
Reviews
Set mode to reviews (the default). For each app and country you get the latest reviews with star rating, title, text, app version, date and helpful votes.
- Filters:
minRatingandmaxRating(for example 1 to 2 for complaints),dateFrom, andsortby most recent or most helpful. - Many apps and countries per run. Add apps directly or let
searchTermspick the top search results. - Monitor mode: with
onlyNewReviewson, the Actor remembers what it returned and returns, and charges for, only new reviews.
New 1 to 2 star reviews of two apps in the UK and US, for a daily alert:
{"mode": "reviews","apps": ["389801252", "com.spotify.client"],"countries": ["gb", "us"],"maxRating": 2,"onlyNewReviews": true}
App details and App Store search
Set mode to appDetails for the full store listing of each app in each country, or give searchTerms to get the listings of the apps that rank for a search, with searchRank.
{ "mode": "appDetails", "searchTerms": ["habit tracker"], "searchLimit": 20, "countries": ["us"] }
Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
mode | string | reviews | reviews, appDetails or topCharts. |
apps | string[] | App Store URLs, numeric app ids or bundle ids. Needed for reviews and appDetails unless searchTerms is given. Not used for top charts. | |
searchTerms | string[] | Search the App Store and use the top results. | |
searchLimit | integer | 10 | Apps per search term and country (1 to 200). |
countries | string[] | ["gb", "us"] | Two-letter storefront codes: gb, us, de, fr, jp… |
maxReviewsPerApp | integer | 100 | Reviews per app and country (1 to 500). |
sort | string | mostRecent | mostRecent or mostHelpful. |
minRating / maxRating | integer | 1 / 5 | Star range. |
dateFrom | string | Only reviews on or after this date (2026-10-01). | |
onlyNewReviews | boolean | false | Monitor mode: only reviews not returned by earlier runs. Reads in most-recent order. |
monitorName | string | default | Keeps separate monitors apart; runs with the same name share what has been seen. |
charts | string[] | ["topFree"] | topFree, topPaid, topGrossing. |
devices | string[] | ["iphone"] | iphone, ipad. |
genres | string[] | all apps | Genre names (Finance, Games) or ids (6015). |
chartLimit | integer | 100 | Apps per chart (1 to 100). |
maxItems | integer | 10,000 | Stop after this many records in total. |
An invalid input fails at once with a message listing every problem.
Use cases
- Review monitoring. A daily run with monitor mode on, sent to Slack, e-mail or Google Sheets.
- Complaint mining and product research. Pull the 1 to 2 star reviews of your app or a competitor's and give them to an AI model for themes, bugs and feature requests.
- Release tracking.
appVersionon each review shows how a new version is landing. - Competitor analysis. Compare ratings, rating counts, versions, prices and release notes across apps and countries.
- App Store optimisation (ASO). See which apps rank for a search term, and where apps sit in the top charts of a genre.
- Market and chart tracking. Snapshot the top free, paid and grossing charts every day, per country, genre and device.
- Lead lists. Top charts by genre and country give app and developer names for a category.
- AI agents. A small, predictable schema with three clear modes.
Pricing
Pay per result. No start fee, no monthly fee.
| Record | Price | Per 1,000 |
|---|---|---|
| Review | $0.0001 | $0.10 |
| Chart entry | $0.001 | $1.00 ($0.10 for a 100-app chart) |
| App record | $0.0003 | $0.30 |
Reviews that are filtered out, or skipped by monitor mode because you already had them, are free.
| Run | Records | Cost |
|---|---|---|
| The quick-start run: 100 reviews × 2 countries | 200 reviews | $0.02 |
| All 500 available reviews of one app in 5 countries | 2,500 reviews | $0.25 |
| Daily monitor of 5 apps in 3 countries finding 40 new reviews | 40 reviews a day | $0.004 a day, about $0.12 a month |
| Top free, paid and grossing iPhone charts, one country, daily | 300 entries a day | $0.30 a day, about $9 a month |
| Store listings of the top 20 apps for a search term | 20 apps | $0.006 |
To cap spending, set maxItems or a maximum cost per run in the run options (maxTotalChargeUsd in the API). The Actor stops cleanly at the limit.
Daily review alerts in 2 minutes
- Add your apps and countries, and turn on Only new reviews.
- Save it as a Task and add a Schedule (for example every morning).
- Add an integration (Slack, e-mail, Google Sheets, webhook) to receive the new reviews.
The first run returns the latest reviews (up to maxReviewsPerApp); every run after that returns only what is new. Monitor state is kept in a key-value store named app-store-reviews-monitor in your own Apify account.
Use it from the API
curl -X POST "https://api.apify.com/v2/acts/localwire~app-store-reviews/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "content-type: application/json" \-d '{"apps": ["389801252"], "countries": ["gb"], "maxRating": 2, "maxReviewsPerApp": 50}'
Add &format=csv to get CSV instead of JSON. With the official clients:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("localwire/app-store-reviews").call({ mode: "topCharts", charts: ["topGrossing"], countries: ["us"] });const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("localwire/app-store-reviews").call(run_input={"apps": ["389801252"], "countries": ["us"], "maxReviewsPerApp": 200})items = client.dataset(run["defaultDatasetId"]).list_items().items
Use it from an AI agent (MCP)
Apify hosts an MCP server at https://mcp.apify.com. Add it to an MCP client (Claude, ChatGPT, Cursor, VS Code and others) and sign in with your Apify account, or send your API token as an Authorization: Bearer header. To expose just this Actor as a tool:
https://mcp.apify.com?tools=localwire/app-store-reviews
Then ask, for example, "summarise the 1-star UK reviews of Instagram from the last week" or "which finance apps are top grossing in Germany today?". Notes for agents: in reviews and appDetails modes apps or searchTerms must be given (there is no default app); mode: "topCharts" needs no other field; countries defaults to gb and us.
Integrations
Apify connects runs to Make, n8n, Zapier, LangChain, webhooks and other tools, and datasets export as JSON, CSV, Excel, XML or RSS. Typical setups: new reviews to a Slack channel, daily chart snapshots appended to Google Sheets, low-star reviews into a support tool through a webhook.
FAQ
How do I export App Store reviews to CSV or Excel?
Run the Actor in reviews mode, open the dataset and choose CSV or Excel. From the API, request https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv, or add format=csv to the run-sync call above.
How do I get App Store top charts as JSON or CSV?
Set mode to topCharts, pick charts, countries and optionally genres and devices, and run. Each chart position is one record; export the dataset as JSON, CSV or Excel.
Can I get the top charts for one category, such as Finance or Games?
Yes. Put genre names or ids in genres. Leave it empty for the overall chart. Several genres in one run return one chart each.
How do I track an app's chart ranking over time?
Schedule a daily topCharts run and keep or append the results. Filter by appId and plot rank against chartUpdatedAt. The Actor returns the chart as it is now; Apple's feeds have no history.
How many apps are in each chart?
Up to 100 per chart, country, device and genre. That is the limit of Apple's feed. Some genre charts are shorter.
Is there an official App Store reviews API?
Apple's App Store Connect API returns reviews only for apps you own. For any app, Apple publishes a public RSS feed of the latest reviews per country, which is what this Actor reads.
How many reviews can I get per app?
The latest 500 per app per country, which is all Apple's feed holds. Each storefront has its own reviews, so adding countries adds reviews. For a longer history, run monitor mode on a schedule and keep the results.
How do I find an app's App Store id?
It is the number after id in the app's App Store URL: https://apps.apple.com/gb/app/instagram/id389801252 has id 389801252. You can also paste the whole URL or the bundle id.
Does it return reviewer names?
No. Reviewer nicknames and profile links are never included, and e-mail addresses and phone numbers that people paste into review text are masked.
Does it work for Google Play?
No. It reads Apple's App Store only. Charts are the iPhone and iPad charts.
Can I get ratings without a written review, or the star breakdown?
Not individually. Star-only ratings are not in Apple's review feed. appDetails mode gives each app's averageRating and ratingCount, overall and for the current version.
Limitations
- 500 reviews per app per country. Apple's feed holds 10 pages of 50. There is no way to page further back.
- Charts stop at 100 apps and have no history; schedule runs to build one.
- Freshness. Apple's feeds can lag the App Store by a day or so.
- Countries. Any App Store storefront by its two-letter code. A code Apple does not recognise, or an app that is not sold in a storefront, is reported in
OUTPUTand skipped. - No developer replies. Apple's feed does not include developers' responses to reviews.
- No Google Play, no Mac App Store charts, no in-app purchase lists, no download or revenue estimates.
- Rate limits. Requests are paced within Apple's guidance and a throttled request is retried after a wait. If Apple keeps refusing, that app, storefront or chart is reported in
OUTPUTand skipped; the Actor uses no proxies and does nothing to get round a block.
Legal
This Actor reads Apple's public RSS feeds and the iTunes Search API. It is not affiliated with or endorsed by Apple. App Store, iPhone and iPad are trademarks of Apple Inc. You are responsible for using the data in line with applicable law and Apple's terms.
Feedback
Missing a field? Open an issue on the Actor's Issues tab.