App Store Keyword Rank Tracker & App Store Top Charts - ASO avatar

App Store Keyword Rank Tracker & App Store Top Charts - ASO

Pricing

Pay per event

Go to Apify Store
App Store Keyword Rank Tracker & App Store Top Charts - ASO

App Store Keyword Rank Tracker & App Store Top Charts - ASO

Apple App Store keyword rank tracker and top charts (free, paid, grossing, new) by country and category, plus Apple Podcasts charts and daily rank changes. Official Apple feeds, $0.50/1k rows.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Yukai Lin

Yukai Lin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

What does App Store Keyword Rank Tracker & Top Charts do?

Input: countries plus chart types and categories, or keywords plus the apps you track. Output: one row per chart entry, search result or tracked-app rank. Price: $0.50 per 1,000 chart entries or search results, $3 per 1,000 tracked-app ranks, no start fee; empty, failed and invalid items are free (a search for which Apple returns no apps at all is free too).

It gives you Apple App Store top charts and keyword rankings as clean rows, from Apple's own public feeds:

  • 📈 Top charts: Top Free, Top Paid, Top Grossing and New apps for iPhone, iPad and Mac, in any App Store country (us, gb, de, jp, br…), overall or per category (Productivity, Finance, Games, "Games: Puzzle"…). Up to the top 100 of each chart
  • 🎙️ Apple Podcasts charts: Top Podcasts overall or per category (Technology, Business, True Crime…), with the RSS feed URL and episode count on request
  • 🔎 Keyword ranks (ASO): for each keyword and country, the position of your app and your competitors in App Store search results (up to 200 deep), plus the top N apps for that keyword
  • 📊 Daily rank changes: turn on Compare with the previous run and schedule it: every row gets changeType (new, up, down, same), previousRank and rankChange, and apps that left a chart get a free dropped row
  • ⭐ Optional details: average rating, rating count, version, last update, content rating and size for every app in a chart (same price)
  • 💵 $0.50 per 1,000 chart entries or search results, $3 per 1,000 tracked-app ranks. No start fee. Empty charts and failed requests are free

Where the data comes from, and Apple's limits

WhatApple sourceLimit
Top charts (apps)Apple's public chart feeds itunes.apple.com/<country>/rss/<chart>/limit=100[/genre=<id>]/jsonTop 100 per chart. iPad has Top Free, Paid and Grossing, Mac only Top Free (Apple's Mac Paid and Grossing feeds are empty); "New apps" charts exist for iPhone and have no per-category version
Top PodcastsSame feeds (toppodcasts)Top 100 per country and category
Keyword ranksThe iTunes Search API (itunes.apple.com/search, software)Up to 200 results per keyword and country (Apple answers with about 5% fewer than asked: a search depth of 200 returns around 190 apps). Apple asks for about 20 calls per minute, so keyword searches run about 3 seconds apart
DetailsThe iTunes Lookup API100 apps per call

What this means in practice:

  • Charts are Apple's own ranking, the same lists as the App Store's charts, refreshed by Apple several times a day (chartUpdatedAt on each row).
  • Keyword ranks are the order of Apple's Search API, which is a public version of App Store search. It is close to what users see, but the App Store app can personalise results and show ads first; treat ranks as a consistent daily signal rather than the exact position on one person's phone. Every keyword row carries rankSource: "itunes-search-api" so the caveat travels with the data.
  • Top 200 or deeper chart positions are not published by Apple's public feeds, so this Actor stops at 100.

Who is it for?

  • App developers and ASO specialists: track your app's keyword positions and chart ranks every day, in every country you care about
  • Mobile marketers and agencies: watch competitors climb or fall, spot new apps entering a category chart
  • Investors and analysts: daily Top Grossing snapshots per country and category, as a time series
  • Podcasters and podcast networks: Top Podcasts per category and country, with feed URLs

How much does it cost?

Price per 1,000 events by Apify plan:

EventFreeStarterScaleBusiness and higher
Chart entry or search result$0.50$0.50$0.45$0.40
Tracked app keyword rank$3.00$3.00$2.70$2.40

No start fee. Not charged: empty charts, charts or searches that fail, searches for which Apple returns no apps at all, "dropped out of the chart" rows, and invalid inputs. Details and descriptions are included at the same price.

Examples: the top 100 Top Free apps in 10 countries = 1,000 entries = $0.50. 20 keywords × 3 countries × 2 tracked apps = 120 ranks = $0.36 (plus $0.03 if you also list the top 5 results per keyword).

For comparison (checked September 2026, Apify Store, Free plan prices): sourabhbgp/apple-app-store-scraper charges $0.002 per result; slothtechlabs/ios-android-app-rankings-scraper $0.001 per app ranking; slothtechlabs/aso-keyword-rank-tracker $0.001 per result row; petersutarik/aso-keyword-intel $0.002 per ranking row; epctex/appstore-scraper $0.005 per search result; johnvc/apple-app-store-search $0.015 per app plus $0.0175 per run.

Control your cost

  • What is charged: each chart entry or search result row returned, and each tracked app's rank for a keyword and country.
  • Positions per chart (default 100) and Top results to list per keyword (default 10) cap the rows per chart or keyword.
  • At the start, the run logs its worst case (e.g. Plan: 40 chart entries × $0.0005 = at most $0.02 (worst case for 4 charts × top 10 …)) and warns when that is more than your maximum charge per run.
  • When the maximum charge per run is reached, the run stops, keeps everything found so far, and says so. The SUMMARY record then has status: "LIMIT_REACHED" and notProcessed (charts or keywords not processed).

How to use it

  1. Pick What to get: Top charts or Keyword ranks.
  2. Enter Countries (two-letter codes).
  3. Charts: pick the Charts and Categories ("all" for the overall chart) and Positions per chart. Keyword ranks: enter Keywords and the Apps to track (App Store links, ids or bundle ids).
  4. Optional: Compare with the previous run plus a Monitor name, then create a daily schedule.
  5. Click Start. The Chart entries, Keyword ranks and Top search results tables are in the Output tab; export as CSV, Excel or JSON, or call the Actor from the API.

Input example: charts

{
"mode": "charts",
"countries": ["us", "jp"],
"chartTypes": ["topfree", "topgrossing"],
"genres": ["all", "Games: Puzzle"],
"maxRank": 100,
"includeDetails": true,
"compareWithPrevious": true,
"monitorName": "daily-charts"
}

Input example: keyword ranks

{
"mode": "keywords",
"keywords": ["habit tracker", "to do list"],
"trackApps": ["https://apps.apple.com/us/app/habitkit/id6443918070", "983826477"],
"countries": ["us", "gb"],
"resultsPerKeyword": 3,
"compareWithPrevious": true,
"monitorName": "my-keywords"
}

Output example: chart entry

{
"type": "chart-entry",
"success": true,
"input": "us Top Free",
"media": "apps",
"device": "iphone",
"country": "us",
"chart": "topfree",
"chartTitle": "Top Free",
"genreId": null,
"genre": "All",
"rank": 1,
"appId": "6760173601",
"bundleId": "com.facebook.hatch",
"name": "Muse from Meta",
"developer": "Meta Platforms, Inc.",
"developerId": "284882218",
"developerUrl": "https://apps.apple.com/us/developer/meta-platforms-inc/id284882218",
"price": 0,
"currency": "USD",
"priceLabel": "Get",
"category": "Productivity",
"categoryId": "6007",
"releaseDate": "2026-09-08T07:00:00.000Z",
"url": "https://apps.apple.com/us/app/muse-from-meta/id6760173601",
"iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/73/72/9b/73729ba4-8f07-dabc-9e4c-07ee3d667630/HatchAppIconPublic-0-0-1x_U007ephone-0-1-0-sRGB-0-85-220.png/512x512bb.png",
"averageRating": 4.87,
"ratingCount": 107455,
"version": "9.0",
"currentVersionReleaseDate": "2026-09-26T18:41:05Z",
"contentRating": "17+",
"fileSizeMB": 130,
"primaryGenre": "Productivity",
"changeType": "new",
"previousRank": null,
"rankChange": null,
"chartUpdatedAt": "2026-09-30T14:30:30.000Z",
"charged": true
}

(averageRating … primaryGenre appear with Add ratings and version details. With comparison on, the second run says e.g. "changeType": "up", "previousRank": 10, "rankChange": 7.)

Output example: podcast chart entry (with details)

{
"type": "chart-entry",
"input": "us Top Podcasts True Crime",
"media": "podcasts",
"country": "us",
"chart": "top",
"chartTitle": "Top Podcasts",
"genreId": 1488,
"genre": "True Crime",
"rank": 1,
"podcastId": "1322200189",
"name": "Crime Junkie",
"author": "Audiochuck",
"category": "True Crime",
"url": "https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189",
"feedUrl": "https://feeds.simplecast.com/qm_9xx0g",
"episodeCount": 531,
"latestEpisodeDate": "2026-09-28T07:00:00Z",
"genres": ["True Crime"],
"charged": true
}

Output example: tracked app keyword rank

{
"type": "keyword-rank",
"success": true,
"keyword": "to do list",
"country": "us",
"device": "iphone",
"searchDepth": 200,
"resultsReturned": 183,
"trackedApp": "983826477",
"appId": "983826477",
"appName": "Productive - Habit Tracker",
"rank": 79,
"found": true,
"changeType": "new",
"topResults": [
{ "rank": 1, "appId": "993066159", "name": "To Do List MinimaList & Widget" },
{ "rank": 2, "appId": "1212616790", "name": "Microsoft To Do" },
{ "rank": 3, "appId": "572688855", "name": "Todoist: To Do List & Calendar" }
],
"charged": true
}

A tracked app that is not in the searched results gets "rank": null, "found": false (still a useful answer, charged as a rank).

Errors (not charged)

