Apple App Store Scraper (Apps, Ratings, Developers) avatar

Apple App Store Scraper (Apps, Ratings, Developers)

Pricing

from $1.40 / 1,000 app scrapeds

Go to Apify Store
Apple App Store Scraper (Apps, Ratings, Developers)

Apple App Store Scraper (Apps, Ratings, Developers)

Search the Apple App Store by keyword or paste app links and get each app's rating, rating count, price, category, developer, website, version, last update, size, languages, description and screenshots. Any country. No login.

Pricing

from $1.40 / 1,000 app scrapeds

Rating

0.0

(0)

Developer

Julio Barcellos Rangel

Julio Barcellos Rangel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

This Apple App Store scraper searches the App Store by keyword, or looks up the apps you paste, and returns each app's rating, number of ratings, price, category, developer, website, version, last update, size, languages, description and screenshots. It is made for ASO specialists, app marketers, analysts and developers who need App Store data in a spreadsheet. Use it to export App Store search results to Excel or CSV, or to pull iOS app details for any country, with no login and no API key.

What does Apple App Store Scraper do?

The robot reads Apple's public iTunes search and lookup service (the same catalog the App Store shows) and turns every app into one clean row. You can give it work in two ways, and you can mix both in the same run:

  • Search terms. Type keywords the way you would in the App Store search box, for example habit tracker or budget planner. Each term returns up to 200 apps, in the order Apple returns them, with the term in searchTerm and the rank in position.
  • Apps. Paste App Store links (https://apps.apple.com/us/app/instagram/id389801252), numeric app IDs (389801252 or id389801252) or bundle IDs (com.burbn.instagram). Each lookup row keeps what you typed in input.

The country you choose decides which App Store is read. Ratings, prices, currency and even whether an app exists can differ from one country to another.

What comes out is a table with one row per app: identity (ID, name, bundle ID, link), developer and seller, price, ratings for all versions and for the current version, categories and age rating, version history dates, release notes, description, size, minimum iOS version, languages, iPad support, icon and screenshots. When something cannot be found, the robot writes an error row instead of failing silently.

What data can you extract?

FieldWhat it meansExample
searchTermSearch term that found the app (search rows only)habit tracker
positionRank of the app in the results for that term, starting at 11
inputLink, ID or bundle ID you entered (lookup rows only)com.spotify.client
appIdApple's numeric app ID1438388363
nameApp nameHabit Tracker
bundleIdBundle identifiercom.davetech.habit
urlApp Store page, without tracking parametershttps://apps.apple.com/us/app/habit-tracker/id1438388363
developerDeveloper name shown on the storeInnerGrow
developerIdApple's developer ID1828382777
developerUrlDeveloper page on the App Storehttps://apps.apple.com/us/developer/innergrow/id1828382777
sellerSeller name (often the legal company name)Inner Grow Limited
websiteDeveloper website, when the app lists onehttps://www.habitkit.app
pricePrice in the store currency (0 means free)0
currencyCurrency code of the storeUSD
isFreetrue when the price is 0true
ratingAverage user rating, rounded to 2 decimals4.79
ratingCountNumber of user ratings147824
ratingCurrentVersionAverage rating of the current version4.79
ratingCountCurrentVersionNumber of ratings of the current version147824
categoryPrimary categoryProductivity
categoriesAll categories of the app["Productivity", "Health & Fitness"]
contentRatingAge rating4+
versionCurrent version number2.25.1
updatedAtRelease date of the current version2026-10-09T23:42:16Z
releasedAtFirst release date of the app2019-01-31T09:10:14Z
releaseNotes"What's New" text of the current version- support iOS 27…
descriptionFull App Store descriptionHabit Tracker: A simple daily planner…
sizeMBDownload size in MB, 1 decimal393.2
minimumOsVersionMinimum iOS version required15.0
languagesLanguage codes the app supports["EN", "FR", "DE", …]
supportsIpadtrue when iPad is among the supported devicestrue
iconUrlApp icon (512 px when available)https://is1-ssl.mzstatic.com/…/512x512bb.jpg
screenshotsiPhone and iPad screenshot URLs["https://is1-ssl.mzstatic.com/…"]
countryApp Store country used for the rowus
scrapedAtWhen the row was collected (UTC)2026-10-12T20:24:05.574Z
errorOnly on error rows: what went wrongApp not found in the US App Store

Fields with no value on the store (for example website when the developer lists none) come back as null.

How to use Apple App Store Scraper

  1. Open the robot in Apify Console and go to the Input tab.
  2. Type one or more keywords in Search terms, one per line. Leave it empty if you only want to look up specific apps.
  3. Paste App Store links, app IDs or bundle IDs in Apps, one per line (optional).
  4. Set Max apps per search (1 to 200) and the two-letter Country code, for example us, gb, br, de or jp.
  5. Click Start and wait for the run to finish.
  6. Open the Output tab to see the Apps table, then export the data as JSON, CSV, Excel or HTML.
  7. Optional: save the input as a task and add a schedule to track the same keywords or apps every day.

Input

FieldTypeDefaultWhat it does
searchTermsarray of strings["habit tracker"]Keywords to search. Each term is searched separately.
appsarray of stringsnoneApp Store links, app IDs or bundle IDs to look up.
maxResultsPerSearchinteger50Apps per search term, from 1 to 200. Does not apply to lookups.
countrystringusTwo-letter App Store country code. Only the first two letters are used.
proxyobject{"useApifyProxy": true}Apify Proxy settings. The default works for most runs.

Accepted forms for apps:

  • A full App Store link: https://apps.apple.com/us/app/instagram/id389801252
  • A numeric ID, with or without the id prefix: 389801252 or id389801252
  • A bundle ID: com.burbn.instagram

Example input:

{
"searchTerms": ["habit tracker", "meditation"],
"apps": [
"https://apps.apple.com/us/app/instagram/id389801252",
"284882215",
"com.spotify.client"
],
"maxResultsPerSearch": 100,
"country": "us",
"proxy": { "useApifyProxy": true }
}

Output example

One real row from the latest run (search term habit tracker, country us). Long text and the screenshot list are shortened.

{
"searchTerm": "habit tracker",
"position": 1,
"appId": 1438388363,
"name": "Habit Tracker",
"bundleId": "com.davetech.habit",
"url": "https://apps.apple.com/us/app/habit-tracker/id1438388363",
"developer": "InnerGrow",
"developerId": 1828382777,
"developerUrl": "https://apps.apple.com/us/developer/innergrow/id1828382777",
"seller": "Inner Grow Limited",
"website": null,
"price": 0,
"currency": "USD",
"isFree": true,
"rating": 4.79,
"ratingCount": 147824,
"ratingCurrentVersion": 4.79,
"ratingCountCurrentVersion": 147824,
"category": "Productivity",
"categories": ["Productivity", "Health & Fitness"],
"contentRating": "4+",
"version": "2.25.1",
"updatedAt": "2026-10-09T23:42:16Z",
"releasedAt": "2019-01-31T09:10:14Z",
"releaseNotes": "- support iOS 27\n- fix bugs…",
"description": "Habit Tracker: A simple daily planner to schedule and track your routine, making it easy to build lasting habits…",
"sizeMB": 393.2,
"minimumOsVersion": "15.0",
"languages": ["EN", "FR", "DE", "IT", "JA", "PT", "RU", "ZH", "ES", "ZH"],
"supportsIpad": true,
"iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/d4/b3/2b/d4b32bd9-f4dd-e9cb-9a26-207f33befafb/AppIcon-pink-gr-0-0-1x_U007epad-0-1-0-85-220.png/512x512bb.jpg",
"screenshots": [
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5c/b8/05/5cb8051e-e125-e84e-f0b5-2551b6e9d69d/_U767d1.jpg/320x480bb.jpg",
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/13/5d/32/135d32df-678d-5c7e-d940-4f16d5c4e396/_U767d2.jpg/320x480bb.jpg"
],
"country": "us",
"scrapedAt": "2026-10-12T20:24:05.574Z"
}

A lookup row has input instead of searchTerm and position. An error row has only the input and an error message, for example {"input": "id999999999999", "error": "App not found in the US App Store"}.

How much does it cost?

The robot uses pay per event pricing: you pay $2.00 per 1,000 apps ($0.002 per app returned) on the Free plan. Platform usage is included in the price, so there is no separate charge for compute or proxy.

Apify planPrice per 1,000 apps
Free$2.00
Bronze (10% off)$1.80
Silver (20% off)$1.60
Gold and higher (30% off)$1.40

Worked examples on the Free plan:

  • One keyword with the default 50 apps: 50 apps = $0.10.
  • 10 keywords at 200 apps each: up to 2,000 apps = up to $4.00 (you pay only for the apps Apple actually returns).
  • 10,000 app lookups = $20.00 (or $14.00 on Gold).

What is not charged: error rows. That covers a search term with no apps, an entry that is not an App Store link, ID or bundle ID, an app that is not available in the chosen country, and requests the App Store did not answer after several retries.

Use cases

  • ASO keyword research: see which apps rank for a keyword, in what order, and how many ratings they have.
  • Competitor tracking: schedule a daily run on your competitors' apps and watch version, updatedAt, releaseNotes, rating and ratingCount change.
  • Market research: compare prices, free versus paid apps and categories in a niche.
  • Lead generation: collect developer names, seller names and websites, then find their emails with a contact scraper.
  • Localization research: check languages, or run the same search in different countries to compare results.
  • App directories and catalogs: fill a site with icons, screenshots, descriptions and links.
  • Text analysis: feed descriptions and release notes into an AI model or a spreadsheet to spot features and trends.

Tips and limits

  • 200 apps per search term at most. This is the App Store limit. Apple often returns fewer apps than the maximum you set, depending on the keyword.
  • One country per run. To compare countries, run the robot once per country code. The country inside a pasted link is ignored; the country input decides which store is read.
  • No duplicate filter. An app found by two search terms, or by a search and a lookup, appears once for each and is charged each time.
  • No reviews or top charts. The robot returns rating averages and counts, not the text of individual reviews, and it does not read top charts.
  • Lookup-only runs from the API: searchTerms has a default value, so send "searchTerms": [] if you only want to look up the apps in apps.
  • Bundle IDs must look like com.company.app. Anything that is not a link, an ID or a bundle ID gets the error Not an App Store link, app ID or bundle ID.
  • Retries: each request to the App Store is retried up to 5 times with a growing pause. If it still fails, you get an error row such as App Store did not answer.

Use it from the API, Python or JavaScript

JavaScript (Node.js) with the official apify-client package:

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const input = { searchTerms: ['habit tracker'], maxResultsPerSearch: 50, country: 'us' };
const run = await client.actor('juliob.rangel/app-store-scraper-fast').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python with the official apify-client package:

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
input = {'searchTerms': [], 'apps': ['com.spotify.client', '389801252'], 'country': 'gb'}
run = client.actor('juliob.rangel/app-store-scraper-fast').call(run_input=input)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

You can also connect the robot to Make, Zapier or n8n, export results to Google Sheets, send them to a webhook when a run finishes, or let AI agents call it through the Apify MCP server.

FAQ

Do I need an Apple account, a login or an API key? No. The robot reads public App Store data. You only need an Apify account.

Can I export the data to Excel or CSV? Yes. Every run's dataset can be downloaded as JSON, CSV, Excel or HTML from the Output tab or through the API.

How many apps can I get? Up to 200 per search term, and you can add as many search terms and app lookups as you like in one run. App IDs are looked up in groups of 100.

Does it scrape App Store reviews? No. You get the average rating and the number of ratings, for all versions and for the current version, but not review texts.

Why did I get an error row? The robot writes an error row instead of stopping the run: No apps found for a search with no results, Not an App Store link, app ID or bundle ID for input it cannot read, App not found in the XX App Store when the app does not exist in that country, or a connection message when the App Store did not answer. Error rows are free.

Can I monitor apps over time? Yes. Save your input as a task and schedule it daily or weekly. Each run gives a dated table (scrapedAt) that you can compare.

Is scraping the App Store legal? The robot only collects publicly available data. You are responsible for complying with Apple's terms and with privacy laws such as GDPR and LGPD. If you process personal data (for example the name of an individual developer), you need a legitimate reason to do so.


Extrator da App Store da Apple (PT-BR)

Pesquise a App Store por palavra-chave ou cole links de apps e receba nota, número de avaliações, preço, categoria, desenvolvedor, site, versão, última atualização, tamanho, idiomas, descrição e capturas de tela. Qualquer país. Sem login. Você paga só por app retornado.