App Store Chart Breakout Scanner avatar

App Store Chart Breakout Scanner

Pricing

Pay per usage

Go to Apify Store
App Store Chart Breakout Scanner

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

Kangsoo Hyun

Maintained by Community

Actor 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:

FieldMeaning
app_id, app_name, app_urlApple's App Store identifiers and canonical link
chart, storefront, rankWhich chart, which country, what position
breadth_score0–100. How broadly and how highly this app is charting (formula below)
markets_charting / markets_scannedIn how many of the scanned markets this app appears
best_rank, best_rank_marketIts strongest position and where
median_rankTypical position across all markets it charts in
primary_genre, genresApple's category labels
release_date, days_since_release, is_new_releaseHow new the app is
is_multi_market_breakoutNew release and charting in ≥ N markets
charts_presentWhether it shows up on top-free, top-paid, or both
feed_updated_at, snapshot_atApple's feed timestamp and your run timestamp

How breadth_score is calculated

No black box — you can recompute it yourself:

coverage = markets_charting / markets_scanned
rank_quality = 1 - (median_rank - 1) / chart_depth
breadth_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

OptionDefaultNotes
storefrontPresettop10top10, top30, top50, or custom
storefrontsYour 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
chartDepth50How deep to read each chart. Apple caps this at 100
maxResults1000Hard cap on billable rows
outputGranularitymarket-rowSee below — this is the option that controls your bill
onlyBreakoutsfalseReturn only rows flagged is_multi_market_breakout
minMarketsForBreakout3Markets needed to qualify as a breakout
newReleaseWindowDays90How new an app must be to count as a new release
sortBybreadth_scoreAlso 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 a market_ranks map 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. Its robots.txt declares 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-free and top-paid for apps. There is no top-grossing app 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.
  • genres is 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.