# App Store Tracker (`gochujang/app-store-tracker`) Actor

Track iOS App Store rankings, reviews, and metadata using Apple's iTunes Search API. Search by keyword, category, or app ID. Returns ratings, review count, price, developer, screenshots, version, and size. Supports top charts and keyword search.

- **URL**: https://apify.com/gochujang/app-store-tracker.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 item trackeds

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

### What does App Store Tracker do?

**App Store Tracker** is an **Apify Actor** that extracts iOS app metadata, rankings, and ratings from Apple's App Store using the public iTunes Search API. It supports keyword search, direct app ID lookup, and top chart retrieval — returning structured **Apple App Store data** including ratings, review counts, price, developer name, version, app size, and direct store links. No API key is required.

Use it to power competitive research dashboards, **iOS app rankings** monitoring, or App Store Optimization (ASO) workflows — at a fraction of the cost of dedicated ASO platforms.

***

### Why use App Store Tracker?

- **Competitive intelligence** — track competitor apps' ratings, version release frequency, and review counts across countries to benchmark your own product and spot weaknesses.
- **iOS app rankings analysis** — pull the current top free or top paid chart for any App Store country to identify trending apps and category shifts in real time.
- **App Store Optimization (ASO)** — compare your app's metadata (title, rating, size, supported languages) against top-chart competitors to identify gaps in your store listing.
- **Investment due diligence** — verify the traction of consumer apps mentioned in pitch decks or funding announcements by checking live ratings, review volumes, and update frequency.
- **Market research** — scrape an entire category across multiple countries using the **Apple App Store data API** to detect regional trends, pricing strategies, and developer consolidation.

***

### How to use App Store Tracker

1. Open the Actor on Apify and click **Try for free**.
2. Choose a `mode`: `search` (keyword), `lookup` (specific app IDs), `top_free`, or `top_paid`.
3. For `search` mode: enter a `keyword` (e.g. `"budget tracker"`).
4. For `lookup` mode: enter an `appIds` array with Apple numeric App Store IDs.
5. Set `country` to the App Store country code (e.g. `us`, `kr`, `gb`).
6. Set `maxResults` (1–200) and optionally filter by `category`.
7. Click **Start** — the dataset populates with one record per app.
8. Export as JSON or CSV, or connect via the **App Store tracker** API endpoint.

***

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | string | `search` | Operation mode: `search`, `lookup`, `top_free`, or `top_paid` |
| `keyword` | string | — | Search term for `search` mode (e.g. `"fitness tracker"`) |
| `appIds` | array | — | Apple numeric App Store IDs for `lookup` mode |
| `country` | string | `us` | ISO 2-letter App Store country code |
| `maxResults` | integer | `25` | Number of apps to return (1–200) |
| `category` | string | — | Filter results by category name (e.g. `Finance`, `Games`) |

***

### Output

Sample **Apple App Store data** records:

```json
[
  {
    "app_id": "284882215",
    "name": "Facebook",
    "bundle_id": "com.facebook.Facebook",
    "description": "Connect with friends, family and people who share your interests...",
    "developer": "Meta Platforms, Inc.",
    "price_usd": 0.0,
    "is_free": true,
    "category": "Social Networking",
    "genres": ["Social Networking"],
    "rating": 4.1,
    "rating_count": 14280000,
    "rating_current_version": 4.0,
    "version": "473.0",
    "size_mb": 289.5,
    "min_ios_version": "16.0",
    "release_date": "2026-08-15T00:00:00Z",
    "icon_url": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg",
    "store_url": "https://apps.apple.com/us/app/facebook/id284882215",
    "supported_languages_count": 46
  },
  {
    "app_id": "310633997",
    "name": "WhatsApp Messenger",
    "bundle_id": "net.whatsapp.WhatsApp",
    "description": "WhatsApp Messenger is a FREE messaging app available for iPhone and other smartphones...",
    "developer": "WhatsApp LLC",
    "price_usd": 0.0,
    "is_free": true,
    "category": "Social Networking",
    "genres": ["Social Networking", "Utilities"],
    "rating": 4.7,
    "rating_count": 8920000,
    "rating_current_version": 4.8,
    "version": "24.18.80",
    "size_mb": 173.2,
    "min_ios_version": "15.0",
    "release_date": "2026-07-30T00:00:00Z",
    "icon_url": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg",
    "store_url": "https://apps.apple.com/us/app/whatsapp-messenger/id310633997",
    "supported_languages_count": 60
  }
]
```

