App Store Keyword Discovery Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
keyword | Seed keyword searched |
country | App Store country code |
rank | Result position for that keyword/country |
appName | App Store app name |
appId | Apple numeric app ID |
bundleId | iOS bundle identifier when Apple returns it |
developer | Seller or developer name |
primaryGenre | Main App Store genre |
genres | Full genre list |
price | Numeric app price |
currency | Price currency |
averageRating | Average user rating |
ratingCount | Number of ratings |
keywordCandidates | Candidate words/phrases derived from app names and genres |
appStoreUrl | Public App Store URL |
scrapedAt | Timestamp 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 trackermeditationbudget plannermeal plannerhabit tracker
countries
Two-letter App Store country codes.
Examples:
usgbcaaudefr
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
-
Open the actor on Apify.
-
Enter one or more seed keywords.
-
Choose App Store countries.
-
Set the maximum apps per keyword.
-
Run the actor.
-
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 ApifyClientclient = 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.
Related scrapers
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.