Skip to main content
GET /v1/aso/opportunities/:appId
Find high-value keyword opportunities for an app. Discovers keywords the app doesn’t rank for yet (high volume + low difficulty), plus existing keywords where rank can be improved. Sorted by opportunity score — the higher the score, the bigger the potential impact.

Path Parameters

NameTypeRequiredDescription
appIdstringYesApple App ID (numeric, e.g. 913335252)

Query Parameters

NameTypeDefaultDescription
countrystringusISO country code (e.g. us, gb, de)

Code Examples

curl -X GET "https://api.appeeky.com/v1/aso/opportunities/913335252?country=us" \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "data": {
    "appId": "913335252",
    "country": "us",
    "opportunities": [
      {
        "keyword": "math learning app",
        "volumeScore": 58,
        "difficulty": 32,
        "opportunityScore": 65,
        "currentRank": null,
        "competitorRank": null,
        "source": "suggestion"
      },
      {
        "keyword": "physics simulator",
        "volumeScore": 45,
        "difficulty": 25,
        "opportunityScore": 52,
        "currentRank": null,
        "competitorRank": null,
        "source": "suggestion"
      },
      {
        "keyword": "science quiz",
        "volumeScore": 40,
        "difficulty": 38,
        "opportunityScore": 42,
        "currentRank": 22,
        "competitorRank": null,
        "source": "improvable-rank"
      }
    ],
    "summary": {
      "totalOpportunities": 18,
      "highPriority": 4,
      "mediumPriority": 8,
      "lowPriority": 6
    }
  }
}

Opportunity Fields

FieldTypeDescription
keywordstringThe keyword opportunity
volumeScorenumberSearch volume score (0-100)
difficultynumberRanking difficulty (0-100)
opportunityScorenumberComposite opportunity score (0-100, higher = better)
currentRanknumber|nullApp’s current rank for this keyword (null = not ranking)
competitorRanknumber|nullCompetitor’s rank if applicable
sourcestringHow the opportunity was found (see below)

Source Values

SourceDescription
suggestionNew keyword from Apple autocomplete suggestions — the app doesn’t rank for it yet
improvable-rankApp already ranks but outside top 10 — has room to improve

Summary Fields

FieldTypeDescription
totalOpportunitiesnumberTotal number of opportunities found
highPrioritynumberOpportunities with score >= 50
mediumPrioritynumberOpportunities with score 25-49
lowPrioritynumberOpportunities with score < 25

How opportunity score is calculated:opportunityScore = volumeScore × easeScore × rankBoost
  • easeScore = 100 - difficulty (easier keywords score higher)
  • rankBoost = multiplier based on current rank:
    • Not ranking (null): 0.5 (moderate upside)
    • Rank 11-30: 1.0 (sweet spot — close to top 10)
    • Rank 31+: 0.7 (ranking but far)
    • Top 3: 0.2 (already optimized, low marginal gain)
Focus on high-priority opportunities (score >= 50) first — these are keywords with good volume, low competition, and realistic ranking potential.
Best workflow:
  1. Run ASO Audit to understand your baseline
  2. Use this endpoint to find opportunities
  3. Add target keywords to Metadata Suggestions to generate optimized metadata
  4. Validate the new metadata before submitting
  5. Track keywords to monitor ranking changes over time

Errors

StatusCodeWhen
400INVALID_APP_IDNon-numeric or missing app ID
401MISSING_API_KEYNo API key in the request
404APP_NOT_FOUNDApp not found or unavailable