Google Play Top Charts Tracker — Free, Paid & Grossing avatar

Google Play Top Charts Tracker — Free, Paid & Grossing

Pricing

from $0.40 / 1,000 chart entries

Go to Apify Store
Google Play Top Charts Tracker — Free, Paid & Grossing

Google Play Top Charts Tracker — Free, Paid & Grossing

Google Play top charts for any country and category: top free, top paid and top grossing, up to 200 apps per chart. Run it again or on a schedule to get rank changes, new entries and apps that dropped out since the last run. No login.

Pricing

from $0.40 / 1,000 chart entries

Rating

0.0

(0)

Developer

Northbell

Northbell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

2 hours ago

Last modified

Share

Pick a country and a chart — top free, top paid or top grossing, optionally one category — and get the chart as rows: rank, app name, developer, rating, installs, price, category, link and icon, up to 200 apps per chart (the US top-free 100 in 6 s on 17 Oct 2026). Run it again, or daily, and every row adds the previous rank, places moved and whether it is a new entry, with a free summary row of new entries, drop-outs and the biggest risers and fallers. $0.50 per 1,000 apps, no login, no API key.

Try it now — the input is already filled in. Press Start: the US top-free chart on Google Play, 100 apps in about 4 seconds, for about $0.06.

ranknamedeveloperratinginstallsMinappCategory
2ChatGPTOpenAI4.781000000000Productivity
5WhatsApp MessengerWhatsApp LLC4.6210000000000Communication
9Vinted: Shop & sell pre-lovedVinted4.43100000000Shopping

Run it again and every row says how the app moved (previousRank, rankChange, isNewInChart), and a free summary row per chart lists the new entries, the apps that dropped out and the biggest risers — on our account, 9 hours after the previous read, Google Authenticator had entered at 99 and FOX One had dropped out. Pick top paid or top grossing, a category, or several countries in one run.

Then: paste the appId of any app that moved into Google Play Reviews Scraper — See Why the Rating Moved (input appIds) to read the reviews behind it.

Call it from a script or a schedule

curl -X POST "https://api.apify.com/v2/acts/northbell~google-play-top-charts-tracker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"countries":["us"],"charts":["top-free"]}'

The response is the rows themselves (a JSON array). To run it on a timetable instead, save the input as a task in Apify Console and add a Schedule; n8n, Make and Zapier run it through their Apify app with the same input.

What you get

Two kinds of rows, told apart by type. A chart-entry row is one app in one chart (charged); a chart-summary row is one per chart (free).

FieldWhat it is
country, chart, category, categoryIdwhich chart: country code, top-free / top-paid / top-grossing, and the category (All apps (no games) and categoryId null for the overall apps chart; otherwise the name and Google Play's id, e.g. Health & Fitness / HEALTH_AND_FITNESS)
rankposition in the chart, 1 = top
previousRank, rankChange, isNewInChart, previousRunAtthe change since your previous run of the same chart. rankChange is positive when the app moved up. null on the first run
appId, name, developerthe app (its Android package name) and the publisher name Google Play shows
ratingGoogle's average star rating with up to six decimals (4.779803), null for an app that has no ratings yet
installsMinthe install count Google Play shows as a lower bound (1,000,000+ becomes 1000000)
price, currencyprice in the store's own currency (0 = free; in the top grossing chart this is the app's own price, not its revenue)
appCategorythe app's own category, in the language you asked for
url, iconUrlthe Google Play page of the app and its icon
observedAtwhen the run started

chart-summary rows add entries (apps read), hasBaseline, previousRunAt, newEntryCount, droppedOutCount, newEntries (rank, appId, name), droppedOut (previousRank, appId, name), biggestRisers and biggestFallers (top 5 by rankChange, with rank, previousRank, rankChange) and a note. On the first run of a chart hasBaseline is false, previousRunAt, newEntryCount, droppedOutCount, newEntries, droppedOut, biggestRisers and biggestFallers are null, and note says to run it again.

Use it for

  • Competitor and market watching — see which apps break into the top charts of your category or country, and which ones fall out
  • Launch and campaign tracking — schedule it daily for a country and see whether a release or a marketing push moved a rank
  • Trend research — compare the same category across countries, or free against grossing, to find what pays where

Input

{ "countries": ["us", "gb", "jp"], "charts": ["top-free", "top-grossing"], "categories": ["Health & Fitness", "GAME"], "limit": 100, "language": "en" }

