Skip to main content

app-store-reviews: a drop-in replacement for app-store-scraper

app-store-scraper was archived in 2021 and no longer works for most apps. app-store-reviews keeps the same AppStore class, the same review() method and the same review dicts, so existing scripts keep working. It also has a reviews() function shaped like google-play-scraper's, for Google Play.

The reviews are collected by the CleanScrape App Store & Google Play Reviews Actor on Apify, which handles the requests, retries and Apple's flaky review feed for you.

# from app_store_scraper import AppStore     # before
from app_store_reviews import AppStore       # after

minecraft = AppStore(country="nz", app_name="minecraft")
minecraft.review(how_many=20)
print(minecraft.reviews[0])
     Country | nz
        Name | minecraft
          ID | 479516143
         URL | https://apps.apple.com/nz/app/minecraft/id479516143
Review count | 20

Install

pip install app-store-reviews

Then set your Apify API token. A free Apify account includes $5 of usage a month. Copy the token from Apify Console > Settings > API & Integrations.

export APIFY_TOKEN=your_token          # macOS / Linux
setx APIFY_TOKEN your_token            # Windows (open a new terminal afterwards)

Or pass it in code: AppStore(..., apify_token="..."). Keep the token out of shared notebooks and repositories.

App Store (same as app-store-scraper)

from datetime import datetime
from app_store_reviews import AppStore

app = AppStore(country="us", app_name="spotify", app_id=324684580)  # app_id is optional
app.review(how_many=200, after=datetime(2026, 9, 1))

app.reviews        # list of dicts
app.reviews_count  # 200 or fewer
app.search_id()    # finds the numeric ID from the name, free (no Apify run)

Each review has the keys app-store-scraper used: date (datetime, UTC), review, rating, title, userName, isEdited, and developerResponse when there is one. It also adds reviewId, appVersion, country and url. isEdited is None, because Apple's public feed doesn't say.

Limit: Apple's public review feed holds about the 500 most recent reviews per app and country. For older reviews, run other countries, where the app has its own reviews.

Podcast is not supported.

Google Play (shaped like google-play-scraper)

from app_store_reviews import Sort, reviews, reviews_all

result, _ = reviews("com.spotify.music", lang="en", country="us", sort=Sort.NEWEST, count=500, filter_score_with=1)
everything = reviews_all("com.spotify.music")  # up to 10,000

Each review has google-play-scraper's keys: reviewId, userName, content, score, thumbsUpCount, reviewCreatedVersion, at, replyContent, repliedAt and appVersion. userImage is None. There is no paging token: ask for the count you need in one call.

Errors

ResponseError when no reviews could be read (the message says why), SpendingLimitError when a run hits your spending cap, and ApifyTokenError for a missing or rejected token. Set a cap per run with max_charge_usd=.

What it costs

You pay Apify for the Actor's reviews, at the current price: $0.20 per 1,000 reviews plus a start fee of about $0.01 per call at the base price. 200 reviews cost about $0.05, and 2,000 Google Play reviews about $0.41. The free monthly credit covers tens of thousands of reviews.

Testing

python -m unittest discover -s tests

The tests run offline on rows saved from the Actor, with reviewer names and texts replaced by placeholders.

About

Maintained by CleanScrape. Not affiliated with Apple, Google or the original libraries. MIT licence.

Bugs and ideas: open an issue or email contact.cleanscrape@gmail.com.

Metadata

Release files for app-store-reviews 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for app-store-reviews 0.1.0
File Size Uploaded
app_store_reviews-0.1.0.tar.gz 18.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for app-store-reviews 0.1.0
File Interpreter ABI Platform
app_store_reviews-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.9 kB

Release files / app_store_reviews-0.1.0.tar.gz

Download URL app_store_reviews-0.1.0.tar.gz
Size 18.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0c4e6b75863989704e202b8d1dda6929f6190a84d14d5cfb947c1bf717871d3b
BLAKE2b-256 checksum
How to use checksums
419b23f80a570cc69545b1d3785753526b3f2a2fa067cd6d18758c10d01c41bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / app_store_reviews-0.1.0-py3-none-any.whl

Download URL app_store_reviews-0.1.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18c477914487d7cb390b924e97005c00f3c31eac7144d47634330dc2f9b9a6c7
BLAKE2b-256 checksum
How to use checksums
8d020d8d22a8e160883e65a108011f3399ce7810fe9fec4b86b85d94f937bc87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page