App Store Chart Breakout Scanner
Pricing
Pay per usage
App Store Chart Breakout Scanner
Finds apps breaking out across multiple Apple App Store markets at once. Official Apple RSS feeds only. No reviews, no developer names, no personal data.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Kangsoo Hyun
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Find the apps that are breaking out across many Apple App Store markets at the same time — before they show up in the US top 10.
This Actor reads Apple's own public chart feeds for up to 50 country storefronts in a single run, then scores every app on how broadly it is charting, not just how high. The output is one clean, normalized dataset you can drop straight into a spreadsheet, a BI tool, or an AI agent.
It does not scrape reviews, developers, or anything about people. See What this Actor deliberately does not do.
Why breadth beats rank
A single-country top-100 list tells you what is already big in one place. It does not tell you what is moving.
An app that sits at rank 40 in twenty-five different countries is a very different signal from an app at rank 40 in the US alone — the first is a global breakout in progress, the second is one market's local taste. This Actor computes that difference for you and hands you a single sortable number.
Use it to:
- Spot a competitor's new app going global while it is still outside the US top 20
- Track your own app's rank across every market you ship in, in one run, on a schedule
- Feed a market-intelligence agent a compact daily snapshot of what is rising worldwide
- Find category breakouts to benchmark your ASO or UA spend against
What you get
Every row is one app, in one market, on one chart — enriched with cross-market context computed across the whole run:
| Field | Meaning |
|---|---|
app_id, app_name, app_url | Apple's App Store identifiers and canonical link |
chart, storefront, rank | Which chart, which country, what position |
breadth_score | 0–100. How broadly and how highly this app is charting (formula below) |
markets_charting / markets_scanned | In how many of the scanned markets this app appears |
best_rank, best_rank_market | Its strongest position and where |
median_rank | Typical position across all markets it charts in |
primary_genre, genres | Apple's category labels |
release_date, days_since_release, is_new_release | How new the app is |
is_multi_market_breakout | New release and charting in ≥ N markets |
charts_present | Whether it shows up on top-free, top-paid, or both |
feed_updated_at, snapshot_at | Apple's feed timestamp and your run timestamp |
How breadth_score is calculated
No black box — you can recompute it yourself:
coverage = markets_charting / markets_scannedrank_quality = 1 - (median_rank - 1) / chart_depthbreadth_score = round(100 * coverage * rank_quality)
An app charting at rank 1 in every scanned market scores 100. An app charting at the very bottom of one market out of fifty scores 0.
Input
| Option | Default | Notes |
|---|---|---|
storefrontPreset | top10 | top10, top30, top50, or custom |
storefronts | – | Your own ISO-3166-1 alpha-2 codes, e.g. ["us","gb","jp"], when preset is custom |
chartTypes | ["top-free"] | top-free and/or top-paid |
chartDepth | 50 | How deep to read each chart. Apple caps this at 100 |
maxResults | 1000 | Hard cap on billable rows |
outputGranularity | market-row | See below — this is the option that controls your bill |
onlyBreakouts | false | Return only rows flagged is_multi_market_breakout |
minMarketsForBreakout | 3 | Markets needed to qualify as a breakout |
newReleaseWindowDays | 90 | How new an app must be to count as a new release |
sortBy | breadth_score | Also markets_charting, rank, newest |
Choose the granularity that matches what you are paying for
You are charged per row delivered, so pick deliberately:
market-row— one row per app per market per chart. Use this when you want rank tracking per country. Scanning 30 markets × 2 charts at depth 50 produces roughly 3,000 rows.app-summary— one row per app per chart, carrying amarket_ranksmap of every country it charts in. Typically 10–30× fewer rows for the same information, because the top charts overlap heavily between countries. Use this when you want to know which apps are moving, not their exact position in each country.
If you only want the signal, combine outputGranularity: "app-summary" with onlyBreakouts: true.
Example
Input
{"storefrontPreset": "top30","chartTypes": ["top-free", "top-paid"],"chartDepth": 50,"outputGranularity": "app-summary","onlyBreakouts": true,"minMarketsForBreakout": 5,"newReleaseWindowDays": 60}
Output row
{"app_id": "6800616114","app_name": "Play Music Theory","app_url": "https://apps.apple.com/us/app/play-music-theory/id6800616114","chart": "top-paid","primary_genre": "Education","release_date": "2026-08-19","days_since_release": 31,"is_new_release": true,"markets_charting": 30,"markets_scanned": 30,"best_rank": 1,"best_rank_market": "us","median_rank": 3,"breadth_score": 96,"is_multi_market_breakout": true,"market_ranks": { "us": 1, "jp": 3, "gb": 3, "de": 2, "fr": 4 },"snapshot_at": "2026-09-19T14:57:13.049Z"}
A paid education app at rank 1–4 in all thirty of the world's largest App Store markets, five weeks after release. That is the kind of row this Actor exists to surface.
Run it on a schedule
Breadth is most useful as a time series. Set an Apify Schedule to run this daily, point it at the same dataset, and you have a rank history across every market you care about — with no baseline to maintain yourself.
What this Actor deliberately does not do
This is a product decision, not an oversight.
- No personal data. No reviews, no reviewer names, no developer or publisher names, no emails, no profiles. Apple's feed includes a developer name field; this Actor drops it before anything is written to the dataset.
- No app icons or artwork. Apple licenses those as promotional content under specific placement conditions. This Actor does not redistribute them.
- No login walls, no cookies, no session replay, no anti-bot evasion. There is nothing to evade.
- No scraping of App Store web pages. The only endpoint this Actor touches is Apple's public Marketing Tools RSS API (
rss.marketingtools.apple.com), the same feed Apple's own public RSS Builder generates. Itsrobots.txtdeclares no disallowed paths.
The practical upside for you: no proxies, no blocks, no breakage when a page layout changes, and nothing in the output that creates a data-protection problem downstream.
Known limits — stated up front
- Apple caps chart depth at 100. Asking for more returns an error, so the Actor clamps to 100.
- Apple publishes
top-freeandtop-paidfor apps. There is notop-grossingapp feed on this endpoint. - Not every storefront publishes every chart. Where Apple returns nothing, the run reports it and continues rather than failing.
- Apple's feed returns transient
503s under parallel load. The Actor stays at a polite request rate and retries with exponential backoff. This is why a wide scan takes a minute or two rather than seconds. genresis occasionally empty for a small number of entries in Apple's feed. The field is passed through as-is rather than guessed at.- Charts are a ranking, not a download count. Apple does not publish download numbers here, and neither does this Actor.
Output granularity and your bill
The RUN_STATS record in the run's key-value store reports market_row_observations, rows_built, rows_emitted, and unique_apps, so you can see exactly what you were charged for and tune outputGranularity, chartDepth, and maxResults before scaling up.
Data source
Apple Marketing Tools RSS API — https://rss.marketingtools.apple.com/api/v2/{storefront}/apps/{chart}/{limit}/apps.json
Publicly documented by Apple through its RSS Builder at https://rss.marketingtools.apple.com. App Store content and chart data are Apple's; this Actor normalizes and scores what Apple publishes.