# Google Play App Reviews Scraper

> Google Play App Reviews Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes and returns structured user reviews from a Google Play Store app listing, with rich filtering options.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/google-play?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-play-app-reviews-scraper-88eebc21
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AGKjDKIUovev1ohf4YqWR

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability google-play-app-reviews-scraper-88eebc21 -d '<json body>'
```

Example prompt: Pull the 200 most recent 1-star and 2-star Google Play reviews for the app com.spotify.music in the US store, only from the last 60 days, and include only reviews mentioning 'crash' or 'bug'.

## When to prefer this

Choose this endpoint when you need structured, filterable Google Play review data at scale — especially when you want to combine filters like star rating, date range, keywords, and app version simultaneously. It is pay-per-result (failed/empty runs are free), making it cost-efficient for exploratory queries. Prefer it over generic web scrapers when you need consistently structured review objects (body, date, rating, reviewer metadata) without building custom parsers.

## Known failure modes

- Invalid or non-existent app package ID returns empty items array with count 0 (not charged)
- Unsupported country code may return no results
- Date range with no matching reviews returns empty result (not charged)
- Very restrictive keyword + rating + date combination may yield 0 results (not charged)
- Rate limiting or Google-side blocking may cause failed run (not charged)
- Invalid locale format may default or cause unexpected language results

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched reviews and an array of review items, each containing the review body text, submission date, star rating, language code, unique review ID, reviewer display name, reviewer profile image URL, and reviewer ID. The product field confirms the data source as 'google-play'.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "locale": {
   "type": "string",
   "default": "en_US",
   "description": "Language and region used by the app page, such as en_US."
  },
  "sortBy": {
   "enum": [
    "mostRelevant",
    "newest"
   ],
   "type": "string",
   "default": "mostRelevant",
   "description": "Order reviews by relevance or newest first."
  },
  "country": {
   "type": "string",
   "default": "US",
   "description": "Two-letter country code for the store view."
  },
  "endDate": {
   "type": "string",
   "default": "",
   "description": "Include reviews posted on or before this YYYY-MM-DD date."
  },
  "ratings": {
   "type": "array",
   "default": [],
   "description": "Include only these star ratings; empty includes all."
  },
  "keywords": {
   "type": "array",
   "default": [],
   "description": "Include reviews containing any of these terms, ignoring case."
  },
  "startPage": {
   "type": "integer",
   "default": 1,
   "minimum": 1,
   "description": "Skip this many review batches before collecting; the first batch is page 1."
  },
  "appIdOrUrl": {
   "type": "string",
   "description": "Google Play app package ID or app details URL."
  },
  "appVersion": {
   "type": "array",
   "default": [],
   "description": "Include only reviews that report one of these app versions."
  },
  "maxReviews": {
   "type": "integer",
   "default": 100,
   "minimum": -1,
   "description": "Stop after this many matching reviews. -1 allows up to 10,000."
  },
  "recentDays": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Include reviews from the last N days. 0 disables the date filter."
  },
  "pagesToScrape": {
   "type": "integer",
   "default": 10,
   "minimum": -1,
   "description": "Maximum review batches from the start page. -1 allows up to 100."
  },
  "reviewsPerPage": {
   "type": "integer",
   "default": 100,
   "maximum": 200,
   "minimum": 10,
   "description": "Request 10 to 200 reviews per additional batch. The embedded first batch can be smaller."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "body": null,
    "date": null,
    "rating": null,
    "language": null,
    "reviewId": null,
    "reviewer": null,
    "userImage": null,
    "reviewerId": null
   }
  ],
  "product": "google-play"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-play-app-reviews-scraper-88eebc21/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
