List what changed in an app's store listing (version, title, subtitle, screenshots, price, IAP, …).
Typed change feed, newest first: one entry per changed field with old and new values. Fields include
version, release_notes, title, subtitle, description, screenshots, icon, price, iap, iap_range, privacy,
in_app_events, badges, featured, editors_choice, installs, content_rating, developer. Ideal for competitor
monitoring ("what did X change this month?").
Request
curl "https://api.appgoat.ai/v1/apps/com.spotify.music/changes?field=version%2Ctitle%2Csubtitle" \
-H "x-api-key: $APPGOAT_API_KEY"const res = await fetch("https://api.appgoat.ai/v1/apps/com.spotify.music/changes?field=version%2Ctitle%2Csubtitle", {
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/changes?field=version%2Ctitle%2Csubtitle",
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).countrystringOnly changes seen in these storefronts (comma list). Default all storefronts.
fieldstringOnly these fields (comma list), e.g.
version,title,subtitle.sincestringOnly items at or after this ISO date / datetime.
max_ageintegerRefresh from the store when our data is older than this many seconds (0 = always). Default 604800 (7 days).
Default 604800
waitbooleanBlock up to ~25 s for a refresh (default). false = answer immediately from cache with a job id.
Default true
limitintegerDefault 50
cursorstringmeta.next_cursor from the previous page.Response
200 with data: Change[]. See the envelope for meta.
idstringcountrystringfieldstringoldanyPrevious value (null = absent).
newanyNew value (null = removed).
detected_atstringExample
{
"data": [
{
"id": "string",
"country": "us",
"field": "version",
"old": null,
"new": null,
"detected_at": "2026-10-22T10:00:00Z"
}
],
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"request_id": "req_123"
}
}Status codes
200
Changes, newest first.
A parameter is missing or invalid (
error.param names it).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.