{ "type": "input", "input": "newapps + Games: Puzzle", "field": "genres", "success": false, "errorType": "invalid_input", "error": "\"newapps + Games: Puzzle\": Apple's New Apps chart has no per-category version (the feed returns the overall list); use it with genre \"all\" (not charged)", "charged": false }

errorType is invalid_input (unknown country, category, chart, keyword without letters or digits, or app; also an unknown "What to get", Store or Device value, which ends the run at once), not_found (Apple publishes an empty chart for that store and category, a keyword search returns no apps, or a tracked app exists in none of your countries), blocked (Apple kept answering "rate limited"), network or timeout.

The SUMMARY record (key-value store) has status (SUCCESS, PARTIAL_RESULTS, FAILED, NO_RESULTS, LIMIT_REACHED), totals and perItem (per chart: entries returned, new entries, moved up and down, dropped; per keyword: results returned, rows).

Integrations

  • Schedules: run daily with Compare with the previous run for a rank history and movement alerts.
  • API and webhooks: start runs and read the dataset from any language; a webhook tells you when a run finishes.
  • Exports: CSV, Excel, JSON, XML and HTML from the dataset.
  • Apify integrations: send results to Google Sheets, Slack, Zapier, Make, n8n and others from the Integrations tab.
  • Pair it with Apple App Store Reviews & App Details (tidytools/apple-app-store-reviews) to read the reviews of the apps you track.

Use with AI agents (MCP)

Connect Apify's MCP server (https://mcp.apify.com?tools=tidytools/app-store-top-charts) to Claude, Cursor or any MCP client, then ask e.g. "Which finance apps are in the US and UK Top Free top 20 today, and which ones are new since yesterday?"

{ "mode": "charts", "countries": ["us", "gb"], "genres": ["Finance"], "maxRank": 20, "compareWithPrevious": true }

Failed items are not charged and carry an errorType.

Tips and limitations

  • Top 100 per chart is the most Apple's public feeds publish. Several categories and countries per run are fine (one request per chart).
  • "New apps" charts are iPhone-only and have no category version (the feed returns the same overall list for every category), so they are refused with a category. "New Apps" and "New Free Apps" are almost the same list (about 95% of the entries overlap, because few new apps are paid): pick one of them unless you want both, since each is charged.
  • Category names are matched ignoring case; a shortened name works from 4 letters ("health", "photo"). Anything unclear (for example "foo") is refused with a free error row rather than guessed. Some small or restricted stores have empty charts for some categories: those come back as a free not_found row.
  • Games sub-categories use "Games: Puzzle" (or the id, 7012). A category name that is also a games sub-category ("Music", "Sports") means the main category.
  • Keyword ranks are read at about 20 searches per minute (Apple's request); 100 keyword × country pairs take about 5 minutes.
  • Compare with the previous run remembers the chart positions per monitor name. Positions deeper than what the previous run read are marked unknown instead of new.
  • Prices are in the country's currency (currency); names and categories come in the store's language (for example Japanese in the jp store).

Terms and responsible use

  • The Actor reads Apple's public chart feeds and the iTunes Search and Lookup APIs, which Apple publishes for developers and marketers. No login, no scraping of App Store pages, no personal data.
  • Rows contain public store information only: app names, developers (the seller shown on the App Store), prices, categories, ratings.
  • Apple asks for about 20 Search/Lookup calls per minute; the Actor keeps to that. App names, icons and descriptions belong to their owners; follow Apple's marketing guidelines if you publish them.

FAQ

Does the Actor collect usage data? The Actor sends one anonymous usage counter per run (input type, item count range, outcome) to improve the tool; no URLs, content or account data.

Is this the real App Store chart? Yes: the rows come from Apple's own chart feeds, the same rankings the App Store shows, for the country and category you pick.

Can I get the top 200? Apple's public feeds stop at 100. For keyword searches the depth is 200.

How exact are keyword ranks? They follow Apple's Search API order, which is close to App Store search but without personalisation and ads. Use them to follow trends day by day.

Can I track many apps and keywords every day? Yes. Add your keywords and apps, turn on comparison, and schedule the Actor. You pay per rank returned.

What happens if I mistype a country, category or app? The valid part still runs. Each bad value gets a free error row (type: "input", errorType: "invalid_input", or not_found for a tracked app that exists in none of your countries) and the run ends normally. If nothing valid is left (for example no tracked app and "Top results to list per keyword" set to 0), you get one free error row and nothing is read.

Am I charged when my app is not in the results? Yes, as one tracked-app rank: the row says rank: null, found: false, which is the answer. Searches that fail, searches for which Apple returns no apps at all (a made-up term, or an Apple hiccup: the saved ranking is kept, so the next run does not show your apps as "entered"), charts that are empty and apps that do not exist are free.

Does it work for iPad and Mac? Charts: iPad Top Free, Paid and Grossing; Mac Top Free (Apple publishes no other Mac chart). Keyword ranks: set Device to iPad or Mac to search those stores.

More tools by TidyTools that work well with this one: