App Store Data Scraper | Charts, Prices & Rankings | $0.5 / 1K
Pricing
from $0.35 / 1,000 app scrapeds
App Store Data Scraper | Charts, Prices & Rankings | $0.5 / 1K
Apple App Store data with no login or API key: Top Free and Top Paid chart ranks, prices in any country, ratings, versions and categories. Search by keyword or look up by app id or bundle id. $0.50 per 1,000 records.
Pricing
from $0.35 / 1,000 app scrapeds
Rating
0.0
(0)
Developer
Hriday Rungta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Security
Limited permissionsShare
Get Apple App Store data as a flat dataset: app details, prices in any country, ratings, versions, categories and Top Free / Top Paid chart rankings. No login, no API key, no browser.
This Actor reads Apple's public JSON feeds (the iTunes Search API search and lookup endpoints and the App Store chart feeds) and returns one record per app per storefront. Search by keyword, look up exact apps by App Store id or bundle id, or pull the Top Free and Top Paid charts, then export to CSV, JSON, Excel or Google Sheets, or schedule it for daily snapshots.
Not affiliated with Apple. This is an independent tool that collects data Apple publishes through its public App Store search API. Apple, App Store and iTunes are trademarks of Apple Inc.
What you can do with this App Store data
- Track App Store rankings and top charts. Snapshot Top Free or Top Paid, overall or per category, per country, every day, and see new entrants.
- Compare app prices across countries. One lookup across
us,gb,de,jp,in,brreturns each local price and currency for the same apps. - Monitor competitor apps. Look up your competitor set by bundle id and watch version, price, rating count and release notes change.
- Research keywords for ASO. See which apps come up for your search terms per storefront, with ratings, rating counts and update dates.
- Build an App Store dataset of publishers, categories and ratings for market sizing, due diligence or AI workflows.
Three modes
- Search: run keywords against the App Store search (up to 200 apps per term per country).
- Lookup: fetch exact apps by numeric App Store id, App Store URL or bundle id, 200 per request, in one or many countries.
- Charts: pull the Top Free or Top Paid chart (overall or by category, up to 200 ranks) and enrich every ranked app with full details.
Apple's own APIs vs this Actor
Apple's iTunes Search API is free, and this Actor reads it. The App Store Connect API is a different product: it exposes your own apps' analytics and needs your credentials, and this Actor does not touch it.
| iTunes Search API directly | This Actor | |
|---|---|---|
| Cost | Free | $0.50 per 1,000 records |
| Rate limit | About 20 calls per minute per IP, you handle 403/429 | Throttled and retried for you |
| Charts | Separate feeds with different formats | Ranked and enriched with full app details |
| Many countries at once | One call per country, you merge | countries list, one record per app per country |
| Scheduling | You host it | Apify Schedules, webhooks, Make, n8n, Zapier |
Fields in each record
One flat record per app per storefront:
| Field | Description |
|---|---|
appId, bundleId, name | Numeric App Store id, bundle identifier, app name |
developer, developerId, developerUrl, developerWebsite | Seller business name, developer id, developer's App Store page, developer's own website |
price, currency, formattedPrice, isFree | Storefront price (0 for free), ISO currency, display price such as $4.99 |
category, categoryId, genres[] | Primary genre (e.g. Games, 6014) and all genres |
rating, ratingCount | Average user rating (0-5) and number of ratings, all versions |
currentVersionRating, currentVersionRatingCount | Same for the current version |
version, versionReleaseDate, releaseDate | Current version string, its release date, first release date (ISO-8601) |
minOs, sizeBytes, ageRating | Minimum iOS version, download size, content rating (4+, 12+, 17+) |
languages[], supportedDevicesCount, screenshotCount | Localisations and quick size signals |
country | Storefront the record was fetched from (prices and availability differ by storefront) |
chartFeed, chartRank | top-free / top-paid and 1-based position (charts mode; null otherwise) |
url, iconUrl, scrapedAt | App Store page, 512px icon, ISO timestamp |
description, releaseNotes | Full description and latest release notes, only with Include description |
No user reviews or reviewer names are collected: the dataset contains business-level app metadata only.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | search / lookup / charts | search | What to run. |
searchTerms | array | - | Keywords (search mode). One API call per term per country. |
appIds | array | - | Numeric ids, id553834731, or App Store URLs (lookup mode). |
bundleIds | array | - | Bundle identifiers such as com.midasplayer.apps.candycrushsaga (lookup mode). |
country | string | us | Storefront code. Ignored when countries is set. |
countries | array | - | Run in several storefronts, e.g. ["us","gb","de","jp"]. Each app is saved once per storefront. |
chartFeed | top-free / top-paid | top-free | Chart to pull (charts mode). |
chartGenreId | string | - | App Store genre id for a category chart, e.g. 6014 Games, 6015 Finance, 6013 Health & Fitness. |
limit | integer | 50 | Apps per search term, or chart length (max 200). |
includeDescription | boolean | false | Add description and releaseNotes. |
maxItems | integer | 500 | Hard cap on saved (and billed) records. |
requestsPerMinute | integer | 18 | Throttle. Apple allows roughly 20 calls per minute per IP. |
lang | string | - | Result language override, e.g. en_us, ja_jp. |
maxRetries | integer | 4 | Retries with backoff for network errors, 5xx, 403 and 429. |
proxyConfiguration | object | none | Optional Apify Proxy (datacenter is enough) to rotate IPs and spread the per-IP limit. |
Examples
Search, one storefront:
{ "mode": "search", "searchTerms": ["budget tracker", "meditation"], "country": "us", "limit": 100 }
Competitor set, prices in six storefronts:
{"mode": "lookup","bundleIds": ["com.midasplayer.apps.candycrushsaga", "com.mojang.minecraftpe", "com.spotify.client"],"countries": ["us", "gb", "de", "jp", "in", "br"]}
Top 100 paid games in Germany, with descriptions:
{ "mode": "charts", "chartFeed": "top-paid", "chartGenreId": "6014", "country": "de", "limit": 100, "includeDescription": true }
Sample output
Real record from a test run in charts mode (US Top Free, rank 1):
{"appId": "407558537","bundleId": "com.capitalone.enterprisemobilebanking","name": "Capital One Mobile","developer": "Capital One Services, LLC","developerId": "339644101","developerUrl": "https://apps.apple.com/us/developer/capital-one/id339644101?uo=4","developerWebsite": "https://www.capitalone.com/applications/mobile/","price": 0,"currency": "USD","formattedPrice": "Free","isFree": true,"category": "Finance","categoryId": "6015","genres": ["Finance"],"rating": 4.85,"ratingCount": 11212519,"version": "6.55.1","versionReleaseDate": "2026-10-05T15:22:57.000Z","releaseDate": "2010-12-13T08:00:00.000Z","minOs": "17.0","sizeBytes": 421811200,"ageRating": "4+","languages": ["EN", "ES"],"country": "us","chartFeed": "top-free","chartRank": 1,"url": "https://apps.apple.com/us/app/capital-one-mobile/id407558537?uo=4","scrapedAt": "2026-10-21T05:58:42.040Z"}
A few fields (currentVersionRating, currentVersionRatingCount, supportedDevicesCount, iconUrl, screenshotCount) are left out of this example for length.
Recipes
Daily Top Charts snapshot. Create a Schedule (e.g. 06:00 every day) with {"mode":"charts","chartFeed":"top-free","countries":["us","gb","de"],"limit":100}. Each run produces 300 ranked records with full details for about $0.15. Keep the dataset per run and join on appId + country + run date to chart rank movement over time.
Competitor change alerts. Schedule a lookup of your competitors' bundle ids with includeDescription: true and send the dataset to a Google Sheet; a second sheet with =IF(version<>previous_version, "UPDATED", "") (or a small Make/Zapier step) flags version bumps, price changes and new release notes.
Country price matrix. Lookup mode with countries set to every storefront you sell in; pivot the CSV on country with price/currency as values. Free apps in one country and paid in another show up immediately.
Keyword landscape for ASO. Search mode with 20-50 keywords and limit: 200; group by developer to see who dominates your niche, and by ratingCount to estimate traction.
Pricing
Pay per event: $0.0005 per app record ($0.50 per 1,000). No start fee and no per-request fee. maxItems is your hard cost cap; the run also stops when your Apify "max total charge" limit is reached. Records de-duplicated within a run (same app, same storefront) are free. Charts mode makes one extra lookup call per 200 ranked apps to enrich them, at no extra charge.
| Run | Records | Cost |
|---|---|---|
| Top 100 free apps, 3 countries | 300 | $0.15 |
| 50 competitor apps in 6 countries | 300 | $0.15 |
| 20 keywords at 200 apps each | up to 4,000 | up to $2.00 |
Integrations and scheduling
- Apify Schedules: daily chart snapshots or competitor lookups. Keep each run's dataset to chart rank movement over time.
- Webhooks: call your endpoint when a run finishes.
- Make, n8n, Zapier: send changes to Slack, Airtable or a CRM.
- Google Sheets: export the dataset or sync it with the Apify integration.
- API and MCP: call the Actor from code or an AI agent and read JSON.
Limits worth knowing
- No user reviews or reviewer names: only business-level app metadata.
- No download counts, revenue, keyword rankings by position or in-app purchase data. Apple does not publish those in these feeds.
- Search returns at most 200 results per term per country.
- Apple throttles about 20 calls per minute per IP, so the Actor defaults to 18 requests per minute.
- Everything is per storefront: prices, availability and ratings differ by country.
FAQ
Is there an App Store API for app data and rankings?
Apple's iTunes Search API gives app details and its chart feeds give rankings, both free and public. This Actor wraps them with throttling, retries, enrichment and Apify scheduling. It does not replace App Store Connect, which covers your own apps' analytics.
How do I get the App Store top charts for a country?
Use mode: "charts", set chartFeed to top-free or top-paid, and set country. Add chartGenreId for a category chart.
How do I compare an app's price in different countries?
Use lookup mode with countries set to the storefronts you care about. Each app is saved once per country with its local price and currency.
Do I need an Apple developer account or API key?
No. The feeds used are public and unauthenticated. This Actor never logs in.
Is this legal?
The Actor uses the iTunes Search API that Apple documents for public use, at a request rate within Apple's published guidance (about 20 calls per minute per IP). Apple asks that content from the API link back to the App Store, which is why every record carries its url. Icon URLs are promotional artwork licensed by Apple for promoting store content; do not reuse them for other purposes. This Actor is not affiliated with, endorsed by or operated by Apple.
Why are ratings or prices different from what I see on my phone?
Ratings, prices, currency and even availability are per storefront. Set country (or countries) to the storefront you care about; the country field tells you which one each record came from.
Why did an app come back thin, with null rating and version, in charts mode?
The chart feed listed an app that the lookup endpoint did not return for that storefront (delisted, region-locked or a momentary inconsistency). The rank, name, developer and link are still saved so the chart stays complete.
Can I get user reviews or reviewer names?
No. Reviews are out of scope by design; only business-level app metadata is collected.
How many apps can a search return?
Apple caps a search at 200 results per term. Use several more specific terms, or run the same terms in more storefronts, to widen coverage.
What is the maximum chart length?
200 for Top Free / Top Paid (overall or per category). Category charts and lengths above 100 are served from Apple's legacy RSS chart feed; the Actor switches automatically.
What happens on rate limits or errors?
Requests are spaced by requestsPerMinute (default 18). If Apple still answers 403 or 429, the Actor backs off exponentially and, when a proxy is configured, rotates to a fresh IP. 5xx and network errors are retried up to maxRetries times.
Related Actors
- App Store Scraper by epctex (third party): a widely used Actor for App Store apps.
- App Store Reviews Scraper by thewolves (third party): user reviews, which this Actor does not collect.
- App Store Top Charts Scraper by glitchbound (third party): another chart-focused Actor.
- Shopify Product Data Scraper (by this developer): product and price data for Shopify stores.
- Y Combinator Companies (by this developer): startups, some of which publish apps.
Disclaimer
Data is obtained from Apple's public App Store search API and chart feeds. This Actor is an independent project and is not affiliated with, endorsed by or sponsored by Apple Inc. Apple, App Store, iTunes and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. Per Apple's API terms, please keep the App Store link (url) alongside any data you display, treat icon and screenshot URLs as promotional artwork for promoting App Store content only, and stay within Apple's rate guidance. You are responsible for how you use the data.