App Store and Google Play Top Charts

io.github.danielhageverPublished by GitHub account danielhageverv1.0.0Updated Nov 2, 2026

Top Free, Paid and Grossing app charts by country for the App Store and Google Play, with rank moves

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Reads Apple App Store top charts (Top Free, Top Paid, Top Grossing, new) by country and category, with rank changes, via a hosted Apify MCP endpoint.

What you can do
  • Fetch App Store chart rankings for any storefront, in the overall chart or one of 24 categories, for iPhone and iPad
  • Choose chart types: top-free, top-paid, top-grossing, their iPad variants, and new, new-free and new-paid
  • Get one row per app with rank, app id, bundle id, developer, price, genre and release date
  • Optionally add star rating, rating count, version, last update, size and age rating per row
  • Compare several countries in one run and track rank moves against the previous read of the same chart
When to use it
Useful when you want an assistant to answer questions about current App Store rankings, compare charts across countries or categories, or follow how an app's rank moves over repeated runs, without an Apple developer account.
Requirements
A remote MCP endpoint at mcp.apify.com, added as a connector or in mcp.json with the tool selector for this scraper. Sign-in to Apify or an Apify API token sent as an Authorization bearer header. Network access to Apify.
Before you install
Requires an Apify account and API token, which is a billable credential. Runs are paid per chart row, so repeated or scheduled runs cost money; unreadable charts are not charged. Rank tracking depends on your account's previous reads of the same chart.

Installation

In SourceWeft

  1. Open App Store and Google Play Top Charts in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.danielhagever%2Fapp-store-charts/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "app-store-and-google-play-top-charts": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=glitchbound/app-charts-scraper,glitchbound/google-play-charts-scraper"
    }
  }
}

README

App Store Top Charts by country: Top Free, Top Paid and Top Grossing iOS rankings as JSON

Read Apple's iOS App Store top charts for any storefront: Top Free, Top Paid and Top Grossing for iPhone and iPad, plus what just launched (new, new-free, new-paid), in the overall chart or any of 24 categories. Each row has the rank, app id, bundle id, developer, price, genre and release date, and the rank change since your last run. No Apple developer account, no API key from Apple.

This repo is the quick start for the hosted App Store Top Charts Scraper on Apify: one HTTP call from the shell, a standard-library Python script that writes a CSV, and the setup for using it as a tool in Claude, ChatGPT or Cursor. For Android, see the sister repo google-play-top-charts-api.

Quick start: one curl

Get a free Apify API token at console.apify.com/settings/integrations, then:

bash
export APIFY_TOKEN=apify_api_...curl -s -X POST \  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \  -d '{"countries": ["us"], "charts": ["top-free", "top-grossing"], "categories": ["all"], "limit": 10}' \  "https://api.apify.com/v2/acts/glitchbound~app-charts-scraper/run-sync-get-dataset-items"

The response is a JSON array, one object per charting app.

Quick start: Python

example.py uses only the standard library and writes a CSV:

bash
python3 example.py --country us --chart top-free --chart top-grossing --limit 3python3 example.py inputs/games-four-markets.json

A real run of the first command:

6 chart rows written to charts.csv  US top-free #1: Vinted: Pre-loved marketplace (Vinted Limited)  US top-free #2: Muse from Meta (Meta Platforms, Inc.)  US top-free #3: TikTok Pro - Events (TikTok Ltd.)  US top-grossing #1: ChatGPT (OpenAI OpCo, LLC)  US top-grossing #2: YouTube (Google)

Use it from an AI agent (MCP)

Add this as a connector in Claude or ChatGPT:

https://mcp.apify.com?tools=glitchbound/app-charts-scraper

In Cursor or VS Code, the same address goes in mcp.json:

json
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=glitchbound/app-charts-scraper" } } }

The first call asks you to sign in to Apify or takes an API token. Then "what are the top grossing games in Japan right now?" is one tool call.

It is also listed in the official MCP Registry as io.github.danielhagever/app-store-charts, together with the Google Play charts tool (server.json).

Input

FieldWhat it does
countriesTwo-letter storefront codes, lowercase: us, gb (not uk), jp, in, il. Any App Store storefront works.
chartstop-free, top-paid, top-grossing, the same three with -ipad, and new, new-free, new-paid
categoriesall, or one of 24: games, finance, education, health-fitness, productivity, shopping and the rest
limitApps per chart, up to 100, which is Apple's maximum
includeDetailsAdds star rating, rating count, version, last update, size and age rating to every row, from one extra request per country
trackRankChangesOn by default: every row says where the app stood the last time your account read that chart
maxItemsCeiling for the whole run

Ready-made inputs are in inputs/. A storefront Apple rejects (uk instead of gb) comes back as an unbilled error row naming it, not as an empty result.

Output

One row per charting app. Two real rows from the run above are in sample-output.json; one of them, abridged:

json
{  "rank": 1,  "country": "US",  "chart": "top-grossing",  "category": "all",  "appId": "6448311069",  "bundleId": "com.openai.chat",  "title": "ChatGPT",  "developer": "OpenAI OpCo, LLC",  "price": 0,  "isFree": true,  "genre": "Productivity",  "releaseDate": "2023-05-18T00:00:00-07:00",  "url": "https://apps.apple.com/us/app/chatgpt/id6448311069?uo=2",  "chartedAt": "2026-10-26T00:57:11Z"}

appId is Apple's numeric id and bundleId the package name; both are stable across runs and storefronts.

Tracking rank over time

Rankings are interesting over time. Schedule a daily run on Apify (or call it from cron) and from the second run on every row also carries previousRank, rankChange (positive means it climbed), newInChart and previousChartedAt, so the dataset is a rank tracker rather than a pile of snapshots to diff.

FAQ

Is there an official App Store top charts API? Apple publishes its top charts as public feeds (the iTunes RSS charts). This reads exactly those, so the ranks are Apple's own, with no key and no login.

How do I compare countries? Pass several countries in one run; each country, chart and category combination comes back in the same dataset.

Is the Mac App Store included? No. Apple serves a Top Free Mac Apps feed in the same format, but its Top Paid and Top Grossing Mac feeds came back empty, so the Mac is left out rather than offered as one chart of three.

What does it cost? It is paid per chart row; rows for charts that could not be read are not charged. The current rate for your plan is on the Actor page.

Related

Questions or a chart that looks wrong? Open an issue here or on the Actor page.

License

MIT

Source: README.md at commit f2d873e

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestOct 26, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts