Skip to main content
GET /v1/apps/:id/keywords/trends
Returns historical rank data for a specific keyword and app over a configurable time window. Use this to track how your keyword rankings change over time and measure the impact of ASO optimizations.

Path Parameters

NameTypeDescription
idstringApple App ID (numeric, e.g. 1617391485)

Query Parameters

NameTypeRequiredDefaultDescription
keywordstringYesSearch keyword (min 2 characters)
countrystringNousISO country code (e.g. us, gb, de, jp)
devicestringNoiphoneiphone or ipad
daysnumberNo30Number of days of history to return (7–90)

Code Examples

curl "https://api.appeeky.com/v1/apps/1617391485/keywords/trends?keyword=puzzle+game&country=us&days=30" \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "data": {
    "keyword": "puzzle game",
    "appId": "1617391485",
    "country": "us",
    "history": [
      { "date": "2026-01-18", "rank": 12 },
      { "date": "2026-01-19", "rank": 11 },
      { "date": "2026-01-20", "rank": 11 },
      { "date": "2026-01-21", "rank": 9 },
      { "date": "2026-01-22", "rank": 8 },
      { "date": "2026-01-23", "rank": 8 },
      { "date": "2026-01-24", "rank": 7 },
      { "date": "2026-01-25", "rank": 6 },
      { "date": "2026-01-26", "rank": 5 },
      { "date": "2026-01-27", "rank": 5 }
    ],
    "rankChange7d": 6,
    "rankChange30d": 7,
    "trend": "improving"
  }
}

Response Fields

FieldTypeDescription
keywordstringThe queried keyword
appIdstringApple App ID
countrystringISO country code used
historyarrayArray of daily rank data points (see History Object below)
rankChange7dnumberRank change over the last 7 days. Positive = improved (rank number decreased).
rankChange30dnumberRank change over the last 30 days. Positive = improved (rank number decreased).
trendstringOverall trend direction: "improving", "declining", or "stable"

History Object

FieldTypeDescription
datestringDate in YYYY-MM-DD format
ranknumberApp’s rank for the keyword on this date

Understanding Rank Changes

Rank change values are calculated as the improvement in position, not the raw difference in rank number:
  • Positive value = rank improved (e.g. moved from #12 to #5 → rankChange7d: 7)
  • Negative value = rank declined (e.g. moved from #5 to #8 → rankChange7d: -3)
  • Zero = rank stayed the same
Historical data requires daily scraping to be active for the keyword. Data points are only available for dates when the keyword was actively tracked and scraped. Use POST /v1/keywords/track or the auto-tracking from GET /v1/keywords/ranks to ensure a keyword is in the scraping pipeline.
Short-term vs long-term analysis: Use days=7 for quick feedback on recent ASO changes (metadata updates, new screenshots, keyword tweaks). Use days=30 or days=90 for measuring long-term keyword strategy effectiveness and seasonal trends.

Errors

StatusCodeWhen
400INVALID_APP_IDNon-numeric or missing app ID
400INVALID_KEYWORDKeyword shorter than 2 characters
400INVALID_DAYSDays value outside 7–90 range
401UNAUTHORIZEDMissing or invalid API key
429RATE_LIMITEDToo many requests — slow down
500INTERNAL_ERRORServer error fetching trend data