# Changelog of Apple App Store Reviews Scraper — App Reviews & Ratings (`kestrel/app-store-reviews-scraper`) Actor

- **URL**: https://apify.com/kestrel/app-store-reviews-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/kestrel/app-store-reviews-scraper.md

## Changelog

### 2026-08-30

- Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
- Store listing: moved into the categories buyers actually browse (the old `Business` category has no Store page).

### 1.0 — 2026-08-29

First release.

- Every customer review of any iOS app, read from the same JSON endpoint the App Store's own web page calls: 1-5 rating, title, review text, reviewer nickname, app version, date, edited flag and the developer's public reply. It pages by offset far past the 500-review cap of Apple's old RSS feed — which now answers empty for most apps and is not used here.
- **Every storefront in one run**: give `countries` (us, gb, de, jp, br…) and each app is read on each one; every row carries `country`. A review Apple lists on two storefronts is delivered and billed once.
- Three ways in: app ids, App Store URLs (the id is read from the URL), or plain app names resolved through Apple's own search API.
- Four orders: most recent (the one to schedule), most helpful (the App Store's default), most critical, most favorable.
- Cost controls that filter **before** billing: `minRating` / `maxRating` (a complaints feed pays only for the 1-2★ rows), `sinceDate` (absolute or relative — "7 days" — so schedules never go stale) and `requireText`. Filtered reviews are never charged.
- A free `app` row per app and storefront: name, developer, genre, price, version, average rating, rating count and the 1-5★ histogram, plus how many written reviews the storefront holds.
- Billing: pay per delivered review row. App rows, status rows, filtered reviews, apps with no reviews, unknown apps and failed jobs are all free.
- Reliability: Apple caps each IP at about a request a second and answers 429 beyond it; the fetcher paces per session, rotates on 429/5xx and backs off, so large runs finish instead of failing.
