Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Yes | Apple App ID (numeric) |
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
| country | string | us | ISO country code (ignored when countries is set) |
| countries | string | — | Comma-separated ISO codes (e.g. us,gb,de) for per-country briefs; see multi-country below |
| fresh | bool | false | If true or 1, forces a fresh re-analysis (slower) |
| intentClusters | bool | false | If true or 1, group opportunity keywords into semantic intent clusters (+2 credits) |
Response (single country)
| Section | Description |
|---|---|
summary | One-line headline, ASO score, grade, keyword stats |
storefrontReadiness | 0–100 combined score: ASO core, creative (visuals + screenshot count from audit), metadata fit; gradeLabel + summary |
intentClusters | Present when intentClusters=1: clusters with label, keywords, avgOpportunityScore, prioritizeClusterId, or skipped + reason if clustering cannot be returned |
prioritizedActions | Audit + opportunities + optional intent action (“Prioritize this intent group…”) |
opportunitiesTop | Up to 10 opportunity rows |
meta | warnings if clustering skipped or failed |
Multi-country
Use?countries=us,gb,de (same rules as keyword ranks / countries list).Response shape:
countries (minimum 1). +2 when intentClusters=1 (flat add-on for the whole request).
Code examples
Credits
- 5 × (country multiplier) — multiplier is the number of valid
countriescodes, or 1 when onlycountryis used (same model as keyword metrics / ranks). - +2 when
intentClusters=1(intent clustering add-on).
X-Credit-Cost reflects the final charge.
Errors
| Status | Code | When |
|---|---|---|
| 400 | INVALID_APP_ID | Missing or non-numeric app ID |
| 400 | INVALID_COUNTRIES | countries set but no valid codes |
| 404 | APP_NOT_FOUND | App unavailable or no data for a requested country |
| 401 | — | Missing or invalid API key |
| 429 | — | Insufficient monthly credits |

