Google Play reviews
POST https://tools.yukai.uk/api/v1/appstore/play/reviews
Get Google Play reviews of an app. Google Play reviews, newest first or most relevant first, in the requested language and country, optionally only one star rating. Up to 500 per call; when there are more, nextPageToken continues where the call stopped (send it back with the same app, sort and rating). Each review: id, reviewer display name, rating, text, date, thumbs-up count, app version, developer reply and its date.
Cost
Credits: 1 per review ($0.0001 per review). 50 credits are reserved before the call; the call is then settled on the real number of items returned. Failed calls are free. Source price: apple-app-store-reviews/review.
Input
Send a JSON body (POST) or the same fields as a query string (GET).
Required: app.
| Field | Type | Default | Description |
|---|---|---|---|
app required | string | Google Play package name (com.spotify.music) or a Play Store app URL (https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&gl=us; its hl / gl are used when lang / country are not given). Aliases: appId, id, url. | |
lang | string | "en" | Language of the store text and of the reviews (en, ja, pt-BR, zh-TW...). Alias: hl. |
country | string | "us" | Two-letter Google Play country (prices, currency, availability). Alias: gl. |
sort | string | "newest" | Order. mostRelevant is Google Play's default order on the app page. |
rating | integer | Only reviews with exactly this many stars. | |
limit | integer | 100 | Maximum reviews returned. |
pageToken | string | nextPageToken from the previous answer, to read the next reviews. |
Examples
Replace tt_live_XXXX with your key from the pricing page.
curl
curl -i -X POST "https://tools.yukai.uk/api/v1/appstore/play/reviews" \
-H "Authorization: Bearer tt_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"app":"com.spotify.music"}'JavaScript (fetch)
const res = await fetch("https://tools.yukai.uk/api/v1/appstore/play/reviews", {
method: "POST",
headers: { "Authorization": "Bearer tt_live_XXXX", "Content-Type": "application/json" },
body: JSON.stringify({"app":"com.spotify.music"}),
});
console.log(res.status, res.headers.get("x-credits-charged"), res.headers.get("x-credits-balance"));
console.log(await res.json());Python (requests)
import requests
r = requests.post(
"https://tools.yukai.uk/api/v1/appstore/play/reviews",
headers={"Authorization": "Bearer tt_live_XXXX"},
json={"app": "com.spotify.music"},
timeout=120,
)
print(r.status_code, r.headers.get("x-credits-charged"), r.headers.get("x-credits-balance"))
print(r.json())
Response
JSON with "success": true and the result fields; on failure {"success": false, "error": {"code", "message", "retryable"}} and no credits are used. Every answer carries x-credits-charged (credits used) and x-credits-balance (balance after the call); check the balance any time with GET https://tools.yukai.uk/v1/billing/balance.
Full field list and response schema: OpenAPI spec app-store (its servers entry is the marketplace gateway; call https://tools.yukai.uk with your key).