A Reddit post + Claude Code + a free API = complete App Store keyword data including popularity, difficulty, top app rankings, and related keyword suggestions.
The Backstory
Browsing Reddit’s r/iOSProgramming, I came across a developer who built an App Store keyword analysis API. His motivation was simple:
He didn’t want to pay $70/month for an ASO tool just to look up a few keywords occasionally.
He published the tool on the Apify platform with pay-per-use pricing. The key part — 250 free API calls per month, more than enough for indie developers and small teams.
What you get:
- Keyword popularity (5-100, similar to Apple Search Ads scoring)
- Competition difficulty (0-100, higher = harder)
- Top 10 app rankings (with names, ratings, review counts)
- Related keyword suggestions
After reading the post, I had a thought: what if I combined this API with AI — could it replace those paid ASO tools entirely?
The answer: Yes, and the experience is actually better.
What I Built
I used Claude Code (Anthropic’s AI coding tool) to automate the entire workflow:
- Input a set of keywords
- AI automatically calls the API, batch-querying data across 11 markets
- Outputs a formatted analysis report
The whole setup took about 20 minutes. After that, each research session takes just one command.
Step-by-Step Tutorial
Step 1: Sign Up for Apify and Get Your API Token
- Register at apify.com (free)
- Go to Settings → Integrations, copy your API Token
- Install the Python client:
pip install apify-client
Step 2: Understand the API
The tool’s Actor ID is asodev/app-store-keyword-tool. Here’s how to call it:
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"action": "keyword-analysis",
"keywords": ["fitness tracker", "workout app", "health monitor"],
"storefront": "US", # Must be uppercase
}
run = client.actor("asodev/app-store-keyword-tool").call(run_input=run_input)
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
Key notes:
keywordsis an array — you can pass multiple keywords in one call, and it only counts as one API callstorefrontmust be uppercase (USnotus— learned this the hard way)- Supports 50+ countries/regions
Step 3: Reading the Response Data
Each keyword returns data like this:
{
"keyword": "fitness tracker",
"storefront": "US",
"popularity": 61,
"difficulty": 78,
"confidence": "high",
"totalApps": 47,
"topApps": [
{
"name": "Fitbit: Health & Fitness",
"appId": 462638897,
"rating": 4.2,
"ratingCount": 583201
}
],
"relatedSearches": [
"fitness tracker app",
"health and fitness tracker",
"activity tracker"
]
}
How to interpret the data:
| Field | Meaning | How to Use |
|---|---|---|
| popularity | Search volume 5-100 | ≥40 worth optimizing, <20 barely searched |
| difficulty | Competition 0-100 | ≤50 you have a chance, ≥80 dominated by big players |
| pop/diff ratio | popularity ÷ difficulty | Higher ratio = bigger opportunity |
| topApps | Current top 10 rankings | Know your competitors |
| relatedSearches | Related search terms | Long-tail keyword goldmine |
Step 4: Batch Query Multiple Markets
The key to maximizing 250 free calls is batching. One API call can handle 20-30 keywords, so:
- 30 keywords × 1 market = 1 API call
- 30 keywords × 11 markets = 11 API calls
- You can run 20+ full research rounds per month
markets = ["US", "JP", "KR", "BR", "ID", "TR", "VN", "TH", "SA", "MX", "PH"]
for market in markets:
run_input = {
"action": "keyword-analysis",
"keywords": your_keywords, # Pass them all at once
"storefront": market,
}
# ... call the API
Adding AI: From Data to Insights
Getting the data is just step one. The real time-saver is having AI analyze it for you.
I built an automated Skill in Claude Code. Now each research session only requires:
/aso-keyword-research fitness tracker, workout app, step counter, calorie counter
The AI automatically:
- Calls the API for all markets
- Sorts by popularity/difficulty
- Flags high-opportunity keywords (high popularity + low difficulty)
- Compares across 11 markets
- Lists related searches (discovering long-tail opportunities)
- Saves CSV and JSON files
Sample output (excerpt):
US Market Keyword Analysis
================================================================
High Popularity (Pop >= 20)
Keyword Pop Diff Ratio Top App
-------------------------------------------------------
fitness tracker 61 78 0.78 Fitbit
workout app 55 72 0.76 Nike Training Club
step counter 48 58 0.83 Pedometer++
calorie counter 52 69 0.75 MyFitnessPal
Multi-Market Comparison
================================================================
Keyword US JP KR BR ID TR VN
-------------------------------------------------------
fitness tracker 61 42 38 45 35 40 37
workout app 55 -- -- 41 30 35 32
step counter 48 51 45 38 28 33 30
Top Opportunities (High Pop / Low Diff)
================================================================
[ID] step counter Pop=28 Diff=31 Ratio=0.90
[VN] fitness tracker Pop=37 Diff=42 Ratio=0.88
[TH] step counter Pop=30 Diff=35 Ratio=0.86
Key takeaways at a glance:
- “step counter” has low difficulty in Southeast Asian markets — an opportunity
- “fitness tracker” has solid popularity globally
- “workout app” has low search volume in Asia — might need localized keywords
Real Findings from My Research
After running several rounds with this setup, I found some counterintuitive insights:
1. Single-word keywords have high popularity but are useless
Keywords like “Wallet” (popularity 69) or “Gold” (popularity 50) look tempting. But the #1 result is Apple Wallet or a system app — you simply can’t rank for them.
2. Most keywords have a popularity of just 5
The App Store’s popularity distribution is extremely skewed. A popularity of 5 basically means “no detectable search volume.” If half your keyword list scores 5, you need new keywords.
3. Long-tail keywords are the real goldmine
“crypto wallet” has popularity 51, difficulty 81 — very hard to crack. But the related searches from the API include terms like “self custody wallet” and “defi wallet” — much lower difficulty, much more targeted.
4. Markets vary dramatically
The same keyword might have popularity 60 in the US but only 5 in Indonesia. Before going international, run the data first — don’t guess.
Cost Comparison
| Solution | Monthly Cost | Keyword Data | Multi-Market | Automation |
|---|---|---|---|---|
| Sensor Tower | $79+ | ✅ | ✅ | ❌ |
| AppTweak | $69+ | ✅ | ✅ | ❌ |
| Astro (Mac) | $50 | ✅ | Limited | ❌ |
| This approach | $0 | ✅ | ✅ 50+ markets | ✅ |
After exhausting the free tier, Apify charges $20/1000 keyword analyses. For most indie developers, the free tier covers monthly research needs.
Quick Start Checklist
- ✅ Sign up for Apify, get your API Token
- ✅
pip install apify-client - ✅ Copy the Python code above, swap in your keywords
- ✅ Run the US market first, find keywords with popularity ≥ 40
- ✅ Use related searches to discover long-tail keywords
- ✅ Expand high-potential keywords to target markets
If you use Claude Code, you can take it further by packaging the whole workflow into a Skill — one command and you’re done.
Final Thoughts
ASO doesn’t require expensive tools. A free API + AI-powered analysis gives you the same caliber of data as paid tools.
What matters isn’t the tool itself, but how you use the data to make decisions: which keywords to target, which markets have opportunities, and how to allocate keyword weight across your title and subtitle.
Tools are just the starting point. Strategy is the moat.
Inspiration: Reddit r/iOSProgramming — thanks to this developer for sharing the tool.
API used: Apify - App Store Keyword Tool