App Store Reviews Scraper - Apple iOS App Reviews API avatar

App Store Reviews Scraper - Apple iOS App Reviews API

Pricing

from $3.00 / 1,000 review scrapeds

Go to Apify Store
App Store Reviews Scraper - Apple iOS App Reviews API

App Store Reviews Scraper - Apple iOS App Reviews API

Scrape App Store reviews for any iOS, iPad or Mac app by name, URL or ID. Filter by star rating, keyword and date before you pay: find 1-star complaints mentioning "crash" and pay only for the matches. Any country, clean JSON from Apple's official feed, no login.

Pricing

from $3.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Kobkoon Janngam

Kobkoon Janngam

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

15 days ago

Last modified

Share

App Store Reviews Scraper — Apple iOS App Reviews API

Get customer reviews and star ratings for any app on Apple's App Store — and only the ones you want. Type the app's name, or paste an App Store URL, app ID or bundle ID, and get clean JSON back: review text, rating, author, app version and date. Filter by stars, keyword and date, and pay only for the reviews that match.

Quick start: press Start with no configuration at all. The Actor ships with a working default and returns 100 recent reviews immediately. Then type your own app — "Spotify" works — and add a filter.

Find exactly the reviews you need

The reason most people read a rival's reviews is to find what users hate about it. So ask for that directly:

{
"appStoreUrlsOrIds": ["Spotify", "Pandora"],
"maxRating": 2,
"keywords": ["crash", "subscription", "ads"],
"reviewsSince": "2026-09-01",
"maxReviewsPerApp": 50
}

That returns up to 50 one- and two-star reviews per app, written since 1 September, that mention a crash, the subscription or ads. Filters run before charging — the Actor reads deeper into Apple's feed to find matches, and you are charged only for the reviews it returns, never for the ones it read to find them.

FilterWhat it keeps
maxRating: 2Complaints and bug reports
minRating: 4Praise — what users love, for your own marketing copy
keywordsReviews whose title or text mentions any of the words, case-insensitive
reviewsSinceReviews written or updated on or after a date — reaction to one release

A filter that matches nothing is a real answer ("no recent one-star reviews mention crashing") — the run succeeds, returns no rows, charges nothing, and the log says how many reviews it read.

Sample output

appTitleratingtitletextuserNameversioncountryupdatedAt
Notion: Notes, Tasks, AI5Great appWonderful, but please fix the crash when scrolling…Trstn1151.7.330us2026-08-24T13:54:02-07:00
Notion: Notes, Tasks, AI2Slow on iPadTakes ten seconds to open a page since the update.mfarrell1.7.331gb2026-08-23T09:11:44-07:00

Every row also carries reviewId, appId, appBundleId, appUrl, appDeveloper, voteCount and voteSum.

What you can do with it

  • Monitor your own app. Run it on a schedule and pipe one-star reviews into Slack the day they land, instead of finding them a month later.
  • Watch competitors. Pull the last 500 reviews for every rival app and find the complaint they keep ignoring — the fastest product-gap research there is.
  • Feed an AI agent. Output rows are deliberately small and consistently shaped, so you can hand them straight to an LLM for sentiment or theme extraction without blowing up its context window.
  • Track a release. Reviews carry the exact app version, so you can measure whether a release actually fixed the thing users complained about.
  • Localise. Apple keeps reviews separate per storefront. Ask for us, jp, de, br and th in one run and compare markets side by side.

Input

FieldDefaultNotes
appStoreUrlsOrIds3 sample appsApp name, App Store URL, numeric app ID, or bundle ID. Mix formats freely. An entry that cannot be found is skipped with a reason; the rest still run.
countries["us"]Two-letter storefront codes. More countries means more reviews for the same app.
maxReviewsPerApp50Per app, per country — counted after filters. Apple's own ceiling is 500 read per country.
minRating / maxRating1 / 5Star band to keep. maxRating: 2 for complaints.
keywords[]Keep reviews mentioning any of these words.
reviewsSinceemptyKeep reviews on or after this date (YYYY-MM-DD).
allowSortFallbacktrueApple serves reviews newest-first and most-helpful-first, and either can go silent for an app for hours. When yours is silent the Actor reads the other; every row says which in feedSort.
fallbackCountries["gb","ca","au","de"]Tried only when an app returns nothing in the countries you asked for. Empty list switches it off.
sortBymostRecentmostRecent for monitoring, mostHelpful for research.

How it works, and why it keeps working

This Actor reads Apple's official public customer reviews feed. It does not parse HTML and it does not log in. Apple can redesign the App Store tomorrow and this Actor will keep returning the same fields — which is why it is not on the maintenance treadmill that breaks most scrapers.

Requests are rate-limited below Apple's threshold so a large multi-country run does not get throttled part-way and hand you a half-empty dataset.

Limits worth knowing before you buy

Read this one first: Apple's review feed goes quiet for individual apps, at random. An app with millions of ratings can return nothing in a storefront where it returned fifty reviews an hour earlier, over a normal HTTP 200 with no error to catch. It is per app and per country, and it is Apple's behaviour, not a limit of this Actor — measured 2026-09-02, four major apps all returned nothing in the US while three of them returned fifty each in GB, CA or AU in the same minute.

Three things here are built around that, and they are the reason to pick this Actor over a thinner one:

  • Other storefronts are tried automatically. If an app yields nothing in the countries you asked for, fallbackCountries is walked until one answers. Every row carries its own country, so nothing is mislabelled, and the run summary lists exactly which apps were served from elsewhere.
  • A blank run fails instead of pretending. If nothing comes back anywhere, the Actor asks Apple's chart feed whether Apple is up, then fails with that finding rather than handing you an empty dataset that looks like an answer. You are charged per review, so a failed run costs you nothing.
  • The default is three apps, not one. A single-app run is all-or-nothing against a feed that behaves like this; a small basket almost always returns something.

Apple also publishes at most 500 reviews per app per country, a hard limit of the source. If you need more volume for one app, add more countries.

Pricing

Pay per review delivered. A run that finds no reviews charges you nothing.

Works well with

Same publisher, same output conventions, same honest-failure rules:

Disclaimer

This is an unofficial tool. It is not affiliated with, authorised by, endorsed by, or in any way officially connected to Apple Inc. "Apple", "App Store", "iOS", "iPadOS" and "macOS" are trademarks of Apple Inc.

It reads only Apple's public, unauthenticated endpoints — the iTunes Search and Lookup APIs and the public RSS feeds. It signs into nothing, stores no credentials, and parses no HTML. Nothing it returns is behind a login or a paywall, and every field it returns is data the App Store already shows to anyone.

Apple can change or withdraw those endpoints at any time. When a feed returns nothing, this Actor says so in the log rather than handing you an empty result that looks like an answer.