***

### Data fields

| Field | Type | Description |
|-------|------|-------------|
| `app_id` | string | Apple numeric App Store ID |
| `name` | string | App display name |
| `bundle_id` | string | iOS bundle identifier (e.g. `com.example.app`) |
| `description` | string | First 500 characters of the store description |
| `developer` | string | Developer or seller name |
| `price_usd` | number | Price in USD (0.0 for free apps) |
| `is_free` | boolean | `true` if price is $0.00 |
| `category` | string | Primary App Store category |
| `genres` | array | All category and genre labels |
| `rating` | number | Average user rating (all-time) |
| `rating_count` | integer | Total number of ratings |
| `rating_current_version` | number | Average rating for the current version only |
| `version` | string | Current app version string |
| `size_mb` | number | App binary size in megabytes |
| `min_ios_version` | string | Minimum required iOS version |
| `release_date` | string | Release date of the current version (ISO 8601) |
| `icon_url` | string | 512x512 icon image URL |
| `store_url` | string | Direct App Store link |
| `supported_languages_count` | integer | Number of supported languages |

***

### Cost estimation

Pricing is **Pay-Per-Event** at **$0.005 per app** returned.

| Run scenario | Apps | Estimated cost |
|---|---|---|
| Lookup 10 specific apps | 10 | $0.05 |
| Search keyword, 50 results | 50 | $0.25 |
| Top 100 free chart (one country) | 100 | $0.50 |
| Daily top chart monitor, 3 countries | 300/day | $1.50/day |

***

### FAQ

**Does the App Store Tracker require an Apple Developer account or API key?**
No. The Actor is powered by Apple's public iTunes Search API, which is freely accessible. No credentials, no Apple account, no rate-limit agreements are needed.

**What is the difference between `search` mode and `lookup` mode?**
`search` mode finds apps by keyword — useful for discovering competitors or market research. `lookup` mode fetches precise metadata for known app IDs — useful for monitoring specific apps over time. Top chart modes (`top_free`, `top_paid`) retrieve current **iOS app rankings** from the RSS feed.

**Can I monitor iOS app rankings changes over time?**
Yes — schedule the Actor daily via Apify's cron scheduler and it writes each run's results to the same dataset, building a historical time series of ratings, version changes, and ranking positions for any country.

> **Disclaimer**: This Actor uses Apple's public iTunes Search API and publicly accessible App Store data. Users are responsible for complying with Apple's Terms of Service and API usage policies. This tool is intended for research and competitive analysis purposes only.

***

**Keywords:** App Store tracker, iOS app rankings, Apple App Store data API, iTunes Search API, ASO tool, competitive app research, App Store scraper, app ratings monitor

***

### Related actors

- [App Store Keyword Tracker](https://apify.com/gochujang/app-store-keyword-tracker) — Keyword ranking positions to complement app metadata tracked here
- [Google Play Store Tracker](https://apify.com/gochujang/google-play-store-tracker) — Android counterpart for cross-platform ASO analysis
- [YouTube Trending Tracker](https://apify.com/gochujang/youtube-trending-tracker) — Discover trending content to find apps growing through viral media

### Feedback

If this actor powers your ASO or app research, a review helps others find it: [Leave a review on Apify Store](https://apify.com/gochujang/app-store-tracker#reviews)

# Actor input Schema

## `mode` (type: `string`):

How to discover apps: search by keyword, lookup specific app IDs, or fetch top charts

## `keyword` (type: `string`):

Keyword to search for apps (used in search mode)

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

Apple App Store app IDs for lookup mode (e.g. \[284882215, 310633997])

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

ISO 2-letter country code for App Store (e.g. us, kr, gb)

## `maxResults` (type: `integer`):

Maximum number of apps to return

## `category` (type: `string`):

Filter by App Store category name (e.g. 'Games', 'Finance', 'Utilities')

## Actor input object example

```json
{
  "mode": "search",
  "country": "us",
  "maxResults": 25
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("gochujang/app-store-tracker").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("gochujang/app-store-tracker").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 '{}' |
apify call gochujang/app-store-tracker --silent --output-dataset

```

## MCP server setup

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

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/Fti16IkqsTFOdavcg/builds/LU2HwVnRjzAbH0Xmg/openapi.json
