# Top Ranking Mobile Apps (`codebyte/top-ranking-mobile-apps`) Actor

Scrape top trending apps for both Apple App Store and Google Play Store. Extract by category, country, device, and date including download estimates, revenue estimates, ratings, publisher info and pricing data. Monitor competitor rankings, track market trends, measure app performance across regions.

- **URL**: https://apify.com/codebyte/top-ranking-mobile-apps.md
- **Developed by:** [Codebyte](https://apify.com/codebyte) (community)
- **Categories:** E-commerce, Lead generation, SEO tools
- **Stats:** 71 total users, 10 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Top Charts Scraper

Scrape top trending apps for both **Apple App Store** and **Google Play Store**. Extract top-ranked apps by category, country, device, and date — including download estimates, revenue estimates, ratings, publisher info, and pricing data.

### What does the App Store Top Charts Scraper do?

This Actor retrieves app category ranking data for both iOS App Store and Google Play Store, covering **90+ countries** and **100+ categories** including all major app and game subcategories.

For each ranked app, the scraper returns:

- **Rank position** and previous rank (track movement over time)
- **App name**, app ID, and icon URL
- **Publisher name** and publisher ID
- **Estimated worldwide monthly downloads** (humanized, e.g., "400k")
- **Estimated worldwide monthly revenue** (humanized, e.g., "$600k")
- **Price** with currency and formatted value
- **Rating** score and rating count
- **In-app purchases** availability flag
- **Ranking type** — each request returns three top-25 charts: **Top Free**, **Top Paid**, and **Top Grossing** (up to 75 apps per request)
- **App overview URL** for each app

Use it to monitor competitor rankings, track market trends, benchmark app performance across regions, or build datasets for app market intelligence.

Rankings are updated at different time intervals: App Store rankings are accurate and updated hourly, while Google Play store rankings are updated daily.

### Use cases

- **Competitive intelligence** — Track how competing apps rank across categories and countries over time.
- **Market research** — Identify top-performing apps in specific categories and regions.
- **Trend analysis** — Monitor ranking changes by date to spot emerging apps and declining ones.
- **Investment research** — Evaluate app revenue and download estimates for due diligence.
- **ASO (App Store Optimization)** — Understand category landscapes to inform keyword and positioning strategies.

### How to use

1. Configure your requests by specifying the store (App Store or Google Play), country, category, device type (iOS only), and date.
2. Run the Actor — each request returns up to 75 results (Top 25 Free + Top 25 Paid + Top 25 Grossing).
3. Retrieve structured JSON results from the output dataset.

#### Example input

```json
{
    "app_store_requests": [
        {
            "country": "US",
            "category": "6015",
            "device": "iphone",
            "date": "1 day"
        }
    ],
    "google_play_requests": [
        {
            "country": "US",
            "category": "game",
            "date": "3 days"
        }
    ]
}
```

### Input schema

The Actor accepts two arrays of request objects — one for each store.

#### App Store Requests (`app_store_requests`)

Each item requires:

| Field | Type | Description |
|-------|------|-------------|
| `country` | string | ISO country code (e.g., `US`, `GB`, `DE`, `JP`). 90+ countries supported. |
| `category` | string | iOS category ID. `0` = Overall. See full list in input schema (e.g., `6015` = Games, `6016` = Finance, `6017` = Entertainment). |
| `device` | string | `iphone` or `ipad`. |
| `date` | string | Ranking date. Accepts `YYYY-MM-DD` or relative format like `1 day`, `3 days`, `1 week`. Defaults to `1 day` (yesterday). Must be within the last 30 days. |

#### Google Play Requests (`google_play_requests`)

Each item requires:

| Field | Type | Description |
|-------|------|-------------|
| `country` | string | ISO country code (e.g., `US`, `GB`, `DE`, `JP`). 90+ countries supported. |
| `category` | string | Google Play category slug. `all` = Overall. See full list in input schema (e.g., `game`, `finance`, `entertainment`, `game_action`). |
| `date` | string | Ranking date. Accepts `YYYY-MM-DD` or relative format like `1 day`, `3 days`, `1 week`. Defaults to `1 day` (yesterday). Must be within the last 30 days. |

#### Supported countries (both stores)

US, GB, DE, FR, JP, KR, CN, IN, BR, AU, CA, IT, ES, NL, SE, NO, DK, FI, PL, CZ, RU, TR, SA, AE, EG, ZA, NG, MX, AR, CL, CO, TH, VN, ID, PH, MY, SG, HK, TW, and 50+ more.

#### Supported iOS categories

Overall, Business, Weather, Utilities, Travel, Sports, Social Networking, Reference, Productivity, Photo & Video, News, Navigation, Music, Lifestyle, Health & Fitness, Games (+ 18 subcategories), Finance, Entertainment, Education, Books, Medical, Food & Drink, Shopping, Developer Tools, Kids (+ age subcategories), and more.

#### Supported Google Play categories

Overall, Art & Design, Auto & Vehicles, Beauty, Books & Reference, Business, Comics, Communication, Dating, Education, Entertainment, Events, Family, Finance, Food & Drink, Game (+ 18 subcategories), Health & Fitness, House & Home, Lifestyle, Maps & Navigation, Medical, Music & Audio, News & Magazines, Parenting, Personalization, Photography, Productivity, Shopping, Social, Sports, Tools, Travel & Local, Video Players, Weather, and more.

### Output

Each request returns up to **75 dataset items** — 25 apps per ranking type:

| `_ranking_type` | Description |
|-----------------|-------------|
| `free` | Top 25 Free Downloads |
| `paid` | Top 25 Paid Downloads |
| `grossing` | Top 25 Top Grossing |

Results are pushed to the default dataset. Each item represents one ranked app and contains:

#### Example output item

```json
{
    "os": "ios",
    "publisher_id": 347363505,
    "publisher_name": "LEGO",
    "in_app_purchases": false,
    "humanized_worldwide_last_month_downloads": {
        "downloads": 400000,
        "downloads_rounded": 400,
        "prefix": null,
        "string": "400k",
        "units": "k"
    },
    "humanized_worldwide_last_month_revenue": {
        "prefix": "< $",
        "revenue": 1000,
        "revenue_rounded": 5,
        "string": "< $5k",
        "units": "k"
    },
    "icon_url": "...",
    "rank": 1,
    "previous_rank": 1,
    "app_id": 1486159728,
    "name": "LEGO® Builder: 3D Instructions",
    "price": {
        "currency": "USD",
        "value": 0,
        "string_value": "$0.00",
        "subunit_to_unit": 100
    },
    "rating": 4.80131,
    "rating_count": 239089,
    "app_overview_url": "...",
    "_ranking_type": "free",
    "_store": "app_store",
    "_country": "US",
    "_category": "6015",
    "_date": "2025-03-01",
    "_device": "iphone"
}
```

#### Output fields reference

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | App name |
| `app_id` | string/integer | App Store or Google Play app identifier |
| `os` | string | Operating system (`ios` or `android`) |
| `rank` | integer | Current rank position in the category |
| `previous_rank` | integer/null | Previous rank position (null if new entry) |
| `_ranking_type` | string | Ranking list type: `free`, `paid`, or `grossing` |
| `publisher_name` | string | App publisher/developer name |
| `publisher_id` | integer/string | Publisher identifier |
| `rating` | number | Average user rating |
| `rating_count` | integer | Total number of ratings |
| `price` | object | Price details including `currency`, `value`, and `string_value` |
| `in_app_purchases` | boolean | Whether the app offers in-app purchases |
| `humanized_worldwide_last_month_downloads` | object | Estimated monthly downloads with humanized string (e.g., "400k") |
| `humanized_worldwide_last_month_revenue` | object | Estimated monthly revenue with humanized string (e.g., "$600k") |
| `icon_url` | string | URL to the app icon image |
| `app_overview_url` | string | App overview page URL |
| `_store` | string | Store identifier: `app_store` or `google_play` |
| `_country` | string | Country code used for the request |
| `_category` | string | Category ID/slug used for the request |
| `_date` | string | Date used for the request |
| `_device` | string | Device type used for the request |

### Integrations

Connect the App Store Top Charts Scraper with other apps and services using the [Apify integrations](https://apify.com/integrations). You can integrate with Make, Zapier, Slack, Discord, or use webhooks to automate actions whenever a run finishes. Export data directly to Google Sheets, Google Drive, Amazon S3, or other storage solutions.

# Actor input Schema

## `app_store_requests` (type: `array`):

List of App Store category ranking requests. Each item maps to one API call.

## `google_play_requests` (type: `array`):

List of Google Play category ranking requests. Each item maps to one API call.

## Actor input object example

```json
{
  "app_store_requests": [
    {
      "country": "US",
      "category": "0",
      "device": "iphone",
      "date": "1 day"
    }
  ],
  "google_play_requests": [
    {
      "country": "US",
      "category": "all",
      "date": "1 day"
    }
  ]
}
```

# 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 = {
    "app_store_requests": [
        {
            "country": "US",
            "category": "0",
            "device": "iphone",
            "date": "1 day"
        }
    ],
    "google_play_requests": [
        {
            "country": "US",
            "category": "all",
            "date": "1 day"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codebyte/top-ranking-mobile-apps").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 = {
    "app_store_requests": [{
            "country": "US",
            "category": "0",
            "device": "iphone",
            "date": "1 day",
        }],
    "google_play_requests": [{
            "country": "US",
            "category": "all",
            "date": "1 day",
        }],
}

# Run the Actor and wait for it to finish
run = client.actor("codebyte/top-ranking-mobile-apps").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 '{
  "app_store_requests": [
    {
      "country": "US",
      "category": "0",
      "device": "iphone",
      "date": "1 day"
    }
  ],
  "google_play_requests": [
    {
      "country": "US",
      "category": "all",
      "date": "1 day"
    }
  ]
}' |
apify call codebyte/top-ranking-mobile-apps --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=codebyte/top-ranking-mobile-apps",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/nGAhaisTEzz7lmk4V/builds/8kttbebceaJX1WpYF/openapi.json
