Skip to main content
GET /v1/apps/:id/similar
Returns a list of similar and competing apps discovered through a multi-layer matching algorithm.

Path Parameters

NameTypeRequiredDescription
idstringYesApple 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/apps/913335252/similar?country=us" \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "data": [
    {
      "appId": "1157115554",
      "title": "Khan Academy",
      "developer": "Khan Academy",
      "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/.../512x512bb.jpg",
      "rating": 4.8,
      "reviewsCount": 158000
    },
    {
      "appId": "1464991213",
      "title": "Photomath",
      "developer": "Google LLC",
      "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/.../512x512bb.jpg",
      "rating": 4.7,
      "reviewsCount": 892000
    },
    {
      "appId": "1449068013",
      "title": "Coursera: Learn career skills",
      "developer": "Coursera",
      "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/.../512x512bb.jpg",
      "rating": 4.8,
      "reviewsCount": 179000
    }
  ]
}

Response Fields

FieldTypeDescription
appIdstringApple App ID
titlestringApp name
developerstringDeveloper name
iconstringApp icon URL
ratingnumber | nullStar rating (0–5)
reviewsCountnumber | nullTotal ratings count

Matching Algorithm

Similar apps are discovered through a 3-layer matching algorithm:
  1. Keyword overlap (best signal) — Apps ranking for the same keywords
  2. Title-based search + genre filter — Meaningful words from the app’s title are searched on iTunes, then filtered to only include apps in the same primary genre
  3. Same developer — Other apps from the same developer (up to 3)
The algorithm combines all three layers, deduplicates results, and returns up to 10 similar apps. The order reflects match quality — keyword-matched apps appear first, followed by genre-matched, then developer apps.

Migration from Intelligence Endpoint

Previously, similar apps were included in the GET /v1/apps/:id/intelligence response. The intelligence endpoint now returns similarApps: [] by default. Before (single call):
const intel = await fetch("/v1/apps/913335252/intelligence");
const { similarApps } = intel.data;
After (parallel calls):
const [intel, similar] = await Promise.all([
  fetch("/v1/apps/913335252/intelligence"),
  fetch("/v1/apps/913335252/similar"),
]);