Get a top chart (free, paid, grossing) for a store, country and category, today or on a past date.
Entries carry delta (positions gained since the previous changed capture; negative = dropped) and
is_new; dropped lists apps that fell out. Charts are captured daily for every country × category.
Request
curl "https://api.appgoat.ai/v1/charts?store=apple&country=us&chart=free&category=6014" \
-H "x-api-key: $APPGOAT_API_KEY"const res = await fetch("https://api.appgoat.ai/v1/charts?store=apple&country=us&chart=free&category=6014", {
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/charts?store=apple&country=us&chart=free&category=6014",
headers={"x-api-key": os.environ["APPGOAT_API_KEY"]}
)
body = res.json()Query parameters
store"apple" | "play"Default "apple"
countrystringDefault "us"
chart"free" | "paid" | "grossing"Default "free"
categorystringApp Store genre id (
36 or all = all apps, 6014 = games, …) or Play category (GAME_PUZZLE; APPLICATION = all apps).datestringThe chart as of this date (ISO). Default the latest capture.
limitintegerDefault 100
Response
200 with data: Chart. See the envelope for meta.
storeStorecountrystringchart"free" | "paid" | "grossing"categorystringdatestringprevious_datestring | nullentriesAppCard[]droppedAppCard[]Example
{
"data": {
"store": "apple",
"country": "us",
"chart": "free",
"category": "string",
"date": "2026-10-22",
"previous_date": "2026-10-22",
"entries": [
{
"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,
"rank": 1,
"delta": 1,
"is_new": false
}
],
"dropped": [
{
"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
}
]
},
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"request_id": "req_123"
}
}Status codes
200
The chart.
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).404
not_foundNot found.
429
rate_limitedToo many requests per second for your plan.