# Apple App Store Scraper — iOS App Details, Ratings & Top Charts (`intelscrape/apple-app-store-scraper`) Actor

Apple App Store Scraper: search iOS apps by keyword, ID, URL or developer, or pull Top Free and Top Paid charts. Exports ratings, rating counts, price, version, last update, size, genres, screenshots and developer website for any country. No API key, no login. Pay per app.

- **URL**: https://apify.com/intelscrape/apple-app-store-scraper.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Developer tools, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Apple App Store Scraper — iOS App Details, Ratings & Top Charts

![Apple App Store Scraper — iOS App Details, Ratings & Top Charts](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/apple-app-store-scraper-banner.png)

🇨🇳 **苹果 App Store 应用数据采集器**：按关键词搜索、按应用 ID/链接查询、按开发者列出全部应用，或抓取免费榜/付费榜。导出评分、评分数量、价格、版本与更新日期、大小、分类、截图、描述和开发者网站，支持任意国家商店。无需 API 密钥，按应用付费。

🇸🇬 **Pengikis Apple App Store**: cari aplikasi iOS mengikut kata kunci, ID atau pembangun, atau dapatkan carta Percuma dan Berbayar Teratas. Eksport penarafan, bilangan penarafan, harga, versi, saiz, genre dan penerangan untuk mana-mana negara.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%242%20per%201K%20apps-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20app-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![login](https://img.shields.io/badge/login-not%20required-brightgreen)

**iOS app intelligence at scale: ratings, rating counts, prices, versions, sizes, genres and chart ranks, from Apple's own public data.**

> **Honest coverage & billing:** Data comes from Apple's public feeds; fields Apple leaves empty stay empty. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is Apple App Store Scraper?

The App Store has no official bulk export for app metadata. **Apple App Store Scraper** gives you clean, structured iOS app data in seconds: search results with their rank, any list of apps by ID or URL, every app from a developer, and Apple's Top Free and Top Paid charts, for any of Apple's country storefronts. It reads Apple's own public iTunes Search and RSS feeds, so the numbers match what Apple publishes.

### What does it do?

- **Keyword search**: up to 200 apps per search term, with the App Store search rank
- **App lookup**: any list of numeric app IDs or apps.apple.com URLs
- **Developer catalogs**: every app published by a developer ID or developer URL
- **Top charts**: Top Free and Top Paid (10, 25, 50 or 100 apps) with chart rank
- **Any storefront**: us, gb, de, fr, jp, br, in, au and every other Apple country code
- **Rich fields**: rating and rating count (all-time and current version), price and currency, version and last update, release notes, size, minimum iOS, languages, screenshots, icon, developer website
- **Automatic retry**: backs off and switches to Apify Proxy if Apple rate-limits

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no browser, no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **App Store Optimization (ASO)**: track your rank for target keywords and compare titles, ratings and update cadence with rivals
- **Competitor monitoring**: schedule daily runs to watch competitors' versions, prices and rating counts
- **Market research**: size a category by counting apps, ratings and price points per country
- **Lead generation**: find developers and their websites in any niche, then enrich with our [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- **Investors and analysts**: monitor chart movements and rating growth as a demand signal
- **Agencies**: build app audits and pitch decks with real data

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~apple-app-store-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms": ["budget planner"], "country": "us", "maxResultsPerSearch": 25}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/apple-app-store-scraper").call(run_input={"searchTerms": ["budget planner"], "country": "us", "maxResultsPerSearch": 25})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/apple-app-store-scraper with the default input and summarise the results."*

### Input examples

**Keyword search (default)**

```json
{
  "searchTerms": ["budget planner"],
  "country": "us",
  "maxResultsPerSearch": 25
}
```

**Specific apps by ID or URL**

```json
{
  "appIds": ["324684580", "https://apps.apple.com/us/app/notion/id1232780281"],
  "country": "us"
}
```

**Every app from a developer**

```json
{
  "developerIds": ["https://apps.apple.com/us/developer/spotify/id324684583"]
}
```

**UK Top Free 100**

```json
{
  "topCharts": ["top-free:100"],
  "country": "gb"
}
```

### Output fields

| Field | Description |
|---|---|
| `appId / bundleId` | Apple numeric ID and bundle identifier |
| `name / url` | App name and App Store link |
| `developer / developerId / developerUrl` | Developer name and profile |
| `sellerName / sellerWebsite` | Legal seller and support website when listed |
| `price / currency / formattedPrice / isFree` | Price in the storefront currency |
| `rating / ratingCount` | Average rating and number of ratings (all versions) |
| `currentVersionRating / currentVersionRatingCount` | Rating for the current version |
| `primaryGenre / genres / contentRating` | Category and age rating |
| `version / currentVersionReleaseDate / releaseDate / releaseNotes` | Version history info |
| `sizeMb / minimumOsVersion / languages` | Technical details |
| `iconUrl / screenshotUrls / ipadScreenshotUrls` | Images |
| `description` | Full App Store description |
| `searchTerm / searchRank, chart / chartRank, developerQuery` | How the app was found |

#### Sample output

```json
{
  "appId": 1621020173,
  "name": "Fleur - Budget Planner App",
  "bundleId": "com.fleurbudget",
  "url": "https://apps.apple.com/us/app/fleur-budget-planner-app/id1621020173",
  "developer": "Akash Jain",
  "price": 0,
  "currency": "USD",
  "isFree": true,
  "rating": 4.8,
  "ratingCount": 13070,
  "primaryGenre": "Finance",
  "genres": ["Finance", "Productivity"],
  "contentRating": "4+",
  "version": "3.1.4",
  "currentVersionReleaseDate": "2026-10-11T05:17:58Z",
  "sizeMb": 104.4,
  "minimumOsVersion": "15.0",
  "searchTerm": "budget planner",
  "searchRank": 1
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **App** | per app row | $0.002 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 1 keyword, up to 25 apps | ≈ $0.055 |
| Top Free 100 in one country | $0.205 |
| 20 keywords × 100 apps | ≈ $4.01 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### FAQ

#### Do I need an Apple developer account or API key?

No. The actor uses Apple's public iTunes Search, Lookup and RSS endpoints, which need no key or login.

#### Does it scrape reviews?

No, this actor exports app details and charts. For review text use our [App Store Reviews Scraper](https://apify.com/intelscrape/app-store-reviews-scraper).

#### Why did a search return fewer apps than I asked for?

Apple's search API sometimes returns fewer results than the limit, especially for narrow terms. You pay only for apps delivered.

#### Is searchRank the same as the App Store app?

It is Apple's search API order for that term and storefront. It usually matches the App Store app closely but is not personalised, and Apple can rank slightly differently on device.

#### Can I get download numbers?

Apple does not publish downloads. Use ratingCount and chart rank as demand signals.

#### Which countries are supported?

Every App Store storefront. Use the two-letter country code, e.g. us, gb, de, jp.

#### How fresh is the data?

Live: every run reads Apple at that moment. Ratings and charts update throughout the day.

#### Can I monitor apps over time?

Yes. Schedule the actor and compare runs, or send results to Google Sheets.

### Honest limits

- Data comes from Apple's public feeds; fields Apple leaves empty stay empty.
- Downloads and revenue are not public and are not estimated.
- Top charts support Top Free and Top Paid overall (Apple's public RSS); category charts are not included.
- Apple may rate-limit very large runs; the actor slows down and retries.

### Related IntelScrape bots

- [Google Play Store Scraper](https://apify.com/intelscrape/google-play-store-scraper): Android app installs, ratings & charts
- [App Store Reviews Scraper](https://apify.com/intelscrape/app-store-reviews-scraper): iOS review text & ratings
- [Google Play Reviews Scraper](https://apify.com/intelscrape/google-play-reviews-scraper): Android review text & ratings
- [Google Autocomplete Scraper](https://apify.com/intelscrape/google-autocomplete-scraper): keyword suggestions from Google, YouTube, Amazon & Bing
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `searchTerms` (type: `array`):

App Store search terms (up to 200 apps each).

## `appIds` (type: `array`):

e.g. 324684580 or https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580

## `developerIds` (type: `array`):

Lists every app by the developer, e.g. 324684583 or https://apps.apple.com/us/developer/spotify/id324684583

## `topCharts` (type: `array`):

top-free or top-paid, optionally with a size: top-free:100 (10, 25, 50 or 100).

## `country` (type: `string`):

Two-letter App Store country code: us, gb, de, fr, jp, br, in, au…

## `maxResultsPerSearch` (type: `integer`):

1–200 apps per search keyword.

## `proxyConfiguration` (type: `object`):

Not needed normally; the actor switches to Apify Proxy automatically if Apple rate-limits.

## Actor input object example

```json
{
  "searchTerms": [
    "budget planner"
  ],
  "country": "us",
  "maxResultsPerSearch": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "budget planner"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/apple-app-store-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchTerms": ["budget planner"] }

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/apple-app-store-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "budget planner"
  ]
}' |
apify call intelscrape/apple-app-store-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/apple-app-store-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ljmis7XCRcvsQUANh/builds/jwnPadIJSZYJBOATR/openapi.json
