curl --request GET \
--url https://api.appgoat.ai/v1/apps/{app} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.appgoat.ai/v1/apps/{app}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.appgoat.ai/v1/apps/{app}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"store": "apple",
"app_id": "324684580",
"bundle_id": "com.spotify.client",
"title": "Spotify: Music and Podcasts",
"developer": {
"id": "324684583",
"name": "Spotify"
},
"rating": 4.78,
"ratings_count": 42668141,
"version": "9.1.92",
"markets": [
{
"country": "us",
"available": true,
"price": 0,
"currency": "USD",
"rating": 4.78,
"ratings_count": 42668141,
"version": "9.1.92",
"fetched_at": "2026-10-22T15:03:07Z"
}
],
"linked": {
"store": "play",
"app_id": "com.spotify.music",
"title": "Spotify: Music and Podcasts",
"icon_url": "https://…",
"match": "developer"
}
},
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"store": "apple",
"freshness": {
"fetched_at": "2026-10-22T15:03:07Z",
"age_seconds": 3600,
"stale": false,
"refreshing": false,
"job_id": null
},
"request_id": "req_123"
}
}{
"data": "<unknown>",
"meta": {
"credits_used": 123,
"credits_remaining": 123,
"request_id": "<string>",
"freshness": {
"fetched_at": "2023-11-07T05:31:56Z",
"age_seconds": 123,
"stale": true,
"refreshing": true,
"job_id": "<string>"
},
"next_cursor": "<string>",
"store": "apple",
"warnings": [
"<string>"
]
}
}{
"error": {
"code": "invalid_param",
"message": "limit must be ≤ 100",
"hint": "Fix the parameter and retry.",
"docs": "https://appgoat.ai/docs/errors#invalid_param",
"param": "limit"
}
}{
"error": {
"code": "invalid_param",
"message": "<string>",
"hint": "<string>",
"docs": "<string>",
"param": "<string>"
}
}{
"error": {
"code": "invalid_param",
"message": "<string>",
"hint": "<string>",
"docs": "<string>",
"param": "<string>"
}
}Get app
Use this first when a user mentions an app. Pass any identifier or a name in {app}. Data older than
max_age (default 7 days) is refreshed from the store; an app we never saw is fetched on the spot (if it
is still being fetched after ~25 s you get HTTP 202 with data: null and a job_id).
include adds sections: markets (every storefront), iap (in-app purchases), versions (version
history with release notes), privacy (App Store privacy labels), estimates (modelled downloads /
revenue), charts (current top-chart positions), summary (AI summary, coming soon).
curl --request GET \
--url https://api.appgoat.ai/v1/apps/{app} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.appgoat.ai/v1/apps/{app}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.appgoat.ai/v1/apps/{app}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"store": "apple",
"app_id": "324684580",
"bundle_id": "com.spotify.client",
"title": "Spotify: Music and Podcasts",
"developer": {
"id": "324684583",
"name": "Spotify"
},
"rating": 4.78,
"ratings_count": 42668141,
"version": "9.1.92",
"markets": [
{
"country": "us",
"available": true,
"price": 0,
"currency": "USD",
"rating": 4.78,
"ratings_count": 42668141,
"version": "9.1.92",
"fetched_at": "2026-10-22T15:03:07Z"
}
],
"linked": {
"store": "play",
"app_id": "com.spotify.music",
"title": "Spotify: Music and Podcasts",
"icon_url": "https://…",
"match": "developer"
}
},
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"store": "apple",
"freshness": {
"fetched_at": "2026-10-22T15:03:07Z",
"age_seconds": 3600,
"stale": false,
"refreshing": false,
"job_id": null
},
"request_id": "req_123"
}
}{
"data": "<unknown>",
"meta": {
"credits_used": 123,
"credits_remaining": 123,
"request_id": "<string>",
"freshness": {
"fetched_at": "2023-11-07T05:31:56Z",
"age_seconds": 123,
"stale": true,
"refreshing": true,
"job_id": "<string>"
},
"next_cursor": "<string>",
"store": "apple",
"warnings": [
"<string>"
]
}
}{
"error": {
"code": "invalid_param",
"message": "limit must be ≤ 100",
"hint": "Fix the parameter and retry.",
"docs": "https://appgoat.ai/docs/errors#invalid_param",
"param": "limit"
}
}{
"error": {
"code": "invalid_param",
"message": "<string>",
"hint": "<string>",
"docs": "<string>",
"param": "<string>"
}
}{
"error": {
"code": "invalid_param",
"message": "<string>",
"hint": "<string>",
"docs": "<string>",
"param": "<string>"
}
}Authorizations
Create a key at https://dash.appgoat.ai.
Path Parameters
Any 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).
"com.spotify.music"
Query Parameters
Disambiguates {app} (a bundle id vs a Play package, or a name).
apple, play ISO country code(s): us (default), a comma list (paid plans), or all (Studio).
"us,de"
Comma list of extra sections.
"versions,iap"
Refresh from the store when our data is older than this many seconds (0 = always). Default 604800 (7 days).
x >= 0Block up to ~25 s for a refresh (default). false = answer immediately from cache with a job id.
Comma list of top-level fields to return (identifiers are always kept), e.g. title,rating,version.