App Store Top Charts avatar

App Store Top Charts

Pricing

from $1.00 / 1,000 results

Go to Apify Store
App Store Top Charts

App Store Top Charts

Capture Apple App Store Top Free, Top Paid and Top Grossing chart standings — current snapshots or historical day-by-day movement — for the overall chart or any genre.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

AppSigma.io

AppSigma.io

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

App Store Top Charts 📈

See exactly which apps are winning the App Store — and how they got there. Give this Actor a chart type and it returns Apple's official Top Charts rankings: current standings or day-by-day history, for the overall chart or any category. One clean row per chart position, ready to export to CSV, Excel, JSON, or push into your own pipeline.

No scraping, no proxies, no HTML parsing, no rate-limit headaches. Powered by the AppSigma App Store API, served straight from Apple's data.


What it does

For every chart type × category you provide, the Actor captures Apple's Top Charts — either today's snapshot or historical day-by-day movement — and records each position as a flat row: rank, previous rank, the date, and the app's full listing snapshot (developer, category, rating, price, and more).

  • Top Free, Top Paid, Top Grossing — any or all of Apple's three chart types
  • Overall or by category — the all-apps chart, or any Apple genre/category
  • Current snapshot or full history — track movement over days, weeks, or years
  • Rich app data per position — no second lookup needed
  • Flat, spreadsheet-friendly output (nested fields pre-unwrapped into columns)
  • Fast & reliable — parallel requests, automatic retries, no proxies to configure

Use cases

  • Market & trend dashboards — track how the Top Free/Paid/Grossing charts shift day to day, overall or within a specific category.
  • Movers & shakers — spot apps climbing or falling fast using the previousPosition column, without building your own history yourself.
  • Category leaders — find and monitor the top-ranked apps in any genre (Games, Photo & Video, Finance, …) over time.
  • Competitive & investment research — watch a competitor's chart position (or a portfolio company's) as a leading indicator of momentum.

Input

Configure it from the visual input form or pass JSON:

FieldTypeDefaultDescription
modestringcurrentcurrent captures today's snapshot; history captures day-by-day positions over a period
chartTypesarray of strings["FREE"]Which charts to capture: FREE, PAID, or TOP_GROSSING
genreIdsarray of integers[]Apple genre/category IDs to capture. Leave empty to capture only the overall (all-categories) chart
maxPositioninteger ≥ 1100Deepest chart position to capture (1 = top spot only)
daysPeriodinteger 1–182530Days of history to capture — history mode only
iconWidthinteger 16–2048512Pixel width for the ready-to-use icon image URL
maxResultsinteger0Stop after this many total rows (0 = no limit)
concurrencyinteger 1–205How many chart requests to run in parallel

Example input

{
"mode": "current",
"chartTypes": ["FREE", "PAID"],
"genreIds": [6014],
"maxPosition": 50
}

Output

Each row is one chart position. In current mode you get one row per app currently occupying a chart slot; in history mode you get one row per date × position, so you can plot how a slot's occupant changed over time. Nested objects (developer, rating, price) are flattened into plain columns so the data drops straight into a spreadsheet.

Example row

{
"chartType": "FREE",
"genreId": null,
"position": 1,
"previousPosition": 2,
"date": "2026-07-25T10:45:02.094Z",
"appId": 6741796873,
"name": "TikTok",
"shortName": "TikTok",
"subtitle": "Watch, Discover, Join & Share",
"developerId": 1322881000,
"developerName": "TikTok Ltd.",
"primaryGenre": "Entertainment",
"primaryGenreId": 6016,
"icon": "https://is1-ssl.mzstatic.com/image/thumb/.../AppIcon/512x0w.png",
"ratingScore": 4.9,
"ratingCount": 17087,
"priceFormatted": "Free",
"priceAmountMinor": 0,
"priceCurrency": "USD",
"priceDiscount": false,
"hasInAppPurchases": true,
"hasAds": false,
"releaseDate": "2026-06-03T00:00:00.000Z",
"_fetchedAt": "2026-07-25T11:00:05.746Z"
}

Fields

FieldDescription
chartTypeFREE, PAID, or TOP_GROSSING
genreIdApple category ID, or null for the overall chart
position, previousPosition1-based rank, and its previous value (null if unknown)
dateSnapshot time (current mode) or calendar date (history mode) this row represents
appId, name, shortName, subtitleApp identity
developerId, developerNamePublisher
primaryGenre, primaryGenreIdApple category
ratingScore, ratingCountAggregate star rating and number of ratings
priceFormatted, priceAmountMinor, priceCurrency, priceDiscountPricing (priceAmountMinor is in minor units, e.g. cents)
hasInAppPurchases, hasAdsStore flags
releaseDateFirst-release date
iconReady-to-use icon image URL, sized to iconWidth (default 512px)
_fetchedAtWhen the row was captured (ISO 8601)

Exporting & integrating

Results land in a standard Apify dataset, so you can:

  • Download as CSV, JSON, Excel, XML, or RSS from the run's Storage tab.
  • Fetch via API — pull the dataset programmatically with the Apify API or clients.
  • Automate — schedule runs, or connect to Make, Zapier, n8n, Slack, and more.

Pricing

This Actor is pay per result — you're charged per row it returns, with no platform usage or compute to reason about. Use maxPosition, daysPeriod, and maxResults to control exactly how many rows (and how much spend) each run produces.

FAQ

Do I need an API key or an account anywhere? No. Just configure the input and run it — billing is handled through Apify.

What's the difference between current and history mode? current gives you today's chart as it stands right now — one row per position. history gives you the same chart's positions for each day over your chosen period — one row per date × position, so you can chart movement over time.

How do I find a genre/category ID? Leave genreIds empty to capture the overall chart first — its rows include primaryGenreId for each app, which you can use to build out a category list.

Can I track a specific category instead of the whole store? Yes — put its Apple genre ID (e.g. 6014 for Games) in genreIds. Provide several IDs to capture multiple categories in one run.