App Store Search Scraper avatar

App Store Search Scraper

Pricing

from $0.80 / 1,000 app results

Go to Apify Store
App Store Search Scraper

App Store Search Scraper

Turn a keyword into the ranked list of App Store apps, with ratings, price, developer, category and version. Up to 200 results per keyword per country. No API key.

Pricing

from $0.80 / 1,000 app results

Rating

0.0

(0)

Developer

Renzo Madueno

Renzo Madueno

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

App Store Search Results Scraper - Keyword to Ranked Apps

Type a keyword, get the ranked list of App Store apps that Apple returns for it - up to 200 results per keyword per country - with rating, rating count, publisher, price, category, version, release dates and the store URL already attached. No API key, no developer account, no proxy.

This is the market map for a keyword. Where the ASO Keyword Rank Tracker answers "where does my app sit", this actor answers "who is in this space at all, and what do they look like".

What you get per result

FieldWhat it holdsFill rate on live data
keyword / countryThe search that produced this rowalways
rankPosition in the result list, 1 upwardalways
resultsReturnedHow many results Apple actually returned for this searchalways
appId / bundleIdNumeric App Store ID and iOS bundle ID11/11
appNameApp title as it appears in this storefront11/11
developer / developerIdPublisher and their Apple artist ID11/11
price / currency / priceFormatted / isFreePricing in storefront currency11/11
averageUserRatingRating average, four decimals11/11
userRatingCountTotal ratings11/11
primaryGenre / genresCategory and full category list11/11
contentRatingAge rating11/11
versionCurrent version string11/11
currentVersionReleaseDateWhen the current build shipped11/11
originalReleaseDateWhen the app first launched11/11
minimumOsVersionMinimum iOS required11/11
fileSizeMbDownload size11/11
languages / languageCountSupported language codes11/11
iconUrl / appUrlIcon and store link11/11
descriptionFull store description, optional11/11

Fill rates were measured across an 11-app live sample of Apple's metadata response. Every field listed is present on every row. There is nothing in that table that arrives "sometimes".

Honesty about the result count

Apple's search endpoint accepts limit up to 200 and then returns slightly fewer than asked. Measured: a request for 200 came back with 189, 190, 192, 193 and 196 across different keywords and storefronts. A request for 50 came back with 45.

Every row therefore carries resultsReturned - the count Apple actually gave for that search. Nothing is padded and nothing is invented to hit the number you typed.

Input

{
"keywords": ["habit tracker", "budget planner", "sleep sounds"],
"countries": ["us", "gb", "de"],
"limit": 200,
"entity": "software",
"includeDescription": false,
"maxItems": 2000
}

Input aliases. keywords also accepts keyword, terms, term, queries, query, search and searchTerms. countries also accepts country, countryCodes and storefronts. limit also accepts resultsPerKeyword and depth. maxItems also accepts maxResults and maxRows. Comma separated strings work anywhere a list does.

Every input field

  • keywords - what to search for. Required.
  • countries - two letter iTunes storefronts. Results and ordering differ per storefront. Verified working on us, gb, de, jp, br, in, pe and au.
  • limit - 1 to 200 results per keyword.
  • entity - software for iPhone apps, iPadSoftware for iPad, macSoftware for Mac.
  • lang - optional Apple language tag such as de_de, es_es, ja_jp. Changes the localised names and descriptions returned. Verified: country=de&lang=de_de returns German app titles.
  • attribute - set to softwareDeveloper to search publisher names instead of app text.
  • includeDescription - off by default. Descriptions run to several thousand characters each and will bloat a CSV export.
  • maxItems - hard ceiling on rows delivered and on the bill.
  • proxyConfiguration - optional, off by default.

Competitor discovery for a keyword

Run one keyword at limit: 200 and you have the complete addressable competitive set for that term, ranked. Sort by userRatingCount and the structure of the category appears immediately: a handful of incumbents with hundreds of thousands of ratings, a middle band, and a long tail of apps with under a thousand.

The middle band is usually the interesting one. Those are apps that found the keyword but have not yet won it.

Finding underserved keywords

Two columns do most of this work.

Look for keywords where the top ten results have low userRatingCount. That is a term with search intent that no strong app has claimed. Then look at currentVersionReleaseDate in that same top ten - if the leaders last shipped a build a year ago, the category is not just weak, it is abandoned.

