App Store Scraper: Apple App Details & Top Charts by Country avatar

App Store Scraper: Apple App Details & Top Charts by Country

Pricing

from $2.00 / 1,000 app details

Go to Apify Store
App Store Scraper: Apple App Details & Top Charts by Country

App Store Scraper: Apple App Details & Top Charts by Country

Get App Store app details (price, rating, version, developer, size, category) and Top Free / Top Paid charts (up to 200 ranks) for any country, category and iPhone / iPad / Mac, with rank changes between runs. Official Apple endpoints only, no reviews, robots.txt compliant.

Pricing

from $2.00 / 1,000 app details

Rating

0.0

(0)

Developer

Julian Genuario

Julian Genuario

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Get App Store app details and Top Charts (Top Free and Top Paid, up to 200 ranks) for any country, any category and iPhone, iPad or Mac, as clean JSON, CSV or Excel. Schedule it daily and every chart row also tells you how many places the app moved since the last run.

It only uses Apple's own public endpoints: the official iTunes Lookup API for app details and the public App Store Top Charts pages for rankings. No login, no API key, no browser, no reviews scraping, and it obeys Apple's robots.txt. That makes it fast, cheap and stable.

What does App Store Scraper do?

App Store Scraper gets Apple App Store app details (price, rating, number of ratings, version, release notes, developer, size, category) by app ID, URL or bundle ID, all apps of a developer, and the iOS Top Free and Top Paid charts (up to rank 200) for any country, category and iPhone, iPad or Mac. Run it on a schedule to track app rankings and rank changes for ASO and competitor research.

How to use App Store Scraper

  1. Click Try for free on this page (a free Apify account is enough to start).
  2. Fill in the input (see the examples below) or keep the prefilled example.
  3. Click Start and wait for the run to finish.
  4. Download the results from the Output tab as JSON, CSV, Excel or HTML, or read them with the Apify API.
  5. Optional: create a Schedule to run it daily or weekly, and connect a webhook or an integration (Make, Zapier, n8n, Slack).

What you can use it for

  • ASO and market research: see which apps rank in your category in 10 countries at once, with price, rating count, size and last update date.
  • Competitor tracking: follow a list of competitor apps (or every app of a developer) and see when they change price, ship a new version or gain ratings.
  • Daily rank monitoring: schedule the Actor; rankChange shows climbers and fallers, isNewInChart shows new entries.
  • Lead generation for app agencies and SDK vendors: developer name, developer page and seller website of every charted app.
  • Investment and trend research: which categories and countries new apps are breaking into.

What you get

ModeInputOne result per
App detailsappIds: numeric IDs, App Store URLs or bundle IDsapp and country
Developer cataloguedeveloperIds: developer IDs or developer page URLsapp and country
Top ChartschartCategories + chartTypes + countrieschart row (rank)

App fields: appId, bundleId, name, developer, developerId, developerUrl, sellerName, sellerWebsite, price, currency, formattedPrice, isFree, rating, ratingCount, ratingCurrentVersion, ratingCountCurrentVersion, version, currentVersionReleaseDate, releaseNotes, firstReleaseDate, primaryCategory, primaryCategoryId, categories, contentRating, advisories, fileSizeBytes, minimumOsVersion, languages, supportedDevicesCount, isGameCenterEnabled, url, iconUrl (plus description and screenshots if you ask for them).

Chart rows add: chart (top-free / top-paid), chartTitle, categoryId, categoryName, platform, rank, previousRank, rankChange (positive = climbed), isNewInChart, subtitle, hasInAppPurchases, isEditorsChoice and enriched.

Every item of the same type has exactly the same keys, so CSV and Excel exports line up.

Input examples

Top 100 free and paid games in the US, UK and Brazil, with full details for every rank:

{
"countries": ["us", "gb", "br"],
"chartCategories": ["Games"],
"chartTypes": ["top-free", "top-paid"],
"maxChartRank": 100
}

Track three competitors and a whole developer in two countries:

{
"appIds": ["6448311069", "https://apps.apple.com/us/app/notion/id1232780281", "com.burbn.instagram"],
"developerIds": ["https://apps.apple.com/us/developer/meta-platforms-inc/id284882218"],
"countries": ["us", "de"]
}
FieldDefaultDescription
appIdsnoneIDs (6448311069), URLs or bundle IDs (com.openai.chat).
developerIdsnoneDeveloper IDs or developer page URLs; returns all their apps.
countries["us"]2-letter storefront codes.
chartCategoriesnoneCategory IDs or names (table below). Empty = no charts.
chartTypesbothtop-free, top-paid.
chartPlatformiphoneiphone, ipad or mac.
maxChartRank100Ranks 1 to N (max 200).
enrichChartEntriestrueFull Lookup API details for every rank (otherwise ranks 26+ only have the ID).
trackRankChangestrueStores each chart in the named key-value store app-store-chart-history and compares on the next run.
includeDescription / includeScreenshotsfalseHeavier optional fields.
maxConcurrency / maxRequestsPerMinute / delayBetweenRequestsSecs1 / 20 / 1Politeness limits.

Categories

36 All Apps (overall chart) · 6000 Business · 6001 Weather · 6002 Utilities · 6003 Travel · 6004 Sports · 6005 Social Networking · 6006 Reference · 6007 Productivity · 6008 Photo & Video · 6009 News · 6010 Navigation · 6011 Music · 6012 Lifestyle · 6013 Health & Fitness · 6014 Games · 6015 Finance · 6016 Entertainment · 6017 Education · 6018 Books · 6020 Medical · 6021 Magazines & Newspapers · 6023 Food & Drink · 6024 Shopping · 6026 Developer Tools · 6027 Graphics & Design. Game sub-genres: 7001 Action · 7002 Adventure · 7003 Casual · 7004 Board · 7005 Card · 7006 Casino · 7009 Family · 7011 Music · 7012 Puzzle · 7013 Racing · 7014 Role Playing · 7015 Simulation · 7016 Sports · 7017 Strategy · 7018 Trivia · 7019 Word.

