Tony Wang6 Min. LesezeitApp-Store- & Google-Play-Reviews scrapen in 2026 (API & Python)
Scrape App Store und Google Play Reviews und Ratings in 2026 — DIY Python, No-Code oder eine strukturierte API — mit den rechtlichen und Rate-Limit-Grundlagen.
Am schnellsten scrapst du 2026 App-Store- und Google-Play-Reviews, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — Reviews, Ratings, App-Metadaten und Kategorie-Rankings über beide Stores hinweg — statt Apples ratenlimitierten RSS-Feed in einer Schleife abzufragen und gegen die Anti-Bot-Drosselung von Google Play anzukämpfen. Du kannst einen eigenen Scraper bauen, aber beide Stores deckeln die Daten und verteidigen sie hart, und die offiziellen APIs decken nur deine eigenen Apps ab. Dieser Guide behandelt alle drei Ansätze, was jeder liefert, wo jeder scheitert und die rechtlichen Grundlagen.
Warum App-Reviews scrapen?
App-Review- und Rating-Daten treiben eine ganze Kategorie von Produkt- und Marketingarbeit an:
- Review-Monitoring & Support — erkenne Bugs, Abstürze und Beschwerden über Versionen und Länder hinweg.
- App Store Optimization (ASO) — verfolge Ratings, Rankings und Keyword-Präsenz für deine eigenen Apps und die deiner Wettbewerber.
- Produkt-Feedback & Sentiment — beziffere, was Nutzer loben und hassen, nach Feature und Release.
- Marktforschung — finde Kategorie-Führer, Installationsbereiche und aufsteigende Apps in beiden Stores.
Ist es legal, App-Reviews zu scrapen?
Option 1: DIY in Python (und warum es scheitert)
Die beiden Stores funktionieren unterschiedlich, ein DIY-Scraper sind also eigentlich zwei Scraper. Apple stellt einen undokumentierten RSS-Feed für Reviews bereit:
import requests
# Apple's undocumented RSS reviews feed: 50 reviews/page, JSON
r = requests.get(
"https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortby=mostrecent/json"
).json()
reviews = r["feed"].get("entry", [])
Google Play hat keine öffentliche Review-API, DIY stützt sich also auf das inoffizielle google-play-scraper:
from google_play_scraper import reviews, Sort
result, token = reviews("com.shopify.mobile", lang="en", country="us",
sort=Sort.NEWEST, count=200) # 503s with a captcha under load
Es funktioniert in der Demo und scheitert dann:
- Apples ~500-Review-Grenze, pro Land. Der RSS-Feed liefert nur ~10 Seiten (≈500 Reviews) und stellt keinen globalen Endpoint bereit — und Reviews sind an ein Land, nicht an eine Sprache gebunden — den vollständigen Review-Satz einer App zu bekommen bedeutet also, alle 116 App-Store-Länder in einer Schleife abzufragen und zu deduplizieren (dasselbe Review kann in mehreren auftauchen). Die Gesamtzahl passt trotzdem nicht zu der auf der App-Seite angezeigten Zahl.
- Apple ratenlimitiert hart. Feuere den Feed ab und die Antworten werden langsamer, dann kommen Timeouts und 403er; selbst saubere Residential-IPs werden für Minuten bis Stunden gesperrt, du brauchst also Proxy-Rotation.
- Google-Play-Drosselung. Die inoffizielle Library parst Googles interne Endpoints und löst Drosselung aus — 503er mit Captcha und ~1-stündigen IP-Sperren (≈500–1.000 Apps/IP/Tag ohne Proxies) — und Reviews sind Cursor-paginiert und brechen, wenn sich der interne RPC ändert.
- Offizielle APIs gelten nur für deine eigenen Apps. App Store Connect (JWT-signiert) und die Google Play Developer API (≈60 Review-Requests/Stunde) decken nur Apps ab, die dir gehören — nutzlos für Wettbewerber- oder Marktforschung.
Option 2: No-Code-Tools
Visuelle Extraktoren und Marktplatz-"App-Review"-Actors exportieren CSV/JSON und eignen sich für einmalige Abrufe, aber in einer In-Product-Pipeline mit vorhersehbaren Feldern sind sie umständlich und scheitern an denselben Grenzen und derselben Drosselung.
Option 3: Eine strukturierte API (beide Stores)
Für wiederholbare Workflows geben eine strukturierte App Store API und Google Play API normalisiertes JSON zurück, ohne dass ein Scraper laufen muss. App-Store-Reviews abrufen:
curl "https://api.crawlora.net/api/v1/appstore/reviews?id=389801252&country=us&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"
Beide Stores in Python — beachte, wie jede App angesprochen wird:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
# Apple App Store — apps are addressed by numeric track id
ios = requests.get("https://api.crawlora.net/api/v1/appstore/reviews",
headers=h, params={"id": "389801252", "country": "us", "page": 1}).json()["data"]
# Google Play — apps are addressed by package name
android = requests.get("https://api.crawlora.net/api/v1/googleplay/reviews",
headers=h, params={"app_id": "com.shopify.mobile", "country": "us"}).json()["data"]
App-Store-Reviews kommen als normalisiertes JSON zurück (die Felder sind beispielhaft — prüfe die docs):
{
"code": 200,
"msg": "OK",
"data": [
{ "id": "review-1", "title": "Helpful assistant", "score": 5, "author": "App Store User", "content": "Great for writing and research." }
]
}
Google-Play-Reviews verwenden die eigenen Feldnamen des Stores (docs):
{
"code": 200,
"msg": "OK",
"data": [
{ "id": "review-1", "user_name": "Play User", "score": 5, "content": "Very useful for daily work.", "thumbs_up_count": 42 }
]
}
Reviews sind nur ein Teil davon — derselbe Key erreicht Ratings, App-Metadaten, Rankings und Suche:
base = "https://api.crawlora.net/api/v1"
hist = requests.get(f"{base}/appstore/ratings", headers=h,
params={"id": "389801252", "country": "us"}).json()["data"] # star histogram
app = requests.get(f"{base}/appstore/app", headers=h,
params={"id": "389801252", "country": "us"}).json()["data"] # title, developer, score, version
top = requests.get(f"{base}/googleplay/list", headers=h,
params={"collection": "TOP_FREE", "category": "PRODUCTIVITY", "country": "us"}).json()["data"] # rankings
hits = requests.get(f"{base}/appstore/search", headers=h,
params={"term": "shopify", "country": "us"}).json()["data"] # find an app id by name
App-Store-Reviews paginieren über page und sortieren über sort; Google-Play-Reviews sind Cursor-paginiert — gib das zurückgegebene next_pagination_token über paginate wieder mit. Übergib country (und lang) pro Store, speichere eine Zeile pro Review und rufe die Daten nach einem Zeitplan erneut ab, um Ratings und Sentiment über die Zeit zu verfolgen.
Was du sammeln kannst
- App Store: App-Metadaten (Titel, Entwickler, Score, Anzahl Ratings, Version, URL), das Sterne-Rating-Histogramm, Reviews (id, title, score, author, content), Suche, Top-Chart-Listen, ähnliche Apps, Versionshistorie und Privacy-Labels.
- Google Play: App-Metadaten (Titel, Beschreibung, Installationen), Reviews (id, user_name, score, content, thumbs_up_count), Suche, Top-Chart-Listen, ähnliche Apps, Data-Safety und Berechtigungen.
Alles ist nach Store und Land abgegrenzt — bleib bei öffentlichen, sachlichen Feldern.
Einschränkungen und häufige Herausforderungen
- Keine öffentliche Review-API für beliebige Apps. Apples RSS-Feed deckelt bei ~500 Reviews pro Land ohne globalen Endpoint, und die offiziellen APIs App Store Connect und Google Play Developer decken nur deine eigenen Apps ab — öffentliche Recherche bedeutet also Scraping, was eine strukturierte API hinter einem Key erledigt.
- Reviews sind eine Teilmenge pro Land. Die angezeigte Review-Anzahl passt nicht zu dem, was ein Feed zurückgibt, und Apple bindet Reviews an ein Land, nicht an eine Sprache — sammle die Länder, die dich interessieren, und dedupliziere.
- Rate-Limits und Sperren. Direktes Scraping zieht bei Apple 403er und bei Google Play 503er mit Captcha plus ~1-stündigen IP-Sperren nach sich; eine strukturierte API fängt Proxies und Drosselung ab.
- Reviews und Namen sind personenbezogene Daten. Behandle Autoren- und Nutzernamen sowie Review-Texte als personenbezogen unter DSGVO/CCPA — sammle öffentliche, sachliche Felder mit einer Rechtsgrundlage.
Wo das eingesetzt wird
- Review- & Reputation-Monitoring — beobachte Ratings und Review-Sentiment über beide Stores hinweg. Siehe den Use Case review & reputation monitoring.
- App Store Optimization (ASO) — verfolge die Ratings, Rankings und den Versions-Rhythmus der Wettbewerber.
- Produkt-Feedback — leite Beschwerden und Feature-Wünsche aus Reviews in dein Backlog.
Sources
Leg los mit dem Sammeln
Probier es erst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper oder prüfe mit dem Anti-Bot Checker, ob eine Website Bots blockiert — ohne Anmeldung.
Teste die Review-Endpoints im Playground, prüfe das Schema in den API docs und sieh dir die pricing an. Durchstöbere den vollständigen Katalog — 4.1M Apps über den App Store und Google Play — in unserem mobile app dataset, oder überspring das Crawlen ganz mit unserem app-review sentiment dataset: Millionen bereits gescrapter Reviews der Top-Apps, über die API abfragbar. Siehe auch how to scrape Trustpilot reviews für die Web-Review-Seite, how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Kann ich App-Store- und Google-Play-Reviews scrapen, ohne blockiert zu werden?
Direktes Scraping zieht Sperren nach sich: Apples RSS-Feed für Reviews liefert 403er, wenn er zu schnell in einer Schleife abgefragt wird (selbst auf Residential-IPs), und Google Plays Drosselung liefert 503er mit Captcha und ~1-stündigen IP-Sperren (grob 500–1.000 Apps/IP/Tag ohne Proxies). Eine strukturierte API erledigt Proxies und Drosselung hinter einem Key für öffentliche Review-Daten in beiden Stores.
Gibt es eine offizielle API für App-Reviews?
Nur für deine eigenen Apps. Apples App Store Connect API und Googles Play Developer API erlauben dir, Reviews deiner eigenen Apps zu lesen und zu beantworten (der Play-Review-Endpoint liegt bei ~60 Requests/Stunde), aber keine gibt Reviews für beliebige öffentliche Apps zurück — Wettbewerber- und Marktforschung bedeutet also Scraping.
Wie viele App-Store-Reviews kann ich bekommen?
Apples öffentlicher RSS-Feed deckelt bei grob 500 Reviews (~10 Seiten à 50) pro Land und hat keinen globalen Endpoint, und Reviews sind an ein Land statt an eine Sprache gebunden — ein vollständiger Satz bedeutet also, die App-Store-Länder, die dich interessieren, in einer Schleife abzufragen und zu deduplizieren. Die Gesamtzahl passt nicht zu der auf der App-Seite angezeigten Zahl.
Wie spreche ich eine App in jedem Store an?
App-Store-Apps verwenden eine numerische Track-ID (die Ziffern nach id in apps.apple.com/.../id389801252), und Reviews paginieren per Seite. Google-Play-Apps verwenden den Package-Namen (z. B. com.shopify.mobile), und Reviews sind über ein next_pagination_token Cursor-paginiert. Nutze die Such-Endpoints, um beide IDs per App-Namen nachzuschlagen.
Welche App-Daten kann ich sammeln?
Öffentliche Felder: App-Metadaten (Titel, Entwickler/Installationen, Score, Version), das App-Store-Rating-Histogramm, Reviews (Score, Autor-/Nutzername, Content), Suche, Top-Chart-Listen, ähnliche Apps, Versionshistorie und Privacy-/Data-Safety-Labels — abgegrenzt nach Store und Land.
Sind App-Reviews personenbezogene Daten?
Ja. Namen von Reviewern und Nutzern sowie Review-Texte sind unter DSGVO/CCPA personenbezogene Daten — sammle nur öffentliche, sachliche Felder mit einer Rechtsgrundlage und veröffentliche die Identitäten der Reviewer nicht erneut.
Wie oft kann ich aktualisieren?
Rufe die Daten nach einem Zeitplan erneut ab, um Ratings und Sentiment über die Zeit zu verfolgen, innerhalb deiner Plan- und Responsible-Use-Grenzen, statt kontinuierlich zu pollen.