App Store ASO Keyword & Rankings Scraper
Pricing
from $1.00 / 1,000 results
App Store ASO Keyword & Rankings Scraper
Track App Store keyword rankings, app metadata, reviews, and top charts by country using public iTunes endpoints.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Jura Moshkov
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
an hour ago
Last modified
Categories
Share
App Store scraper and ASO keyword tool for the Apple App Store / iOS. Track App Store keyword rankings with a keyword difficulty score, app metadata, reviews, ratings, and top charts by country. This Actor uses Apple's public iTunes endpoints, so it is fast, lightweight, and does not need an API key or browser automation.
What This App Store Scraper Does
- Check App Store keyword rankings for one or more apps across countries, with an ASO keyword difficulty score (0-100).
- Extract app metadata: title, developer, bundle ID, rating, rating count, price, version, update date, icon, screenshots, and App Store URL.
- Scrape recent or helpful App Store reviews.
- Export top free, paid, or grossing App Store charts by country and optional genre.
- Produce normalized dataset rows for ASO research, competitor monitoring, app intelligence, and market tracking.
App Store Keyword Rank Tracking
Rank tracking is the main job this Actor was built for. In rankings mode you give it the apps you care about and the keywords you want to be found for, and every keyword/country pair comes back as one row with the position your app currently holds.
- Put your app's numeric App Store ID in
appIds— it is the number in your App Store URL, e.g.284882215inapps.apple.com/us/app/facebook/id284882215. Bundle IDs work too. - List the search phrases in
keywords. These should be phrases a user would actually type, not your app's category. - List the storefronts in
countries. Rankings differ per country, sousanddeare two separate answers to the same question. - Set
maxSearchResultsto how deep you want to look — 50 by default, up to 200. An app that is not in the topmaxSearchResultscomes back withfound: falserather than a fake position.
Each row also carries keywordDifficulty, keywordResultCount, and topAppsAvgRatingCount, so a single run tells you both where you rank and whether the keyword is worth ranking for.
ASO Keyword Difficulty Score, Explained
Most App Store scrapers return positions and stop there. A position on its own does not tell you where to spend effort: rank 30 on a keyword nobody can win is worth less than rank 40 on one that is wide open.
keywordDifficulty is a 0-100 heuristic built from the search results themselves:
- 80% competitor strength. The average rating count of the top 10 results, on a log10 scale, where roughly 1,000,000 ratings saturates the score. Ten established apps with millions of ratings each push this near the maximum.
- 20% competition breadth. How many results the keyword returns at all, relative to 50. Thin result sets are easier to break into.
Read it as a moat estimate, not a promise. Low scores mark keywords where a well-optimized title and subtitle can still move you; high scores mark keywords where the incumbents' review counts are the barrier. Because topAppsAvgRatingCount ships in the same row, you can always see what drove the number.
App Store Metadata, Reviews, and Top Charts
The same Actor covers the three other jobs ASO work usually needs:
metadata— pull title, subtitle-level details, developer, genre, rating, rating count, price, currency, version, last update date, icon and screenshot URLs for any app by numeric ID or bundle ID. Numeric IDs are batched through Apple's lookup endpoint (metadataBatchSize, up to 200 per request), so auditing a large competitor set stays cheap.reviews— export App Store reviews per app and country, sorted bymostrecentormosthelpful, up to 500 per app/country. Useful as sentiment input or to mine the phrasing real users apply to your category.charts— export top free, top paid, or top grossing charts by country, optionally narrowed to a genre ID (e.g.6014for Games). Run it on a schedule and you have a chart-movement dataset nobody publishes for free.
Use Cases
- App Store ASO keyword rank tracking
- Competitor app monitoring
- App metadata and screenshot audits
- App review exports for sentiment analysis
- Country-level App Store top charts research
- Keyword research: score a candidate keyword list by difficulty before committing to a title or subtitle
- Daily app intelligence workflows through Apify integrations
Input
Choose one mode:
rankings- checks where each target app ranks for each keyword/country pair.metadata- extracts app details by numeric App Store app ID or iOS bundle ID.reviews- extracts App Store reviews by app ID and country.charts- extracts top free, paid, or grossing app charts.
Example keyword ranking input:
{"mode": "rankings","appIds": ["284882215"],"keywords": ["social network", "messenger"],"countries": ["us", "gb"],"maxSearchResults": 50}
Example metadata input:
{"mode": "metadata","appIds": ["284882215"],"bundleIds": ["com.instagram.ios"],"countries": ["us"]}
Example reviews input:
{"mode": "reviews","appIds": ["284882215"],"countries": ["us"],"maxReviews": 100,"reviewSortBy": "mostrecent"}
Example top charts input:
{"mode": "charts","countries": ["us"],"chart": "topfreeapplications","maxChartResults": 100}
Output
The Actor writes normalized rows to the default Apify dataset. Depending on the mode, rows include:
modecountrykeywordrankPositionkeywordDifficulty(0-100 ASO difficulty, rankings mode)keywordResultCounttopAppsAvgRatingCountfoundappIdbundleIdtitledevelopergenreratingratingCountpricecurrencyversionupdatedurlreviewIdcontentauthorchartcategorycheckedAt
Example ranking row:
{"mode": "rankings","appId": 284882215,"bundleId": "com.facebook.Facebook","title": "Facebook","keyword": "social network","country": "us","rankPosition": 42,"keywordDifficulty": 78,"keywordResultCount": 50,"topAppsAvgRatingCount": 1840000,"found": true,"rating": 4.52,"ratingCount": 27000000,"price": 0,"currency": "USD","version": "567.0.0","url": "https://apps.apple.com/us/app/facebook/id284882215?uo=4"}
Pricing
Pay per result, with no run-start fee beyond Apify's standard one. There is no third-party API key to buy and no proxy bill: the Actor reads Apple's public iTunes endpoints directly, which is also why it runs without browser automation and finishes fast.
A rank-tracking run costs one result per keyword/country pair, so 20 keywords across 3 countries is 60 rows. Because there is no per-run minimum, checking 5 keywords daily is as economical as checking 200 weekly.
Scheduling and Integrations
Rankings only mean something as a time series — one snapshot tells you nothing about whether your last release helped.
- Use Apify Schedules to run
rankingsmode daily or weekly and let the dataset accumulate. Every row carriescheckedAt, so history is queryable without extra bookkeeping. - Export to CSV, JSON, or Excel, or push straight to Google Sheets, S3, or a webhook through Apify integrations.
- Call the Actor from the Apify API to fold rank data into an existing ASO dashboard.
App Store Country Codes
Use two-letter App Store country codes such as:
us- United Statesgb- United Kingdomde- Germanyfr- Francees- Spainbr- Braziljp- Japan
FAQ
Is this App Store scraper free to use?
The Actor itself reads Apple's public iTunes endpoints. You only pay for Apify platform usage; there is no third-party API key or proxy cost.
Do I need an API key?
No. Unlike RapidAPI-based App Store APIs, this scraper calls Apple's public iTunes/App Store endpoints directly — no key, no login.
How do I track App Store keyword rankings?
Use rankings mode with your appIds (or bundleIds) and a list of keywords. Each row returns the app's rankPosition in App Store search plus a keywordDifficulty score for ASO prioritization.
What is the keyword difficulty score?
A 0-100 ASO signal estimating how hard a keyword is to rank for: 80% from the rating strength of the top 10 apps on a log10 scale, 20% from how many apps compete for the term. Raw App Store scrapers do not provide this.
How often should I check App Store rankings?
Daily for keywords you are actively working on, weekly for a broader watchlist. App Store search results move slowly enough that hourly checks mostly add cost, and every row is timestamped with checkedAt so a daily schedule builds a clean trend line.
Can I track competitor apps as well as my own?
Yes. appIds takes a list, and competitors are just more IDs. A common setup is your app plus three or four rivals against the same keyword set, which turns each run into a share-of-search snapshot.
How is this different from App Store Connect?
App Store Connect reports on apps you own, after the fact. This Actor reads the public storefront, so it covers any app in any country — including competitors — and answers the ranking question directly rather than through impression counts.
Can I export the data to CSV or Google Sheets?
Yes. Results land in a standard Apify dataset, downloadable as CSV, JSON, XML, or Excel, and pushable to Google Sheets, S3, or a webhook via Apify integrations.
Does it support iOS bundle IDs?
Yes. metadata and rankings modes accept both numeric App Store app IDs and iOS bundle IDs (e.g. com.instagram.ios).
Can I export App Store reviews?
Yes. Use reviews mode with numeric appIds to export recent or most-helpful App Store reviews with ratings, author, and version.
Does it scrape Google Play too?
No — this Actor covers the Apple App Store / iOS. A separate Google Play ASO scraper is planned.
Notes
- Reviews mode requires numeric App Store app IDs.
- Metadata and rankings mode support numeric app IDs and bundle IDs.
- Rankings mode checks App Store search result positions within
maxSearchResults. An app below that depth is reported asfound: false, never as a guessed position. - Metadata mode batches numeric app IDs through Apple's lookup endpoint. Use
metadataBatchSizeandrequestDelayMsto tune large runs; batch sizes up to 200 are supported by the Actor. - This Actor does not estimate downloads or revenue; it returns public App Store/iTunes data.