You can type the name instead of the ID ("Games", "Puzzle", "Photo & Video").

Output example

{
"type": "chart-entry",
"country": "us",
"platform": "iphone",
"chart": "top-free",
"chartTitle": "Top Free Games",
"categoryId": "6014",
"categoryName": "Games",
"rank": 1,
"previousRank": 3,
"rankChange": 2,
"isNewInChart": false,
"subtitle": "Brain Puzzle Games",
"hasInAppPurchases": true,
"enriched": true,
"appId": "6761760135",
"bundleId": "com.oakever.meowdoku",
"name": "Meowdoku!",
"developer": "Oakever Games",
"price": 0,
"currency": "USD",
"isFree": true,
"rating": 4.81,
"ratingCount": 373631,
"version": "1.22.0",
"currentVersionReleaseDate": "2026-10-25T07:00:00Z",
"primaryCategory": "Games",
"url": "https://apps.apple.com/us/app/meowdoku/id6761760135",
"scrapedAt": "2026-10-26T13:13:05.120Z"
}

A run summary (apps, chart rows, IDs not found in a country, empty charts, failed requests) is saved in the default key-value store as RUN_SUMMARY. If nothing at all is extracted, the run is marked as failed instead of "succeeded with 0 results".

Pricing

Pay per result, no subscription:

  • App details: USD 2.00 per 1,000 apps
  • Chart entry (one rank in a Top Free / Top Paid chart): USD 1.00 per 1,000 entries
  • Actor start: USD 0.00005 per run

Example: the top 200 free games in one country (each chart row already includes the app details) is 200 chart entries = about USD 0.20.

Speed and limits

Apple's Lookup API allows about 20 calls per minute, so the Actor spaces requests ~3 seconds apart and batches up to 100 apps per call. A 200-rank chart with full details takes about 4 requests (~15 s). 10 countries x 2 charts x 100 ranks is about 2,000 rows in roughly 2 minutes.

What it does not do

  • No reviews. Plenty of review scrapers exist; this one focuses on metadata and rankings.
  • No keyword search. Apple's robots.txt disallows automated access to /search, so the Actor does not use it. Use app IDs, developers or charts instead.
  • No Top Grossing chart. Apple no longer publishes it publicly.
  • Some "apps" in charts are app bundles that the Lookup API does not return; those rows keep the data shown on the chart (enriched: false).

The Actor reads public data that Apple publishes for everyone, through documented endpoints, at a low rate and in line with robots.txt. It collects no personal data. You are responsible for how you use the results (for example, respecting Apple's trademarks).

Why use App Store Scraper

  • Top charts by country, category and device. Top Free and Top Paid, up to rank 200, for iPhone, iPad or Mac, in as many countries as you list.
  • Every chart row comes with the app details (price, rating, rating count, version, size, developer, release date) at the chart-entry price, so you do not need a second run.
  • Rank changes between runs. Schedule it daily and each row gets previousRank, rankChange and isNewInChart.
  • Lookups by App Store URL, numeric ID, bundle ID or developer ID.
  • Official Apple endpoints only, robots.txt respected. No login, no browser.

Cost examples

Prices at the current pay-per-event rates (see Pricing). You can set a maximum charge per run in the run options.

JobApproximate cost
Top 200 free games in one countryabout $0.20
Top 100 free + top 100 paid in 10 countriesabout $2.00
1,000 apps by ID or bundle IDabout $2.00
Daily top 50 free apps in 1 country, one monthabout $1.50

Use it from your code, an integration or an AI agent

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("latamdatatools/apple-app-store-charts-scraper").call(run_input={
"appIds": [
"https://apps.apple.com/us/app/chatgpt/id6448311069",
"com.burbn.instagram"
],
"countries": [
"us"
],
"chartCategories": [
"Games"
],
"maxChartRank": 25
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('latamdatatools/apple-app-store-charts-scraper').call({
"appIds": [
"https://apps.apple.com/us/app/chatgpt/id6448311069",
"com.burbn.instagram"
],
"countries": [
"us"
],
"chartCategories": [
"Games"
],
"maxChartRank": 25
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

No code:

  • Schedules: run it daily or weekly from Apify Console (Schedules), with the same input saved as a Task.
  • Integrations: send results to Google Sheets, Slack, email, Make, Zapier, n8n or Airbyte from the Integrations tab, or call your own webhook when a run finishes.
  • AI agents: add it as a tool in Claude, Cursor, VS Code and other MCP clients through the Apify MCP server (https://mcp.apify.com), so the agent can run App Store Scraper and read the results.

FAQ

Can I call it from my own code or from an AI agent? Yes. Start runs and fetch results with the Apify API or the JavaScript / Python clients, or use it as a tool from Claude, Cursor and other MCP clients through the Apify MCP server (mcp.apify.com).

Can I run it automatically? Yes. Create a Schedule in Apify Console (for example every morning) and add a webhook or an integration to get the results where you need them.

Which export formats are available? JSON, JSONL, CSV, Excel (XLSX), XML, RSS and HTML table, from the Output tab or the API.

What does it cost? See the Pricing section above. You only pay for the events listed there.

Can it search the App Store by keyword? No. Apple's robots.txt disallows the search endpoint, so this Actor does not use it. Start from app URLs, IDs, bundle IDs, developer IDs or the top charts.

Does it scrape reviews? No, it focuses on app details and chart rankings.

Where is the ranking history kept? With trackRankChanges on, each chart is saved in the named key-value store app-store-chart-history of your account, and the next run compares against it.