# Google Play Search, Rank and App Details

> Google Play rank tracker for many keywords and countries. Or get app details by package name: rating, installs range, price and version.

URL: https://cliqtomedia.com/actors/google-play-apps-search/

Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-play-apps-search?fpr=cliqto

Search Google Play for many keywords in many countries in one run. Each app gets a rank. Or add package names and get app details.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify 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 Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `pdf scanner` in Search terms. Each start is one run.
3. **Download the results.** When 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.

## What it does

Search [Google Play](https://play.google.com/store/apps) by keyword in one or many countries and get the ranked list of apps for every term, with rating, ratings count, install range, price, genre, age rating, version and last update. Or add package names or Google Play URLs and get the same app details.

- `search` — for each keyword (term) and country, it runs one Google Play search and returns the apps in the same order as Google shows them. Every row has `rank` (1, 2, 3…), `term` and `country`. By default it also opens each app page and adds installs, ratings count, genre, age rating, version and last update.
- `details` — for each package name (for example `com.whatsapp`) or Google Play URL, it opens the app page in every country you choose and returns one row per app and country.

### Good for

- App store optimization (ASO): check which apps rank for your keywords in each country.
- Rank tracking: see where your own apps stand for 10–30 keywords, run after run.
- Competitor research: compare install range, rating, price, in-app purchases and last update of rival apps.
- App catalog enrichment: turn a list of package names into rows with title, developer, genre and age rating.

### Not a good fit

- No exact install numbers. Google shows a public range such as `10,000,000+`. The Actor returns this text in `installs` and its lower bound in `minInstalls`. It never estimates an exact count.
- About 30 apps per search. Google's search page shows about 30 apps for a term and has no next page. `maxItems` is 1–30.
- No reviews, screenshots, permissions, data safety or developer contact details (email, phone, address).
- No top charts, categories or "similar apps" lists.
- Results are what Google shows to a signed-out visitor in that country and language. Personal results on a phone can differ.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.003 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Google Play query answered | $0.0001 | One keyword search (term × country) or one app ID lookup (app ID × country) that Google Play answered, even when it had no apps or the app does not exist. Failed or skipped queries are free. |
| App row | $0.00045 (from $0.00038 on paid Apify plans) | One app stored in the dataset (with app page details when they are on). Partial, not_found and error rows are free. |

- One app: about $0.0034.
- 1,000 apps: about $0.46 (3 runs of up to 400).
- Every day 100 apps, for 30 days: about $1.44 a month.
- 400 apps once a week (4 runs a month): about $0.73 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-play-apps-search?fpr=cliqto

## Questions

### Why no exact install numbers?

Google Play shows only a range, like 10,000,000+. The tool returns that range.

### Are results the same as on my phone?

Not always. The tool sees what a signed-out visitor sees.

### Why is the version empty?

Many big apps show Varies with device instead of a number.

### Do I need a Google account?

No. It reads public pages without login.

### Why don't I get the exact number of installs?

Google Play shows only a range, such as `10,000,000+`. Other numbers you may see elsewhere are estimates. This Actor returns only what Google shows: `installs` and its lower bound `minInstalls`.

### Why is `score` null for some apps?

Nobody has rated the app yet. In that case `ratings` is 0 and `score` is null, not 0.

### Why is `version` null?

Many large apps show "Varies with device" instead of a version number. The Actor returns `null` instead of a wrong value.

### How fresh is the data?

Every run reads Google Play live. `fetchedAt` shows when each row was read.

## Data fields

- `status` (string): Row result: complete (app data, charged), partial (search row whose app page failed to load or answered 404; search fields only, not charged), not_found (search with no apps, or app ID not on Google Play in that country) or error (see errorCode, not charged).
- `mode` (string): search or details, as in the input.
- `queryType` (string): term for search rows, appId for details rows.
- `query` (string): The search term or app ID this row answers. Grouped status rows list several IDs, comma-separated.
- `queryIds` (array): Only on grouped details status rows: the app IDs this one not_found or error row covers (one row per batch of up to 10 IDs in one country). null on app rows and search rows.
- `term` (string): Search term (search mode). null in details mode.
- `country` (string): Two-letter Google Play country code used for the request (gl). null only on the INVALID_IDENTIFIER error row, whose identifiers were never sent to Google Play.
- `language` (string): Language code used for the request (hl); texts such as genre and content rating come in this language.
- `rank` (integer): 1-based position of the app in Google Play search results for this term and country, as shown to a signed-out user. null in details mode.
- `isTracked` (boolean): true when the app is in trackAppIds; null when no apps are tracked or in details mode.
- `appId` (string): Google Play package name, e.g. com.whatsapp.
- `title` (string): App name.
- `summary` (string): Short promo text from the app page. null without app details.
- `developer` (string): Developer name as shown on Google Play.
- `developerId` (string): Google Play developer ID: numeric, or a name-style ID such as WhatsApp+LLC.
- `developerUrl` (string): Developer page on Google Play, built from developerId.
- `score` (number): Average star rating (1–5), rounded to 3 decimals. null when the app has no ratings.
- `ratings` (integer): Number of ratings shown by Google; 0 for an app nobody has rated yet. null without app details.
- `reviews` (integer): Number of written reviews shown by Google; 0 for an app nobody has rated yet. null without app details.
- `ratingHistogram` (object): Ratings per star: oneStar … fiveStars. null without app details.
- `installs` (string): Google's public install range, e.g. 10,000,000+. Google does not publish exact install counts, and this Actor does not estimate them. null without app details.
- `minInstalls` (integer): Lower bound of the install range as a number (10,000,000+ → 10000000), for sorting and filtering. Not an exact count.
- `price` (number): Price in currency units; 0 for free apps.
- `free` (boolean): true for free apps.
- `currency` (string): ISO currency of price for this country, e.g. USD or EUR.
- `priceText` (string): Price as Google shows it, e.g. Free or $4.99. null without app details.
- `offersIAP` (boolean): true when the app has in-app purchases, false when it has none. null without app details.
- `iapRange` (string): In-app purchase price range as shown by Google, e.g. $0.99 - $49.99 per item.
- `adSupported` (boolean): true when Google marks the app as containing ads. null without app details.
- `genre` (string): Main category name in the request language, e.g. Productivity.
- `genreId` (string): Main category ID, e.g. PRODUCTIVITY or GAME_PUZZLE.
- `contentRating` (string): Age rating for this country, e.g. Everyone, Teen, USK: Ages 12+.
- `released` (string): Release date as Google shows it (text in the request language, e.g. May 31, 2017). null when Google hides it.
- `updatedAt` (string): Last update time of the app on Google Play, ISO 8601 UTC.
- `version` (string): Current version. null when Google shows Varies with device.
- `androidVersion` (string): Minimum Android version, e.g. 8.0. null when it varies with device.
- `url` (string): App page on Google Play.
- `icon` (string): App icon URL.
- `description` (string): Full description (only with includeDescription).
- `recentChanges` (string): What's new text (only with includeDescription).

## Input settings

- `mode` (string): search: keyword search, one ranked list per term and country. details: app details by package name or Google Play URL.
- `terms` (array): Keywords to search, e.g. pdf scanner. Up to 30 terms; terms × countries must be at most 60 searches per run. Each term is searched separately and gets its own rank 1, 2, 3…
- `countries` (array): Two-letter Google Play country codes, e.g. us, gb, de, br. Up to 30. Every term (or app ID) is processed in every country; prices, currency, age rating and rank are country-specific.
- `language` (string): Language code for texts such as genre, age rating and description, e.g. en, de, pt-BR. Search results also depend on it.
- `maxItems` (integer): How many apps to return per search (1–30). Google's search page shows about 30 apps for a term; the run never pads results.
- `includeDetails` (boolean): On (default): every search row also gets installs range, ratings count, genre, age rating, version and last update from the app page. Off: faster, search fields only (title, developer, score, price, icon). With details on, terms × countries × results must be at most 400 per run.
- `trackAppIds` (array): Optional package names or Google Play URLs to track. Their rows get isTracked = true, and RUN_SUMMARY reports each tracked app's rank per term and country within Google's first ~30 results, or not_in_results.
- `appIds` (array): Package names such as com.whatsapp, or URLs such as https://play.google.com/store/apps/details?id=com.whatsapp. Up to 300; app IDs × countries at most 400. An app missing in a country returns a not_found row (not charged).
- `includeDescription` (boolean): Adds the full description and What's New text from the app page. Makes rows much larger.

## Step by step on Apify

1. Open the Input tab.
2. Keep Mode = `Search by keywords` (the default).
3. Keep the prefilled Search terms `pdf scanner` and Countries `us`, or add your own.
4. Keep Results per term and country = 20 and click Start.
5. Open the Output tab and the Search results view. Check `rank`, `title`, `installs` and `score`.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Keyword rank research | `terms` + `countries` | App row per rank | `term`, `country`, `rank`, `appId`, `title` | Export CSV, compare countries |
| Track my app's rank | `terms` + `trackAppIds` | Run summary `rankTracking` | `rank`, `status` (`ranked` / `not_in_results`) | Schedule a daily run |
| Competitor snapshot | `mode: details` + `appIds` | App row per app and country | `installs`, `score`, `ratings`, `price`, `updatedAt`, `version` | Google Sheets or API |
| Fast keyword scan | `includeDetails: false` | Search row | `rank`, `title`, `developer`, `score`, `price` | Pick apps for a details run |

## Tips

- Turn off app page details for a fast keyword scan.
- Use package names like com.whatsapp in details mode.
- Schedule a daily run to see rank changes.

## Limits



- Up to 60 searches (terms × countries) and up to 30 apps per search.
- With app page details: up to 400 app pages per run (for example 20 terms × 2 countries × 10 apps). Such a run takes about 3.5 minutes.
- Without details: up to 60 × 30 = 1,800 rows, in under a minute.
- Details mode: up to 300 app IDs and 400 lookups (app IDs × countries).

## Sample result

```json
{
  "status": "complete",
  "mode": "search",
  "term": "pdf scanner",
  "country": "us",
  "rank": 2,
  "appId": "imagetopdf.pdfconverter.jpgtopdf.pdfeditor",
  "title": "Image to PDF - PDF Maker",
  "developer": "Simple Design Ltd.",
  "score": 4.877,
  "ratings": 2426697,
  "installs": "50,000,000+",
  "minInstalls": 50000000,
  "free": true,
  "offersIAP": true,
  "genre": "Productivity",
  "contentRating": "Everyone",
  "updatedAt": "2026-09-28T13:34:21.000Z",
  "version": "1.7.8",
  "description": null,
  "detailsIncluded": true,
  "errorCode": null
}
```

## Use it from code

Actor ID: `cliqtomedia/google-play-apps-search`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/google-play-apps-search").call(run_input={
    "mode": "search",
    "terms": [
        "pdf scanner"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-play-apps-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "terms": ["pdf scanner"]}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/google-play-apps-search")
result = tool.invoke({"run_input": {"mode": "search", "terms": ["pdf scanner"]}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate.

## Similar tools

- [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/)
- [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/)
- [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/)
- [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/)
- [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/)
- [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/)
