Find an app's competitors (store "similar apps" plus apps ranking for the same keywords).
Scored list: shared_keywords (search terms both apps rank for) counts most, the store's own similar-apps
list (similar_position) adds a boost. Feed the result into getApp / listAppChanges for a
competitor digest.
Request
curl "https://api.appgoat.ai/v1/apps/com.spotify.music/competitors?limit=5" \
-H "x-api-key: $APPGOAT_API_KEY"const res = await fetch("https://api.appgoat.ai/v1/apps/com.spotify.music/competitors?limit=5", {
headers: {
"x-api-key": process.env.APPGOAT_API_KEY,
},
});
const { data, meta } = await res.json();import os, requests
res = requests.get(
"https://api.appgoat.ai/v1/apps/com.spotify.music/competitors?limit=5",
headers={"x-api-key": os.environ["APPGOAT_API_KEY"]}
)
body = res.json()Path parameters
appstringrequiredAny app identifier: App Store id (
284882215, id284882215), Play package (com.spotify.music), Apple bundle id (com.spotify.client), store URL (URL-encoded), apple:<id> / play:<id>, or a name (spotify).Query parameters
store"apple" | "play"Disambiguates
{app} (a bundle id vs a Play package, or a name).countrystringISO country code(s):
us (default), a comma list (paid plans), or all (Studio).Default "us"
limitintegerDefault 20
Response
200 with data: Competitor[]. See the envelope for meta.
storeStoreapp_idstringtitlestring | nulldeveloper_namestring | nullicon_urlstring | nullcategorystring | nullratingnumber | nullratings_countinteger | nullinstalls_mininteger | nullPlay install bucket lower bound.
pricenumber | nullshared_keywordsintegerbest_shared_rankinteger | nullsimilar_positioninteger | nullPosition in the store's similar-apps list.
scorenumberExample
{
"data": [
{
"store": "apple",
"app_id": "324684580",
"title": "Spotify: Music and Podcasts",
"developer_name": "string",
"icon_url": "string",
"category": "string",
"rating": 4.5,
"ratings_count": 1,
"installs_min": 1,
"price": 4.5,
"shared_keywords": 1,
"best_shared_rank": 1,
"similar_position": 1,
"score": 4.5
}
],
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"request_id": "req_123"
}
}Status codes
200
Competitors, best first.
Missing or invalid API key.
insufficient_credits (the call costs more than you have left; nothing was done) or plan_limit (a feature of a higher plan).Nothing matches
{app}, or the store does not have it.429
rate_limitedToo many requests per second for your plan.