# App Store Intelligence: Search, Details, Charts, Reviews (`celebrated-quadraphonic/appstore-intelligence`) Actor

Apple App Store intelligence: search apps, full app details (40+ fields), top charts per country, and paginated user reviews — in one Actor. Uses Apple's official public APIs over plain HTTP. No API key, no browser, no proxies needed.

- **URL**: https://apify.com/celebrated-quadraphonic/appstore-intelligence.md
- **Developed by:** [XiaoZhi DataTools](https://apify.com/celebrated-quadraphonic) (community)
- **Categories:** Developer tools, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 app scrapeds

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

## App Store Intelligence — Search, Details, Charts & Reviews

Apple App Store data in one Actor. Search apps by keyword, look up full details by App ID or bundle ID, pull top charts per country, and scrape paginated user reviews — all through Apple's official public APIs. **No API key, no browser, no proxies.**

### Why this Actor

- **Four modes, one Actor** — competitors make you choose: one Actor for reviews, another for details. Here you get keyword search, full app lookup, top charts (free/paid/grossing), and user reviews in a single run.
- **40+ fields per app** — name, developer, price, ratings, version, release notes, description, screenshots, genres, content rating, file size, languages, minimum OS version, and more.
- **Real paginated reviews** — up to 2,000 reviews per app, most-recent-first, with author, star rating, title, text, date, app version, and vote counts. Duplicates are removed automatically.
- **Any country** — query any App Store country (US, GB, DE, JP, CN, …); charts follow the selected store.
- **No start fee** — unlike some competitors, you only pay for what you get. The first 20 items of every run are free.

### Inputs

- **Search terms** — keywords, one per line (e.g. `fitness tracker`).
- **App IDs / bundle IDs** — numeric IDs (`389801252`) or bundle IDs (`com.apple.mobileslideshow`), one per line.
- **Top chart** — `topFree`, `topPaid`, or `topGrossing`; each entry is enriched with full app details.
- **Country** — two-letter code (default `us`).
- **Include reviews** — scrape reviews for every app found (default on).
- **Max reviews per app** — up to 2000 (default 100).
- **Max apps / Search limit / Chart limit / Request concurrency** — tune volume and speed.

### Output

Two item types in one dataset (`itemType` field):

App (`itemType: "app"`):

```json
{
  "itemType": "app",
  "appId": 389801252,
  "appName": "MyFitnessPal: Calorie Counter",
  "developer": "MyFitnessPal, Inc.",
  "price": 0, "currency": "USD", "formattedPrice": "Free",
  "averageRating": 4.71, "ratingCount": 2371465,
  "primaryGenre": "Health & Fitness",
  "version": "25.30.0",
  "chartRank": 12, "chart": "topFree",
  "country": "us"
}
```

Review (`itemType: "review"`):

```json
{
  "itemType": "review",
  "appId": 389801252,
  "appName": "MyFitnessPal: Calorie Counter",
  "author": "fitfan88",
  "rating": 5,
  "title": "Best tracker",
  "content": "Love the barcode scanner...",
  "reviewDate": "2026-09-28T12:00:00-07:00",
  "version": "25.30.0"
}
```

Export to Excel, CSV, JSON, XML, or HTML straight from the Apify dataset.

### Pick your mode

| You need | Fill in | You pay for |
|---|---|---|
| Apps only | Search terms / App IDs / chart mode | `app` $0.0001 each |
| Reviews only | App IDs + reviews mode | `review` $0.0001 each |
| Both | All of the above | Each event type as scraped |

Unfilled inputs cost nothing — the first 20 items per run are free anyway.

### Pricing

- **$0.10 per 1,000 apps** (pay-per-event `app`)
- **$0.10 per 1,000 reviews** (pay-per-event `review`)
- First 20 items of every run are free; $0.00005 Actor start per run.

### Notes

- Uses Apple's official iTunes Search/Lookup APIs and public RSS feeds — stable, no scraping of HTML pages.
- Reviews are limited to what Apple exposes (most recent first, ~50 per page).

# Actor input Schema

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

App Store numeric IDs (e.g. 389801252) or bundle IDs (e.g. com.apple.mobileslideshow), one per line. Full 40+ field details are returned.

## `chart` (type: `string`):

Pull a top chart for the selected country, then enrich each app with full details.

## `chartLimit` (type: `integer`):

How many chart entries to pull (max 200).

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

Two-letter App Store country code, e.g. us, gb, de, jp, cn.

## `includeReviews` (type: `boolean`):

Scrape user reviews for every app found (paginated, most recent first).

## `maxApps` (type: `integer`):

Maximum number of apps to return per run.

## `maxReviewsPerApp` (type: `integer`):

Maximum reviews to scrape per app (max 2000).

## `requestConcurrency` (type: `integer`):

How many API requests to run in parallel.

## `searchLimit` (type: `integer`):

Maximum apps returned per search term (max 200).

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

Keywords to search the App Store for, one per line. Example: fitness tracker

## Actor input object example

```json
{
  "chart": "none",
  "chartLimit": 100,
  "country": "us",
  "includeReviews": true,
  "maxApps": 200,
  "maxReviewsPerApp": 100,
  "requestConcurrency": 5,
  "searchLimit": 50,
  "searchTerms": [
    "fitness tracker"
  ]
}
```

# 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 = {
    "country": "us",
    "searchTerms": [
        "fitness tracker"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("celebrated-quadraphonic/appstore-intelligence").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 = {
    "country": "us",
    "searchTerms": ["fitness tracker"],
}

# Run the Actor and wait for it to finish
run = client.actor("celebrated-quadraphonic/appstore-intelligence").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 '{
  "country": "us",
  "searchTerms": [
    "fitness tracker"
  ]
}' |
apify call celebrated-quadraphonic/appstore-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,celebrated-quadraphonic/appstore-intelligence"
        }
    }
}
```

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/zcdbpranQHMgWqs2z/builds/THdxoWZUZ87abxqcw/openapi.json