A keyword whose top ten averages 900 ratings and 14 months since last update is a market opening. That combination is two sorts away in the dataset this actor produces.

Market sizing before you build

Before committing to an app idea, run twenty keywords a user might type to find it. The output answers, with data rather than intuition:

  • How many apps already serve this intent, and how good are they?
  • What do they charge? isFree and priceFormatted across the set gives you the pricing norm.
  • How old are they? originalReleaseDate shows whether this is a settled category or a new one.
  • Are they maintained? currentVersionReleaseDate shows who is still shipping.
  • Who publishes them? Group by developer to spot categories dominated by one studio with fifteen near-identical apps.

Multi-country keyword research

The same keyword returns a different ranked list in every storefront, and often different apps entirely. Running one keyword set across ten countries shows you where a category is mature and where it is not. An app idea saturated in the US may have four weak competitors in Brazil, and that difference is visible in a single dataset.

Use the lang parameter alongside countries when you want the localised names too.

Searching by developer instead of by app text

Set attribute: "softwareDeveloper" and the keyword is matched against publisher names. This is how you enumerate a competitor's catalogue on the Apple side, or find every app published by a studio you are researching.

How this actor behaves when something goes wrong

  1. Errors never enter the dataset. A keyword returning zero results, or a storefront failing, is recorded in a FAILURES key-value record with the exact reason. It never becomes a dataset row, because a row that says "error" would bill you for receiving an error.
  2. A run that delivered nothing is marked FAILED, not SUCCEEDED.
  3. Transient failures are retried with backoff before being recorded.
  4. The free tier returns data. No proxy is required and none is used unless you turn one on.

Pricing

Pay per event. $0.0002 per app result delivered - $0.20 per 1,000 rows. No subscription, no charge for starting a run.

Ten keywords at 200 results across three countries is about 5,700 rows, or roughly $1.14. maxItems is a hard ceiling on both rows and spend.

Output sample

{
"keyword": "habit tracker",
"country": "us",
"rank": 3,
"resultsReturned": 191,
"appId": "1477912538",
"bundleId": "com.habitify.ios",
"appName": "Habitify: Habit Tracker",
"developer": "Unstatic Ltd",
"developerId": "1445916138",
"price": 0,
"currency": "USD",
"priceFormatted": "Free",
"isFree": true,
"averageUserRating": 4.7412,
"userRatingCount": 21874,
"primaryGenre": "Productivity",
"genres": ["Productivity", "Health & Fitness"],
"contentRating": "4+",
"version": "12.4.1",
"currentVersionReleaseDate": "2026-08-11T16:20:03.000Z",
"originalReleaseDate": "2019-09-24T07:00:00.000Z",
"minimumOsVersion": "16.0",
"fileSizeMb": 84.12,
"languages": ["EN", "ES", "FR", "DE", "JA"],
"languageCount": 5,
"iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg",
"appUrl": "https://apps.apple.com/us/app/habitify-habit-tracker/id1477912538?uo=4",
"scrapedAt": "2026-08-22T04:17:12.664Z"
}

Dataset views

  • Ranked results - keyword, country, position, app, developer, rating, rating count, price. The leaderboard.
  • Market research - position, category, rating count, last update, first release, free flag, minimum iOS. The view you sort to find gaps.

Frequently asked questions

How many results can I get per keyword? Up to 200 requested; Apple returns a few less. resultsReturned tells you the true figure per row.

Is this the same ranking a user sees? It is Apple's public search ordering for that storefront, which is what ASO tooling in this price range uses.

Do I need an API key? No. No key, no developer account, no proxy.

Can I search iPad or Mac apps? Yes, via entity: iPadSoftware or macSoftware.

Why is description missing? includeDescription defaults to false because descriptions are long enough to make a CSV unmanageable. Turn it on if you need the text.

How is this different from the ASO Keyword Rank Tracker? This returns the whole ranked list for a keyword. The tracker returns one row per keyword telling you where your app sits, with rank history. Use this one to explore, that one to monitor.

  • ASO Keyword Rank Tracker - your app's position for a keyword, with change over time.
  • App Store Top Charts Scraper - category and country chart rankings.
  • App Store App Details Scraper - full metadata including in-app purchase names and prices.
  • App Store Reviews Scraper - customer reviews across every storefront.