# App Store Competitor Finder - Similar Apps, Competitor Analysis (`suerte_enero/app-store-competitor-finder`) Actor

Find the competitors of any iOS app on the App Store: similar apps, keyword rivals and same-developer apps, each compared with your app on rating, rating count, price, in-app purchases, update frequency and tracking. Competitor analysis table in one run.

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

## Pricing

$1.00 / 1,000 competitors

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 Competitor Finder — similar apps & mobile app competitor analysis

**App Store Competitor Finder** turns one iOS app into its **full competitor set** and a ready **app competitor analysis** table. It collects the apps Apple shows as similar ("You might also like"), the **top apps for your keywords** and, optionally, the developer's other apps — then compares every competitor with your app on **rating, rating count, price, in-app purchases, update frequency, app age and tracking**.

Use it for **mobile app competitor analysis**, **competitor app research** before a launch, **app market research** for a category, or schedule it to get alerts when competitors ship new versions or change prices.

### What you get

For your app (`role: "seed"`) and every competitor (`role: "competitor"`):

- **Basics**: name, developer, category, price, website, content rating, size, App Store URL.
- **Traction**: rating, rating count, 1-5 star ratings histogram, and `sizeRankInSet` — where the app stands in the set by number of ratings.
- **Monetization**: has in-app purchases, number of listed IAPs, cheapest and most expensive IAP.
- **Activity**: current version, last update date, `daysSinceUpdate`, first release date.
- **Privacy**: `tracksYou` — whether the app declares data used to track you.
- **How it was found** (`foundVia`): `similar`, `keyword:meditation`, `same-developer` — apps found several ways are the closest competitors.
- **Comparison with your app** (`comparison`): `ratingDiff`, `ratingCountRatio` (2.04 = twice as many ratings), `biggerThanSeed`, `priceDiff`, `updatedMoreRecently`, `olderApp`.

### Quick start

```json
{
  "apps": ["https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"],
  "keywords": ["meditation", "sleep sounds"],
  "country": "us"
}
```

### Output example

Real records (Headspace vs its competitors, 29 Oct 2026, shortened):

```json
[
  { "role": "seed", "name": "Headspace: Sleep & Meditation", "rating": 4.84, "ratingCount": 973794, "sizeRankInSet": 2, "iapCount": 10, "iapMaxPrice": 94.99, "tracksYou": false },
  {
    "role": "competitor",
    "name": "Calm",
    "rating": 4.77,
    "ratingCount": 1991079,
    "sizeRankInSet": 1,
    "iapCount": 10,
    "iapMaxPrice": 79.99,
    "tracksYou": true,
    "foundVia": ["similar", "keyword:meditation"],
    "comparison": { "ratingDiff": -0.07, "ratingCountRatio": 2.04, "biggerThanSeed": true }
  },
  {
    "role": "competitor",
    "name": "Insight Timer: Meditate, Sleep",
    "rating": 4.9,
    "ratingCount": 448538,
    "sizeRankInSet": 3,
    "foundVia": ["similar", "keyword:meditation"],
    "comparison": { "ratingDiff": 0.06, "ratingCountRatio": 0.46, "biggerThanSeed": false }
  }
]
```

*Output format* = **Flat** gives `vsSeed_ratingDiff`, `vsSeed_ratingCountRatio`, `ratings5Star`… columns for a competitor matrix in Google Sheets.

### Use cases

- **App store competitor analysis** in minutes instead of a day of copying App Store pages.
- **Find competitor apps** and **similar apps** for any app — yours, a client's, or an acquisition target.
- **Positioning**: who is bigger, who is better rated, who charges more, who updates more often.
- **Competitor monitoring**: with *Only new or changed competitors* a daily run reports new entrants and competitors that shipped a new version or changed in-app purchases.
- **Agencies & investors**: a repeatable competitor matrix per client or per category.

### Schedule it, get alerts, use it as an API

- **Schedule**: in Apify Console open *Schedules*, pick this Actor and run it daily (or hourly). Every run is compared with the previous one automatically.
- **Slack alerts**: paste a Slack incoming webhook into *Webhook URL* and choose *Slack message*. You get a readable digest at the end of each run.
- **Zapier, Make, n8n, your backend**: choose *JSON* webhook format, or call the Actor through the [Apify API](https://docs.apify.com/api/v2) and read the dataset.
- **Google Sheets / Excel**: set *Output format* to *Flat* and export the dataset as CSV or XLSX, or connect the Google Sheets integration.
- **AI agents (MCP)**: the Actor works as a tool in Apify's MCP server; the output schema is stable and every record carries `schemaVersion`.
- **Run summary**: each run stores `RUN_SUMMARY` in the key-value store (saved, charged, requests, warnings).

### Pricing

**$1 per 1,000 competitor records** (your app counts as one record). A competitor set of 20 apps costs $0.02.

### FAQ

**Where do the competitors come from?** Apple's own "You might also like" list for the app, the top App Store search results for your keywords, and (optional) the developer's other apps.

**How many competitors will I get?** Usually 10 similar apps plus `keywordDepth` per keyword, minus duplicates, capped by *Max competitors per app*.

**Which competitors are the closest?** The ones in `foundVia` more than once (similar *and* ranking for your keyword).

**Can I compare competitors in several countries?** Run one country per run (the set of similar apps differs by country), or schedule several runs.

**Do I need an API key?** No.

### App Store toolkit

Seven Actors on one engine, same input style and output conventions, made to be scheduled together:

| Actor | What it answers |
|---|---|
| [App Store Scraper](https://apify.com/suerte_enero/app-store-iap-competitors-scraper) | Everything about an app: details, 1-5 star ratings histogram, in-app purchase prices, privacy labels, app events, competitors |
| [App Store In-App Purchases Scraper](https://apify.com/suerte_enero/app-store-in-app-purchases-scraper) | In-app purchase and subscription prices in 100 countries side by side, in USD |
| [App Store Competitor Finder](https://apify.com/suerte_enero/app-store-competitor-finder) | The full competitor set of an app, compared field by field |
| [App Store Privacy Labels Scraper](https://apify.com/suerte_enero/app-store-privacy-labels-scraper) | What apps track and collect, for apps, searches and whole top charts |
| [App Store Top Charts](https://apify.com/suerte_enero/app-store-top-charts) | Who is in top free / paid / grossing per country and category, and who moved since yesterday |
| [App Store Keyword Rank Tracker](https://apify.com/suerte_enero/app-store-keyword-rank-tracker) | Where your app ranks for each keyword, keyword difficulty, Apple search suggestions |
| [App Store Ratings Tracker](https://apify.com/suerte_enero/app-store-ratings-tracker) | How people rate your app right now: new ratings per day and their average, 1-2 star share, version impact |

**Also for Android:** [Google Play Download Count](https://apify.com/suerte_enero/google-play-download-count-app-data) (exact installs) · [Google Play In-App Purchases & Price Tracker](https://apify.com/suerte_enero/google-play-in-app-purchases-price-tracker) · [Google Play Similar Apps & Competitors](https://apify.com/suerte_enero/google-play-similar-apps-competitors) · [Google Play Data Safety Scraper](https://apify.com/suerte_enero/google-play-data-safety-scraper) · [Google Play Developer Email & Contacts](https://apify.com/suerte_enero/google-play-developer-email-leads)

### Changelog

- **1.0 (Oct 2026)** — Similar apps, keyword rivals and same-developer apps, comparison with the input app, size rank in the set, IAP, update and tracking data, change monitoring, Slack and JSON webhooks.

# Actor input Schema

## `apps` (type: `array`):

Apps to find competitors for: App Store URLs, ids or bundle ids.

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

App Store country (2-letter code).

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

Also treat the top apps for these App Store searches as competitors, e.g. "meditation", "sleep sounds".

## `keywordDepth` (type: `integer`):

How many search results per keyword count as competitors.

## `includeDeveloperApps` (type: `boolean`):

Also add the other apps of the same developer.

## `maxCompetitorsPerApp` (type: `integer`):

Cap on competitors per input app.

## `includePageData` (type: `boolean`):

Adds the star histogram, in-app purchase count and prices and whether the app tracks users (one page request per competitor).

## `maxConcurrency` (type: `integer`):

App pages loaded in parallel.

## `maxItems` (type: `integer`):

Stop after saving this many records. You are charged only for saved records.

## `onlyNew` (type: `boolean`):

Next runs save only new competitors and competitors whose version, price or in-app purchases changed.

## `includeUpdated` (type: `boolean`):

In monitoring mode, also save known records whose important fields changed (date, price, sold out, venue…). They come with recordType "updated" and a list of changes.

## `monitorId` (type: `string`):

Optional name for the monitoring feed, e.g. "sf-ai-events". Runs with the same name share memory. Leave empty to derive it from the search settings.

## `memoryDays` (type: `integer`):

Monitoring memory forgets records not seen for this many days.

## `outputFormat` (type: `string`):

"full" keeps nested objects (best for JSON / API). "flat" turns them into plain columns for Excel and Google Sheets.

## `webhookUrl` (type: `string`):

Optional. At the end of the run, POST the saved records (up to 200) to this URL: Slack incoming webhook, Zapier, Make, n8n or your own endpoint. Not sent when nothing was saved.

## `webhookFormat` (type: `string`):

"slack" sends a readable message, "json" sends the records and run summary.

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

Not needed in most cases. If the site starts throttling, the Actor switches to Apify Proxy by itself.

## Actor input object example

```json
{
  "apps": [
    "https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"
  ],
  "country": "us",
  "keywords": [
    "meditation"
  ],
  "keywordDepth": 10,
  "includeDeveloperApps": false,
  "maxCompetitorsPerApp": 50,
  "includePageData": true,
  "maxConcurrency": 4,
  "maxItems": 1000,
  "onlyNew": false,
  "includeUpdated": true,
  "memoryDays": 90,
  "outputFormat": "full",
  "webhookFormat": "json",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

## `allFields` (type: `string`):

No description

## `runSummary` (type: `string`):

Saved, charged, new / updated / known records, requests and warnings.

# 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 = {
    "apps": [
        "https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"
    ],
    "keywords": [
        "meditation"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("suerte_enero/app-store-competitor-finder").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 = {
    "apps": ["https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"],
    "keywords": ["meditation"],
}

# Run the Actor and wait for it to finish
run = client.actor("suerte_enero/app-store-competitor-finder").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 '{
  "apps": [
    "https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"
  ],
  "keywords": [
    "meditation"
  ]
}' |
apify call suerte_enero/app-store-competitor-finder --silent --output-dataset

```

## MCP server setup

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

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/x0kDpPsPzdbLdUyWz/builds/JaPRldUUTOkheraC8/openapi.json
