# App Store Ranking Tracker (Apple) (`straightforward_hydra/app-store-ranking-tracker`) Actor

Track where iOS apps rank for search keywords, or pull the App Store top charts (free / paid / grossing) by country and category. No API key needed.

- **URL**: https://apify.com/straightforward\_hydra/app-store-ranking-tracker.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 rankings

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## App Store Ranking Tracker (Apple) 📊

**Track where iOS apps rank for search keywords, or pull the App Store top charts — by country and category. No API key required.**

Where your app ranks for a keyword, and who's topping the charts, is core **app store optimization (ASO)** and market intelligence. This Actor tells you an app's **rank for any search term**, or pulls the **top free / paid / grossing charts** for any country and category — all from Apple's public endpoints.

> Uses Apple's public search + charts feeds — no key, no login, no browser.

***

### What you can do with it

- 📈 **Track keyword rankings** — monitor where your (or a competitor's) app ranks for target search terms.
- 🏆 **Watch the charts** — top free / paid / grossing apps by country and category.
- 🌍 **Multi-country** — compare rankings across storefronts.
- 🔍 **Keyword discovery** — see the top apps for any search term.
- 🔔 **Rank alerts** — run on a schedule and get notified when your rank moves.

### Features

- ✅ **No API key** — works out of the box.
- ✅ **Two modes** — keyword rank and top charts.
- ✅ **Track specific apps** — by ID or name — or list the top apps per keyword.
- ✅ **Multi-country, multi-keyword** per run.
- ✅ **Low-maintenance** — official Apple endpoints.

***

### Modes

#### Keyword rank

Provide **keywords** and the **apps** you want the rank of (by ID or name). Get one row per app per keyword with its rank (or "not found" within your search depth).

```json
{
  "mode": "keyword",
  "keywords": ["budget app", "expense tracker"],
  "appNames": ["Mint"],
  "searchDepth": 100,
  "countries": ["us"]
}
```

Leave the apps empty to instead list the **top apps for each keyword** (discovery).

#### Top charts

Pull the top free / paid / grossing apps, optionally by genre.

```json
{
  "mode": "charts",
  "chartType": "topfree",
  "genreId": "6014",
  "limit": 100,
  "countries": ["us", "gb"]
}
```

Common genre IDs: `6014` Games, `6015` Finance, `6023` Food & Drink, `6017` Education, `6020` Medical, `6007` Productivity.

### Input

| Field | Description |
|---|---|
| **Mode** | `keyword` or `charts`. |
| **Keywords** | Search terms (keyword mode). |
| **Tracked app IDs / names** | Apps to get the rank of. |
| **Search depth** | How deep to scan for the rank (1–200). |
| **Chart type / Genre ID / Chart size** | Charts-mode options. |
| **Country storefronts** | Two-letter codes. |
| **App type** | iPhone / iPad / Mac (keyword mode). |
| **Max results** | Overall cap. |

### Output

Each row is one ranking:

```json
{
  "mode": "keyword",
  "context": "budget app",
  "country": "us",
  "rank": 7,
  "found": true,
  "app_id": "300238550",
  "app_name": "Mint: Budget & Expense Manager",
  "artist_name": "Intuit Inc.",
  "price": "Free",
  "primary_genre": "Finance",
  "average_rating": 4.7,
  "rating_count": 720000,
  "url": "https://apps.apple.com/us/app/id300238550"
}
```

### Run it on a schedule

Schedule the Actor daily to build a **rank history** for your keywords or charts, and connect a **Slack / email / Google Sheets** integration to track movements over time.

### Notes & limitations

- Uses Apple's public search + RSS charts feeds — no key needed.
- Keyword rank reflects Apple's public search ordering for that term and storefront (a strong proxy for ASO rank).
- Search depth is capped at 200 results per keyword (Apple's limit).
- Covers the **Apple** App Store.
- This is **public ranking data**.

***

#### Keywords

App Store ranking, ASO, app store optimization, keyword ranking, app rank tracker, top charts, top free apps, top grossing, app store charts, app market intelligence, keyword rank, app ranking, competitor tracking, app analytics, iOS app rank, app store keywords, mobile app intelligence, app discovery, rank tracking, app store data.

# Actor input Schema

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

Keyword = where apps rank for search terms (or the top apps per term). Charts = the top free/paid/grossing app charts.

## `keywords` (type: `array`):

Search terms to check rankings for, e.g. "weather", "budget app". Used in Keyword mode.

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

Keyword mode: the App Store IDs of the apps you want the rank of, e.g. 389801252. Leave empty to instead list the top apps for each keyword.

## `appNames` (type: `array`):

Keyword mode: app names to track (resolved to IDs automatically). Merged with the App IDs above.

## `searchDepth` (type: `integer`):

Keyword mode: how many results to scan for the app's position (1–200). If the app isn't within this depth, rank is reported as not found.

## `chartType` (type: `string`):

Charts mode: which chart to pull.

## `genreId` (type: `string`):

Charts mode: Apple genre ID to filter the chart, e.g. 6014 (Games), 6023 (Food & Drink), 6015 (Finance). Leave empty for all apps.

## `limit` (type: `integer`):

Charts mode: how many ranked apps to return (1–200).

## `countries` (type: `array`):

Two-letter country codes, e.g. us, gb, de. Rankings differ per country.

## `entity` (type: `string`):

Which app type to search.

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

Stop after this many ranking rows. Leave empty for no limit.

## Actor input object example

```json
{
  "mode": "keyword",
  "keywords": [
    "weather"
  ],
  "searchDepth": 100,
  "chartType": "topfree",
  "limit": 100,
  "countries": [
    "us"
  ],
  "entity": "software"
}
```

# 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 = {
    "keywords": [
        "weather"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("straightforward_hydra/app-store-ranking-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 = { "keywords": ["weather"] }

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

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "weather"
  ]
}' |
apify call straightforward_hydra/app-store-ranking-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=straightforward_hydra/app-store-ranking-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/sQxgK3YAlcEyq9PJc/builds/JaJeK1dP9wiQkIhqW/openapi.json
