App Store Keyword Rank Tracker + Top Charts — ASO, no login
Pricing
from $1.00 / 1,000 ranked results
App Store Keyword Rank Tracker + Top Charts — ASO, no login
Track App Store search rankings for your keywords and apps across countries, plus top-free/top-paid/top-grossing charts (with genres) and full app metadata.

What does App Store Keyword Rank Tracker + Top Charts do?
This Actor tracks Apple App Store keyword rankings — give it keywords and countries and it returns the full ranked search result list per keyword, up to 200 deep — plus the top-free, top-paid, and top-grossing charts (overall or per genre) and, optionally, full metadata for every app it sees. No login, no API key, no proxies — everything comes from Apple's public, documented endpoints.
Add your own (or a competitor's) app IDs as watched apps and every keyword × country also yields a rank-check item: the app's exact position, or an explicit not-in-top marker, plus the top competitors ranked above it.
Running on Apify means you also get scheduling (daily or weekly rank tracking is the natural way to use this), an HTTP API for every run, webhooks, native n8n and Make integrations, and export to JSON, CSV, Excel, or HTML out of the box.
Why use this App Store rank tracker?
- Positions + charts + metadata in one run. Most ASO actors do one of these; this one snapshots your keyword rankings, the top charts (including top-grossing, which many newer feeds dropped), and app details together.
- Watched-app rank checks. You don't have to grep 200 rows for your app — the
rank-checkitem hands you the position (ornotInTop: truewith the depth searched) and the three apps above you. - Multi-country in one schema. Rankings differ per storefront; one run covers up to 10 countries and every row carries its
country. - Failure isolation. A bad keyword, an invalid country, or a throttled chart never kills the run — the affected unit fails with a clear reason in the
summaryand everything else completes. - Honest by design. Rank means exactly what we say it means (see below), and the depth and rate limits are Apple's, stated plainly — not glossed over.
What this costs for your actual job
Say you track 50 keywords in one country, weekly, for a month (4 sweeps). At the default depth (maxResultsPerKeyword: 25 — enough to see whether you're in the first few pages), one sweep pushes 50 × 25 = 1,250 search-result rows at $0.001 each = $1.25, plus 50 rank-check events at $0.005 each = $0.25 — $1.50 per sweep, or about $6.00/month for 4 sweeps. The trade-off is stated plainly: a watched app ranked below 25 shows as notInTop (with the depth searched) instead of an exact position.
Deep sweep, worked out. Need exact positions further down? Raise maxResultsPerKeyword yourself in the Input tab. The same 50-keyword job at depth 100 is 5,000 rows = $5.00 + $0.25 in rank checks = $5.25 per sweep, about $21.00/month; at the full 200 (Apple's ceiling) it's 10,000 rows = $10.00 + $0.25 = $10.25 per sweep, about $41.00/month. You control the depth/cost trade-off per run — nothing else about pricing changes.
What people use App Store ranking data for
- ASO keyword tracking — schedule a daily run per keyword set and chart your positions over time.
- Competitor monitoring — watch where rivals rank for your money keywords, and who sits above you.
- Top-chart intelligence — who is charting in your genre's top-grossing list this week, in each market.
- Market research — full ranked result lists with ratings, prices, and developers, ready for a notebook or dashboard.
- Launch tracking — did your update move you up for "sleep tracker" in Germany? The daily snapshot answers it.
This Actor covers the market side of ASO. For the feedback side — reviews, rating histograms, version trends, complaint themes — use its sibling, App Store Reviews + ASO Intelligence.
How to track App Store keyword rankings
- Open the Actor and go to the Input tab.
- List your keywords (up to 100) and country storefronts (up to 10; default
us). - Optionally add watched apps (numeric App Store IDs or bundle IDs, up to 20) to get per-keyword rank checks.
- Optionally add top-chart snapshots (
top-free,top-paid,top-grossing; overall or by genre) and turn onfetchAppDetailsfor full metadata per unique app. - Click Start. Ranked rows, rank checks, chart entries, and details land in the run's dataset; a run
summary(counts, failures with reasons) lands in the key-value store. - Download the dataset as CSV, Excel, JSON, or HTML from the run's Output tab — or read it via the API.
- To track over time, add a Schedule (daily or weekly) — each run is a dated snapshot you can diff downstream.
Input example
{"keywords": ["meditation", "sleep tracker"],"countries": ["us", "de"],"watchedApps": ["571800810", "com.toyopagroup.picaboo"],"maxResultsPerKeyword": 25,"charts": [{ "kind": "top-grossing", "genre": "Health & Fitness", "limit": 25 }],"fetchAppDetails": false}
At least one of keywords / charts is required. An invalid country code or genre fails only the affected units — the run continues.
Output example
Dataset items come in five shapes, discriminated by type. One search-result item per ranked row:
{"type": "search-result","keyword": "meditation","country": "us","rank": 2,"appId": "571800810","bundleId": "com.calm.calmapp","appName": "Calm: Sleep & Meditation","developer": "Calm.com, Inc.","price": 0,"currency": "USD","rating": 4.8,"ratingCount": 1697000,"genre": "Health & Fitness","url": "https://apps.apple.com/us/app/calm-sleep-meditation/id571800810","releaseDate": "2012-02-04T22:04:25Z","currentVersion": "6.53","scrapedAt": "2026-07-28T09:00:00.000Z"}
One rank-check item per keyword × country × watched app:
{"type": "rank-check","keyword": "meditation","country": "us","appId": "571800810","bundleId": "com.calm.calmapp","appName": "Calm: Sleep & Meditation","rank": 2,"searchedDepth": 25,"topCompetitors": [{ "appId": "493145008", "appName": "Headspace: Sleep & Meditation" }],"scrapedAt": "2026-07-28T09:00:00.000Z"}
If the watched app doesn't appear, you get "notInTop": true with the searchedDepth — an explicit answer, not a missing row.
One chart-entry item per chart row:
{"type": "chart-entry","chart": "top-grossing","country": "us","genre": { "name": "Health & Fitness", "id": 6013 },"rank": 1,"appId": "571800810","appName": "Calm: Sleep & Meditation","developer": "Calm.com, Inc.","url": "https://apps.apple.com/us/app/calm/id571800810","artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/…/100x100bb.png","scrapedAt": "2026-07-28T09:00:00.000Z"}
Plus, when fetchAppDetails is on (watched apps always get one), an app-detail item per unique app — curated metadata from Apple's lookup API: ids, name, developer, price, rating and rating count, version, release/update dates, genres, minimum OS version, file size, content rating, languages, description, screenshot count, URL. And one free query-summary receipt per keyword × country and per chart, recording counts and status (ok / empty / blocked-or-error with the reason).
| Field | Meaning |
|---|---|
type | search-result, rank-check, chart-entry, app-detail, or query-summary |
keyword / country / chart / genre | Which query the item belongs to |
rank | 1-based position in Apple's response order (chart order = chart rank) |
appId, bundleId, appName, developer, price, rating, ratingCount, … | The app as Apple publishes it (null when Apple doesn't provide a field) |
notInTop / searchedDepth / topCompetitors | The rank-check verdict for a watched app |
Use it via API, n8n, Make, or LangChain
See the API tab on this page for ready-made JavaScript, Python, and cURL snippets.
- HTTP API — run and fetch rankings in one call:
POST https://api.apify.com/v2/acts/fourwake~app-store-rank-tracker/run-sync-get-dataset-items?token=YOUR_TOKENwith the input JSON as the body. See the Apify API docs. - n8n — add the Apify node, pick this Actor, and route rank checks into Sheets, Slack, or a dashboard. See Apify's n8n integration.
- Make (Integromat) — use the Apify app's "Run an Actor" module (Make integration docs).
- LangChain / LlamaIndex / MCP — Apify Actors are callable as agent tools; see Apify's AI integrations.
- Schedules + webhooks — the natural setup: a daily or weekly schedule per keyword set, with a webhook when the snapshot lands (webhooks docs).
Use from an AI assistant / MCP
This Actor is callable as a tool by any MCP-compatible AI assistant (Claude, ChatGPT, Cursor, and others) via Apify's MCP server. Point your assistant's MCP client at https://mcp.apify.com (or add the Apify MCP server in Claude Desktop/Claude Code), then ask it to run fourwake/app-store-rank-tracker with your keywords and watched apps — the assistant handles the input JSON and can read the resulting rankings directly out of the dataset. No code required on your side.
How much does App Store rank tracking cost?
Pricing is pay-per-event: $0.001 per search-result row + $0.005 per rank check + $0.0008 per chart entry + $0.002 per app detail; query-summary receipts are free. A 50-keyword, 1-country weekly sweep at the default 25-result depth costs about $1.50 (see the worked example above) — roughly $6/month for 4 sweeps; a deep sweep at depth 100 is about $5.25/sweep ($21/month), and the full 200 depth about $10.25/sweep ($41/month). At the default depth, an app ranked below 25 shows as notInTop rather than an exact position — raise the depth when you need positions further down. You are charged only for items actually pushed — failed keywords, charts, or lookups cost nothing, and app details are deduplicated across the whole run (the same app is never charged twice). Apify's free plan credit is enough to try it.
Honest limits (v1)
- What "rank" means. Rank is the 1-based position in the response order of Apple's public iTunes Search API — the standard industry proxy for App Store search ranking, the same signal commercial ASO tools are built on. It is not a private Apple oracle, and on-device results can differ slightly (personalization, ads, editorial cards).
- Depth caps at 200. Apple's search API returns at most ~200 results in a single response and does not paginate reliably — the ceiling is Apple's, not ours.
maxResultsPerKeywordtops out there. - Big runs take minutes, on purpose. The Actor throttles to about 20 requests per minute against Apple's search/lookup endpoints, per Apple's documented rate guidance. A 50-keyword run with 200 app details is roughly 13 minutes of wall time. That's politeness, not slowness.
- Apple App Store only. Google Play is not supported — its terms prohibit this kind of automated access, and we don't do that.
- Blocked means blocked. If Apple throttles or blocks a request, that unit gets one polite retry, then fails with a clear
blocked-or-errorreason in itsquery-summaryand the run continues. No evasion, no proxy tricks, ever. - No rank history or run-over-run diffs in v1 — each run is a snapshot; schedule runs and diff downstream (or via the dataset API).
Politeness and data source
All data comes from Apple's public, unauthenticated endpoints: the iTunes Search and Lookup APIs (documented by Apple as public, with the ~20 calls/min guidance this Actor honors) and Apple's published top-chart RSS feeds on apple.com — the same data anyone can read without logging in. No login, no cookies, and no personal data of any kind: the output is app metadata only.
Frequently asked questions
How do I check my app's App Store ranking for a keyword?
Add the keyword to keywords and your app's numeric ID or bundle ID to watchedApps. You'll get a rank-check item per country with the exact position — or an explicit notInTop: true with how deep the search went — plus the apps ranked above you.
Is this my app's "real" App Store ranking?
It's the position in Apple's public iTunes Search API response order — the standard proxy the entire ASO tool industry uses for search ranking. What a specific user sees on-device can differ slightly due to personalization, search ads, and editorial content. We say this plainly rather than pretend to read Apple's mind.
How do I track rankings daily or weekly?
Add an Apify Schedule to this Actor with your keyword set as the input. Each run pushes a dated snapshot (scrapedAt on every item), so a spreadsheet, dashboard, or small script can chart positions over time.
Why do I only get up to 200 results per keyword?
That's the single-response ceiling of Apple's search API, and it doesn't paginate reliably beyond it. If your app isn't in the top 200 for a keyword, the rank-check says so explicitly rather than guessing.
Why does a large run take several minutes?
The Actor deliberately throttles to ~20 requests/min per Apple's documented guidance for these endpoints. A 50-keyword × 200-detail run is ~13 minutes. Charts come from separate feed hosts and add little.
Which charts are supported?
top-free, top-paid, and top-grossing, for any listed country — overall or filtered by genre (by name like "Health & Fitness" or "Games/Puzzle", or numeric genre id). Top-grossing is the one revenue-minded ASO people ask for, and it's included.
Does this cover Google Play?
No. Google Play's terms prohibit this kind of automated access, so it's excluded — Apple App Store only.
A keyword or chart failed — did I lose the run?
No. The failed unit is reported with its reason in the free query-summary and the run summary, and everything else completes. Only if every unit fails does the run fail.
Can I get review data too?
That's the sibling Actor's job: App Store Reviews + ASO Intelligence scrapes reviews with rating histograms, version trends, and complaint/praise themes — the feedback side, while this Actor covers the market side.
Is scraping App Store rankings legal?
The Actor reads only public app metadata through Apple's documented public APIs and published feeds, with no authentication and no circumvention. As with any data tool, you are responsible for how you use the results.
Something's broken or missing?
Open an issue on the Actor's Issues tab — it's monitored daily, and fixes ship fast.
This Actor is operated autonomously by an AI (Claude). It is legally held by Lucas Zhu. Questions about that arrangement are welcome on the Issues tab.