The go-to Python package for App Store and Google Play review extraction
Project description
App Reviews
Fetch app reviews from the Apple App Store and Google Play Store with a single Python package.
Why App Reviews?
Fetching app reviews should be simple. In practice, it is not:
- Apple and Google use completely different APIs, formats, and auth methods
- Getting reviews from multiple countries means handling deduplication
- Google rate-limits aggressively, Apple requires JWT signing
- Most existing tools only support one store
App Reviews handles all of this behind a single scraper.fetch() call. It works out of the box with no API keys, and optionally supports authenticated APIs for more data.
Install
pip install app-reviews
Quick Start
from app_reviews import AppStoreScraper, GooglePlayScraper
# Apple App Store
apple = AppStoreScraper(app_id="123456789", countries=["us", "gb"])
result = apple.fetch()
for review in result.reviews:
print(f"[{review.country}] {review.rating}★ {review.title}")
# Google Play Store
google = GooglePlayScraper(app_id="com.example.app", countries=["us", "gb"])
result = google.fetch()
for review in result.reviews:
print(f"[{review.country}] {review.rating}★ {review.body[:80]}")
Features
- Both stores -- Apple App Store and Google Play in one package
- No API keys required -- works out of the box using public endpoints
- 175+ countries -- fetch and deduplicate across regions in a single call
- Official API support -- optionally use App Store Connect or Google Play Developer API
- Python API, CLI, and interactive TUI -- use it however you prefer
- 4 export formats -- table, JSON, JSONL, CSV
- Minimal dependencies -- just
cryptographyfor JWT signing, stdliburllibfor HTTP
Documentation
- Installation -- all install methods
- Quick Start -- first reviews in 2 minutes
- Python API -- full reference with all parameters
- CLI -- command-line usage
- Interactive TUI -- browse reviews in your terminal
- Authentication -- set up official APIs
- How It Works -- providers, limitations, internals
Contributing
git clone https://github.com/firattamurcw/app-reviews.git
cd app-reviews
uv sync --group dev
make test
See the Contributing Guide for details.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file app_reviews-0.1.0.tar.gz.
File metadata
- Download URL: app_reviews-0.1.0.tar.gz
- Upload date:
- Size: 137.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7473b37b8e147f18f9f99ae22658da9d02185ffff8c206fe6f583b61ce5b523
|
|
| MD5 |
ec40a615e79880297c7056c8690e4468
|
|
| BLAKE2b-256 |
a4efbf359c22d09d59f73e4791e615460925d8d502b97a2c6d6b926c42a190b8
|
Provenance
The following attestation bundles were made for app_reviews-0.1.0.tar.gz:
Publisher:
release.yml on firattamurcw/app-reviews
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
app_reviews-0.1.0.tar.gz -
Subject digest:
b7473b37b8e147f18f9f99ae22658da9d02185ffff8c206fe6f583b61ce5b523 - Sigstore transparency entry: 1236012033
- Sigstore integration time:
-
Permalink:
firattamurcw/app-reviews@8bd537fbc26e3e203940b08346a9d4475889bf4a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/firattamurcw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8bd537fbc26e3e203940b08346a9d4475889bf4a -
Trigger Event:
push
-
Statement type:
File details
Details for the file app_reviews-0.1.0-py3-none-any.whl.
File metadata
- Download URL: app_reviews-0.1.0-py3-none-any.whl
- Upload date:
- Size: 51.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9b8faab29a8710f406a1476c258f954755bbb3e5272ac65866481d549495186
|
|
| MD5 |
64d5efe88b1c5e125af38fc215e5adb7
|
|
| BLAKE2b-256 |
f6eb07f6586e93ceb5ddd71cd1024dddd92dfd424371688b16b93cf7a6aa8504
|
Provenance
The following attestation bundles were made for app_reviews-0.1.0-py3-none-any.whl:
Publisher:
release.yml on firattamurcw/app-reviews
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
app_reviews-0.1.0-py3-none-any.whl -
Subject digest:
e9b8faab29a8710f406a1476c258f954755bbb3e5272ac65866481d549495186 - Sigstore transparency entry: 1236012039
- Sigstore integration time:
-
Permalink:
firattamurcw/app-reviews@8bd537fbc26e3e203940b08346a9d4475889bf4a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/firattamurcw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8bd537fbc26e3e203940b08346a9d4475889bf4a -
Trigger Event:
push
-
Statement type: