App Store Rank Tracker — Track Rankings, Prices & Competitors avatar

App Store Rank Tracker — Track Rankings, Prices & Competitors

Pricing

$80.00 / 1,000 chart processeds

Go to Apify Store
App Store Rank Tracker — Track Rankings, Prices & Competitors

App Store Rank Tracker — Track Rankings, Prices & Competitors

Track App Store rankings, prices and rank movements across countries. Get structured data for ASO research, competitor monitoring, app market analysis and product intelligence.

Pricing

$80.00 / 1,000 chart processeds

Rating

5.0

(3)

Developer

Emir Llonviche

Emir Llonviche

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

App Store Charts Scraper — New & Rising, 32 Countries

Get the Top Free and Top Paid App Store charts for up to 32 countries in a single run, and get what a chart alone never tells you: which apps are new, which ones are climbing, which ones chart in several countries at once, and what each one actually costs where it charts.

This is an unofficial scraper. It is not affiliated with, endorsed by, or sponsored by Apple Inc. All trademarks belong to their respective owners.

It reads Apple's public chart feed directly — no headless browser, no proxies, no API key, no login. A 3-country run finishes in a few seconds.

What you get

One row per app, per country, per chart:

FieldWhat it is
storefront, storefrontName, chartNameCountry code, country name, and which chart
rankPosition in the chart, 1 = top
name, developer, sellerApp title and who publishes it
appId, appStoreUrl, artworkUrlApple id, public page, icon at 512×512
isNewThe app was not in this chart on your previous run
rankChangePositions gained since your previous run (12 → 4 = +8)
peakRankBest rank it has reached across all your runs
daysInChartHow long it has been charting without interruption
alsoChartingIn, storefrontCountThe other countries where it charts right now
formattedPrice, price, currency, isFreeThe local price, in the local currency
averageUserRating, userRatingCountThe local rating — French users rate differently from American ones
daysSinceUpdate, lastUpdatedAt, version, releaseNotesHow actively the app is maintained
primaryGenre, genres, contentRating, minimumOsVersion, fileSizeMbCategory and technical details
releaseDate, chartUpdatedAt, scrapedAt, sourceUrlFirst release, Apple's chart timestamp, your run timestamp, source

What makes it different

Movement. Each run is compared against your previous one, stored between runs, so you see what entered the chart and what is climbing. Apps are tracked by their Apple id, so a rebranded app is not mistaken for a new one. Free and paid charts are tracked separately — they are two different rankings.

Cross-country presence. Every country you ask for is fetched in the same run, so an app breaking out in four markets at once is visible as such. A scraper that does one country per run cannot compute this at all.

Local prices and local ratings. Details are looked up per storefront. Apple's lookup returns the same number 2.99 whether you ask in dollars or euros — only the currency changes — and ratings differ by market too. Enriching a French chart against the American storefront would give you dollars and US ratings for apps ranked in France. Quietly wrong, and easy to miss. This Actor does one lookup per country instead.

On the first run there is no history to compare against, so isNew, rankChange and daysInChart are null — not true, not 0. Claiming everything is new when we simply have no history would be a lie you could not detect. Run it a second time and the movement fields fill in.

Input

{
"storefronts": ["US", "GB", "FR", "DE"],
"charts": ["top-free", "top-paid"],
"chartSize": 100,
"includeDetails": true,
"genre": "",
"timeoutSecs": 30
}
  • storefronts — two-letter country codes. Verified on both charts: AR AT AU BE BR CA CH CL CO DE DK ES FI FR GB IE IN IT JP KR MX NL NO NZ PL PT RU SE SG TR US ZA. Other codes are attempted with a warning rather than refused.
  • chartstop-free, top-paid, or both.
  • chartSize — 10 to 100 apps per chart.
  • includeDetails — genre, price, rating, version and update recency. One extra request per country.
  • genre — keep only apps whose genre contains this text (Games, Finance, Social Networking…). Needs details on; see the limits below.

Typical uses

  • Spot an app breaking out before it is obvious — new entries climbing in several countries at once.
  • Track your own app, or a competitor's, across markets on a schedule.
  • Compare what a category costs country by country, in local currency.
  • Find well-ranked apps that have stopped shipping updates.

Pricing

$0.08 per chart processed — one country, one chart. Two charts across three countries is six charts, $0.48. You are charged only for charts that actually returned data: a country that fails costs you nothing. Chart size, details and the genre filter are all included.

Running it on a schedule

Movement fields need a previous run to compare against, so this Actor is at its best on a schedule. Use Apify's Schedule, and keep the same countries and charts between runs so the history stays comparable.

Limits, stated plainly

  • Apple publishes exactly two charts here: Top Free and Top Paid. There is no top-grossing chart on this feed, and no iPad or Mac variant — every other name returns 404. Verified, not assumed.
  • 100 apps per chart is a hard ceiling. Above 100 Apple answers with a server error rather than a shorter list, so higher values are clamped before the request.
  • The chart feed's genres field is always empty. Genre comes from the details lookup, which is why the genre filter needs details switched on. The Actor tells you this instead of silently returning nothing.
  • rankChange compares against your previous run, whatever its date. Two runs three weeks apart give you a three-week delta.
  • An app that leaves the chart and returns is counted as new on its return: daysInChart measures an uninterrupted stay.
  • Freshness is not uniform across countries. During testing one storefront's free chart carried a timestamp ten days old while its paid chart was same-day. Every row exposes chartUpdatedAt so you can see the age of what you got instead of guessing.
  • Charts run in parallel and stay isolated: one country failing never stops the others, and RUN_SUMMARY records exactly which ones failed and why.

Output

Alongside the dataset, each run writes a RUN_SUMMARY record: charts requested, how many succeeded, how many failed with the reason, total rows, lookup calls made, and how many apps chart in more than one country. Point a monitor at it and you will know a storefront broke before your users tell you.

Support

Found a bug, or a storefront that should be on the verified list? Open an issue on the Actor page and it will be looked at.