> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ASO Audit

> Full App Store Optimization health audit with scoring, breakdown, and recommendations

```
GET /v1/aso/audit/:appId
```

Run a comprehensive ASO (App Store Optimization) health audit on any App Store or Google Play app. Returns an overall ASO score (0-100), a 9-factor breakdown, prioritized recommendations, and keyword coverage stats. Think of it as a full SEO audit but for the app stores.

***

## 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](/docs/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

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X GET "https://api.appeeky.com/v1/aso/audit/913335252?country=us" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  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}`);
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  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']}")
  ```
</CodeGroup>

***

## Response

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "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                     |

***

<Tip>
  **Use the ASO audit as a starting point**, then drill deeper with:

  * [Keyword Opportunities](/docs/aso-opportunities) — find new keywords to target
  * [Metadata Suggestions](/docs/aso-metadata-suggest) — get optimized title/subtitle/keywords
  * [Competitor Report](/docs/aso-competitor-report) — benchmark against competitors
</Tip>

***

## 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  |
