Reviews & apps · Live on Apify

Google Play Reviews Scraper

Export written Google Play reviews for your apps. Choose language, country, sort order and how many you want. Stable review IDs help you match reviews later.

About $0.10 for 1,000 reviews$0.0001 per review + $0.0035 per run. Apify bills you, not us.One review in a run of its own: about $0.0036.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

itemIdcom.google.android.apps.translate:0d19bfba-aa69-408e-8547-674e0572db26
reviewId0d19bfba-aa69-408e-8547-674e0572db26
packageIdcom.google.android.apps.translate

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: com.google.android.apps.translate in Apps. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Get public written reviews from Google Play. Add an app link or Android package ID. Then choose the review language, Google Play country, sort order, and number of reviews you want.

  • review text and score;
  • last update time and app version;
  • helpful vote count;
  • developer reply and reply time, when available;
  • the language, Google Play country, and sort order you chose;
  • stable review IDs that help you match the same review in later runs.

Who uses it

Product teams

See how scores change after a new version.

Support teams

Check which reviews got a developer reply.

Analysts

Group reviews by app and language.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Saved review$0.0001One saved unique review in the default dataset
Start fee$0.0035Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.

Examples

  • One review: about $0.0036.
  • 1,000 reviews: about $0.10.
  • Every day 100 reviews, for 30 days: about $0.40 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 48,000 reviews.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Can I export reviews to Excel?

Yes. Open the dataset and export to CSV, Excel or JSON.

Does the country show where the reviewer lives?

No. It only changes the store view used.

Can I get every old review?

No. You get the set Google Play returns for your settings.

Why is a developer reply empty?

Not every review has a reply.

Can I download the results as CSV or Excel?

Yes. Open the Dataset, click Export results, and choose JSON, CSV, Excel, or another format supported by Apify.

Can I get reviews from a specific reviewer country?

No. Google Play country changes the store view used for the request. It does not tell you where a reviewer lives.

Does the Actor get all old reviews?

No. It gets the current set that Google Play returns for your language and sort order. Google Play does not provide a public total that proves full history.

Where can I see why the Actor stopped?

Open Run report in the Output tab. The exact record name is RUN_SUMMARY.

Details

Step by step on Apify
  1. Add a Google Play app link or package ID to Apps.
  2. Choose the review language and sort order.
  3. Set how many reviews you want.
  4. Click Start.
  5. Open Your review results in the Output tab.
  6. Click Export results to download JSON, CSV, or Excel.
  7. Google Play can change. Check the run report when an app returns no rows. The required appIds field has a UI prefill, but no API default. An API request with {} is invalid; it never starts a hidden demo.
Use cases
  • Product teams: compare score, text and appVersion after a release.
  • Support teams: check developerReply and its update time.
  • Analysts: group exported reviews by app and requested language.
  • Data teams: update records by itemId when review content changes.
Tips for better results
  • A run can take up to 20 apps and 5,000 reviews per app.
  • Use the item ID to update reviews that change.
  • Open the run report to see why a run stopped.
Limits and good to know

Maximum scope is 20 apps, 5,000 reviews per app and 20,000 per run. The source returns pages of up to 150 reviews. The Actor uses one request stream, at most two request starts per second, up to three attempts per request, and at most 2 MiB per reviews response. An attempt timeout covers headers and body. Source work ends within 10 minutes even if the platform timeout is larger. A shorter platform timeout reserves 30 seconds for the run report. The standard 300-second demo keeps source work within the remaining 270 seconds.

  • every review from the full history of an app
  • reviews from every language or country setting
  • a stable relevance order between runs
  • that Google Play will always keep the same data source available
  • that the app's public review count will match the number of written reviews this Actor can get
Recent updates
  1. Update · 10 October 2026

    • Cover response-body reads with the HTTP timeout and reserve time for the run report.
    • Preserve normalized input when run resources fail; add RESOURCE_INVALID.
    • Refresh vulnerable transitive dependencies; pin basic-ftp security override.
  2. Version 0.1.5 · 2 September 2026

    • Published the Actor and Store listing.
    • Kept PPE at USD 0.0001 per saved unique review through apify-default-dataset-item = USD 0.10 per 1,000 saved reviews.
    • Release evidence records 0.1.5 on candidate and latest.
  3. Version 0.1.3

    • Prepared the Store text, support guide, price recommendation, release checklist, and monitoring plan for owner review.
    • Built and checked a private release candidate.
    • Confirmed a 10-review example run with direct access and no proxy.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "itemId": "com.google.android.apps.translate:0d19bfba-aa69-408e-8547-674e0572db26",
  "reviewId": "0d19bfba-aa69-408e-8547-674e0572db26",
  "packageId": "com.google.android.apps.translate",
  "score": 5,
  "text": "very nicer app",
  "lastModifiedAt": "2026-10-08T22:41:54.701Z",
  "appVersion": "10.38.67.991942559.4-release",
  "developerReply": null,
  "reviewer": null,
  "requestedLanguage": "en",
  "requestedCountry": "US",
  "sortMode": "newest",
  "observedAt": "2026-10-10T00:50:15.763Z"
}

Use it from code

Actor ID: cliqtomedia/google-play-reviews-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/google-play-reviews-scraper").call(run_input={
    "appIds": [
        "com.google.android.apps.translate"
    ],
    "language": "en"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-play-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"appIds": ["com.google.android.apps.translate"], "language": "en"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/google-play-reviews-scraper")
result = tool.invoke({"run_input": {"appIds": ["com.google.android.apps.translate"], "language": "en"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (17)
FieldType
schemaVersionstring
itemIdstring
reviewIdstring
packageIdstring
appUrlstring
requestedLanguagestring
requestedCountrystring
sortModestring
scoreinteger
textstring
lastModifiedAtstring
thumbsUpCountinteger
appVersionstring
criteriaarray
developerReplyobject
reviewerobject
observedAtstring
Input settings (7)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Apps requiredappIdsarray["com.google.android.apps.translate"]
Review languagelanguagestring"en"
Google Play countrycountrystring"US"
Sort reviews bysortstring"newest"
Reviews per appmaxReviewsPerAppinteger10
Total reviewsmaxTotalReviewsinteger10
Include reviewer detailsincludeReviewerProfilebooleanfalse

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure