App Store Keyword Discovery Scraper avatar

App Store Keyword Discovery Scraper

Pricing

Pay per event

Go to Apify Store
App Store Keyword Discovery Scraper

App Store Keyword Discovery Scraper

Discover ranked Apple App Store apps by keyword and country for ASO research, competitor tracking, and market discovery.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Discover ranked Apple App Store search results for seed keywords across countries.

Use this actor to collect ASO keyword discovery data, competitor app rankings, ratings, pricing, genres, and keyword candidates from public Apple/iTunes search metadata.

What does App Store Keyword Discovery Scraper do?

App Store Keyword Discovery Scraper searches the public Apple App Store search API for your seed keywords.

It returns ranked apps for each keyword and country combination.

Each dataset row represents one app result in one localized App Store search.

You can use it to understand which apps rank for a keyword, which categories dominate a niche, and which words appear repeatedly in winning app names and genres.

Who is it for?

ASO marketers use it to build keyword research spreadsheets.

App publishers use it to monitor where competitors appear in country-specific search results.

Mobile agencies use it to compare client app categories across markets.

Growth teams use it to find app ideas, niche competitors, and localized ranking opportunities.

Analysts use it to enrich dashboards with ratings, prices, genres, and developer metadata.

Why use this actor?

⚡ It is HTTP-only and does not need a browser.

🌍 It supports multiple App Store countries in one run.

🔎 It starts from keywords instead of requiring known app IDs.

📊 It outputs ranking, app, developer, pricing, rating, and genre fields.

🧩 It is easy to connect to Sheets, BI tools, databases, and ASO workflows.

What data can you extract?

FieldDescription
keywordSeed keyword searched
countryApp Store country code
rankResult position for that keyword/country
appNameApp Store app name
appIdApple numeric app ID
bundleIdiOS bundle identifier when Apple returns it
developerSeller or developer name
primaryGenreMain App Store genre
genresFull genre list
priceNumeric app price
currencyPrice currency
averageRatingAverage user rating
ratingCountNumber of ratings
keywordCandidatesCandidate words/phrases derived from app names and genres
appStoreUrlPublic App Store URL
scrapedAtTimestamp for the scrape

How much does it cost to discover App Store keywords?

This actor uses pay-per-event pricing.

There is a small start event and a per-result event for every ranked app saved.

Final tiered pricing is set after cloud cost validation.

For typical ASO keyword research, start with 2-5 seed keywords, 1-3 countries, and 25-50 results per keyword.

That gives enough signal while keeping the first run inexpensive.

Input options

keywords

Seed App Store search terms.

Examples:

  • fitness tracker
  • meditation
  • budget planner
  • meal planner
  • habit tracker

countries

Two-letter App Store country codes.

Examples:

  • us
  • gb
  • ca
  • au
  • de
  • fr

language

Apple Search API language parameter.

Default is en_us.

Use localized values such as de_de or fr_fr when analyzing non-English markets.

maxResultsPerKeyword

Maximum apps saved for each keyword and country pair.

The actor supports up to 200 results per request when Apple returns that many.

includeDescriptions

Turn this on if you need app description copy for ASO text analysis.

Leave it off for smaller exports and faster downstream processing.

requestDelayMs

Delay between Apple API calls.

The default is conservative and suitable for normal batches.

Example input

{
"keywords": ["fitness tracker", "meditation"],
"countries": ["us", "gb"],
"language": "en_us",
"maxResultsPerKeyword": 25,
"includeDescriptions": false,
"requestDelayMs": 250
}

Example output

{
"keyword": "fitness tracker",
"country": "us",
"language": "en_us",
"rank": 1,
"appName": "Example Fitness App",
"appId": 123456789,
"bundleId": "com.example.fitness",
"developer": "Example Developer",
"primaryGenre": "Health & Fitness",
"averageRating": 4.8,
"ratingCount": 120000,
"keywordCandidates": ["fitness", "health fitness"],
"appStoreUrl": "https://apps.apple.com/...",
"scrapedAt": "2026-06-15T00:00:00.000Z"
}

How to run it

  1. Open the actor on Apify.

  2. Enter one or more seed keywords.

  3. Choose App Store countries.

  4. Set the maximum apps per keyword.

  5. Run the actor.

  6. Export the dataset as JSON, CSV, Excel, or via API.

ASO workflow ideas

Use the output to build keyword maps.

Group apps by primary genre.

Compare rank differences between countries.

Find competitor developers that appear repeatedly.

Extract candidate words from winning app names.

Combine ratings and review counts to prioritize high-value niches.

Track the same keywords weekly to observe ranking changes.

Country comparison workflow

Run the same keywords across several countries.

Pivot the dataset by keyword, country, and rank.

Look for apps that rank well in one market but not another.

Use those gaps to discover localization opportunities.

Competitor monitoring workflow

Search phrases that matter to your app.

Filter by a competitor app name or developer.

Store repeated runs in a database.

Chart rank movement over time.

Tips for better results

Start with broad seed phrases.

Then use keywordCandidates to create follow-up keyword lists.

Use localized country and language pairs.

Keep descriptions disabled unless you need text mining.

Use 25-50 results for exploration and higher limits for final research exports.

Integrations

Send results to Google Sheets for ASO planning.

Load results into BigQuery or Snowflake for trend analysis.

Connect the dataset to a dashboard to monitor competitor rankings.

Use webhooks to trigger weekly keyword checks.

Combine with app detail or review scrapers for deeper App Store intelligence.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/app-store-keyword-discovery-scraper').call({
keywords: ['fitness tracker'],
countries: ['us'],
maxResultsPerKeyword: 25
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/app-store-keyword-discovery-scraper').call(run_input={
'keywords': ['fitness tracker'],
'countries': ['us'],
'maxResultsPerKeyword': 25,
})
print(run['defaultDatasetId'])

API usage with cURL

curl "https://api.apify.com/v2/acts/automation-lab~app-store-keyword-discovery-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords":["fitness tracker"],"countries":["us"],"maxResultsPerKeyword":25}'

MCP usage

Use this actor from Claude Desktop or Claude Code through the Apify MCP server.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/app-store-keyword-discovery-scraper

Claude Code setup:

$claude mcp add apify-app-store-keywords https://mcp.apify.com/?tools=automation-lab/app-store-keyword-discovery-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-app-store-keywords": {
"url": "https://mcp.apify.com/?tools=automation-lab/app-store-keyword-discovery-scraper"
}
}
}

Example prompts:

  • "Find the top App Store apps for meditation in the US and UK."
  • "Compare fitness tracker search results across US, Canada, and Australia."
  • "Run App Store keyword discovery for meal planner and summarize high-rating competitors."

Data freshness

Apple search results can change frequently.

For monitoring, schedule recurring runs with the same input.

For one-off research, export the timestamped dataset and keep the scrapedAt field.

Limits and caveats

The actor uses public Apple search metadata.

Apple may return fewer results than requested for niche keywords.

Some metadata fields are unavailable for some apps or countries.

Rank means the order returned by Apple for the query at run time.

Legality

This actor collects publicly available app search metadata from Apple endpoints.

You should use the data responsibly, respect applicable laws, and avoid collecting personal data.

If you have legal obligations for your project, consult your own counsel.

FAQ

Why did I get fewer apps than requested?

Apple may not have enough matching apps for a narrow keyword, country, or language combination.

Try a broader seed keyword or another country.

Why are some ratings or prices empty?

Apple does not return every field for every app in every market.

Empty values mean the public API did not provide that field for that result.

How do I reduce dataset size?

Lower maxResultsPerKeyword, use fewer countries, and leave includeDescriptions disabled.

Use https://apify.com/automation-lab/apple-app-store-scraper when you already know app IDs or app URLs.

Use https://apify.com/automation-lab/apple-app-store-reviews-scraper when you need review text for known apps.

Use this actor when you need keyword-first App Store discovery.

Changelog

Initial version searches public Apple App Store metadata by keyword and country.

Support

If a run fails or you need a field added, open an Apify issue with your run URL and expected output.