Categories can be Google Play ids (GAME, HEALTH_AND_FITNESS, FINANCE, TOOLS, GAME_PUZZLE …) or names (Health & Fitness, Games, Games: Puzzle …, case does not matter). Leave categories empty for the overall chart of apps. That chart has no games in it (Google Play keeps games in their own charts), so add GAME, or a game subcategory such as GAME_PUZZLE, to read games. Several values can also be typed on one line, separated by commas. Every combination of country × chart × category is read as its own chart.

The previous ranks are remembered per country, chart and category in a named key-value store in your Apify account, so the second run of the same Actor already shows movement. Schedule it (Apify → Schedules) at the same time every day for a clean history.

Pricing

$0.50 per 1,000 apps (one chart of 100 apps = $0.05), plus $0.01 per run. Summary rows and error rows (a country or chart that could not be read) are free. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing. For example, 10 countries × 3 charts × 100 apps is at most 3,000 apps = $1.50 + $0.01, and less than that because top paid charts are short (see below).

Notes

  • Public data only: the same top-chart lists Google Play shows on its own category pages for the Top free, Top grossing and Top paid tabs. No login. developer is the publisher name Google Play shows with each app; nothing else about people is read.
  • Google Play returns at most 200 apps per chart, so limit stops at 200. Rank is the position in Google's list.
  • Top paid charts outside games are short. Google Play lists few paid apps now: on the day this Actor was built, the US top paid chart of apps had 85 apps, Japan's had 7, and 37 of the 52 US categories had 8 or fewer (Health & Fitness: 1; Social: 0). The GAME top paid chart is the exception: 200 in the US. You get what Google lists. A chart with no apps comes back as a free chart-summary row with entries 0 and a note, not as an error. Top free and top grossing charts were never empty in testing, so an empty one is reported as a free error row.
  • Top grossing ranks apps by revenue but Google does not publish the amounts. You get the order, not the money. price there is the app's own price, which is 0 for most of them (their revenue comes from in-app purchases and subscriptions).
  • language only changes the language of app names and category names. The ranks do not depend on it. Charts depend on the country.
  • Countries are two-letter codes (us, gb, jp, de, kr, br, in …; uk is accepted as gb), about 190 of them. For a code Google Play has no store of its own for (for example cn, ir, cu, kp, or a small territory), Google does not return an error — it quietly answers with another store's chart. To avoid selling you the wrong chart, those codes are rejected before the run starts.
  • Category ids are checked the same way: an id Google does not know gives an empty chart that looks like a real one, so unknown ids are rejected. Available: the 32 app categories, FAMILY, WATCH_FACE, GAME and 17 game subcategories (GAME_PUZZLE, GAME_ACTION …). category is the chart's category; appCategory is the app's own category. In the GAME chart, appCategory is the game's subcategory (Puzzle, Action …).
  • previousRank, rankChange, isNewInChart and previousRunAt are null on the first run of a chart, and categoryId is null for the overall chart. previousRank and rankChange are also null for an app that was not in the chart last time. If you read more apps per chart than last time, isNewInChart is null for the ranks below your previous depth, because there is no way to tell whether they are new. Reading fewer never reports drop-outs below the new depth. A drop-out means the app is no longer within the top limit apps you read; it may still be further down Google's own chart.
  • Charts move through the day, so run it at about the same time of day and do not expect much movement between two runs a few minutes apart.
  • A run reads a chart in about a second. If Google Play refuses several charts in a row, the run stops, adds one error row with skippedCharts (how many were left) and tells you to run it again later. If Google changes how its chart tabs load, you get free error rows and a failed run rather than wrong data.
  • In the Apify Console the two views (Chart entries, Chart summaries) each list every row and only fill the columns that row type has. To see only summaries, filter on type = chart-summary.

To see the same charts for the App Store, see App Store Top Charts Tracker. To search apps and read app details on Google Play, see Google Play Scraper. To follow the rating of your own app over time, see Google Play Rating Tracker.

For AI agents

{"countries": ["us"], "charts": ["top-free"], "categories": ["Health & Fitness"], "limit": 10} returns one chart-summary row and 10 chart-entry rows with the rank, app, developer, rating, installs and price. Rows have type: chart-entry, chart-summary or error. Run the same input again later to get previousRank, rankChange (positive = moved up) and isNewInChart on every entry.

**Something broke or looks wrong?** Open an issue on this Actor's Issues tab and I'll look at it. **Found it useful?** A short review on the Store page helps other people find it.