GET /v1/aso/audit/:appId
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Yes | App ID — numeric for Apple (913335252), package name for Google (com.spotify.music) |
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| platform | string | apple | apple (default) or google for Google Play — see Platforms |
| country | string | us | ISO country code (e.g. us, gb, de) |
| lang | string | en | Google Play language code (used when platform=google) |
Code Examples
curl -X GET "https://api.appeeky.com/v1/aso/audit/913335252?country=us" \
-H "X-API-Key: YOUR_API_KEY"
const response = await fetch(
"https://api.appeeky.com/v1/aso/audit/913335252?country=us",
{
headers: { "X-API-Key": "YOUR_API_KEY" },
}
);
const { data } = await response.json();
console.log(`ASO Score: ${data.asoScore}/100 (${data.gradeLabel})`);
console.log(`Recommendations: ${data.recommendations.length}`);
import requests
response = requests.get(
"https://api.appeeky.com/v1/aso/audit/913335252",
params={"country": "us"},
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = response.json()["data"]
print(f"ASO Score: {data['asoScore']}/100 ({data['gradeLabel']})")
for rec in data["recommendations"]:
print(f" [{rec['priority']}] {rec['category']}: {rec['suggestion']}")
Response
{
"data": {
"appId": "913335252",
"country": "us",
"app": {
"title": "Brilliant: Learn by doing",
"developer": "Brilliant.org",
"icon": "https://is1-ssl.mzstatic.com/.../512x512bb.jpg",
"rating": 4.74,
"reviews": 27315,
"category": "Education",
"price": 0,
"lastUpdated": "2026-01-26T12:19:36Z",
"description": "Master concepts in math, data science, and computer science through fun...",
"screenshotCount": 6,
"languageCount": 1
},
"asoScore": 72,
"gradeLabel": "Average",
"scoreBreakdown": {
"titleScore": 85,
"subtitleScore": 70,
"descriptionScore": 75,
"ratingScore": 90,
"reviewsScore": 60,
"keywordCoverageScore": 55,
"visualAssetsScore": 75,
"localizationScore": 20,
"updateFrequencyScore": 80
},
"recommendations": [
{
"priority": "high",
"category": "Keywords",
"issue": "Only ranking for 8 keywords with limited top-10 positions",
"suggestion": "Research and target 15-25 keywords mixing high-volume (competitive) and long-tail (easier to rank) terms. Update keyword field regularly."
},
{
"priority": "medium",
"category": "Reviews",
"issue": "Only 27,315 reviews - need more social proof",
"suggestion": "Use Apple's SKStoreReviewController to prompt reviews at strategic moments. Respond to existing reviews to boost engagement."
},
{
"priority": "low",
"category": "Localization",
"issue": "Only 1 languages supported",
"suggestion": "Localize metadata (title, subtitle, keywords, description) for top markets: Spanish, German, French, Japanese, Chinese, Portuguese, Korean."
}
],
"keywords": {
"tracked": 8,
"top10Count": 2,
"top30Count": 5,
"avgRank": 18,
"bestKeyword": { "keyword": "learn math", "rank": 3 }
},
"metadata": {
"titleLength": 25,
"titleMaxChars": 30,
"titleHasKeyword": true,
"descriptionLength": 1250,
"descriptionWordCount": 210
}
}
}
ASO Score Breakdown
The overall score is a weighted average of 9 factors:| Factor | Weight | What it measures |
|---|---|---|
| titleScore | 15% | Title length, keyword inclusion, formatting |
| subtitleScore | 5% | Subtitle presence and keyword usage |
| descriptionScore | 10% | Length, formatting (bullets/paragraphs), readability |
| ratingScore | 15% | Star rating vs competitive thresholds |
| reviewsScore | 15% | Review count relative to category benchmarks |
| keywordCoverageScore | 20% | Keywords tracked, top-10 and top-30 positions |
| visualAssetsScore | 8% | Screenshot count (target: 8+) |
| localizationScore | 5% | Number of supported languages |
| updateFrequencyScore | 7% | Days since last update |
Grade Labels
| Score Range | Grade |
|---|---|
| 90-100 | Excellent |
| 75-89 | Good |
| 60-74 | Average |
| 40-59 | Needs Work |
| 0-39 | Poor |
Recommendation Fields
| Field | Type | Description |
|---|---|---|
| priority | string | "high", "medium", or "low" |
| category | string | Area of improvement (Title, Description, Rating, etc.) |
| issue | string | What’s wrong — specific to the app |
| suggestion | string | Actionable fix with best practices |
Use the ASO audit as a starting point, then drill deeper with:
- Keyword Opportunities — find new keywords to target
- Metadata Suggestions — get optimized title/subtitle/keywords
- Competitor Report — benchmark against competitors
Errors
| Status | Code | When |
|---|---|---|
| 400 | INVALID_APP_ID | Non-numeric or missing app ID |
| 401 | MISSING_API_KEY | No API key in the request |
| 404 | APP_NOT_FOUND | App not found or unavailable |

