Get Apple charts
Read the latest stored Apple free, paid or grossing chart for one storefront and category.
Download Markdown ↓GEThttps://api.peekpanda.com/v1/charts
Request
Send country, categoryId, chartType, view and limit as query parameters. This GET never calls Apple.
Parameters
countryquery^[a-z]{2}$NoApple storefront. Defaults to us. Coverage is us, gb, fr, de, br, be, jp, kr, cn, ru.categoryIdqueryall or digitsNoOverall (all) or an Apple category id. Defaults to all.chartTypequeryfree | paid | grossingNoApple chart type. Defaults to free. Grossing is a position, not dollars.viewqueryrankings | gainers | losers | new-entrants | new-releasesNoLeaderboard slice. Defaults to rankings.limitqueryinteger, 1–100NoPage size. Defaults to 100.Response
The response includes query, coverage, snapshot, summary, insights and data. Dates use ISO format, URLs are included when present, and estimates are optional. Estimates are worldwide monthly figures, whichever storefront the chart is for: a range (a low, mid and high reading) or below_floor when the app sits under the 5,000 a month the model can resolve. 0000000000 is a synthetic store ID.
Response fields
query.countrystringquery.categoryIdstringquery.chartTypestringquery.viewstringquery.limitnumbercoverage.countries[].codestringcoverage.countries[].namestringcoverage.categories[].idstringcoverage.categories[].namestringcoverage.chartTypes[]string[]snapshot.idstringsnapshot.daystringsnapshot.sourceUpdatedAtstringsnapshot.fetchedAtstringsnapshot.depthnumbersnapshot.previousDaystringsnapshot.stalebooleansummary.trackedAppsnumbersummary.rankedAppsnumbersummary.gainersnumbersummary.losersnumbersummary.newEntrantsnumbersummary.newReleasesnumberinsights.categoryMix[].categoryIdstringinsights.categoryMix[].namestringinsights.categoryMix[].countnumberinsights.releaseAges[].labelstringinsights.releaseAges[].countnumberinsights.categoryLeaders[].categoryIdstringinsights.categoryLeaders[].namestringinsights.categoryLeaders[].storeIdstringinsights.categoryLeaders[].appNamestringinsights.categoryLeaders[].iconUrlstringinsights.categoryLeaders[].daystringinsights.categoryLeaders[].depthnumberinsights.storefronts[].countrystringinsights.storefronts[].daystringinsights.storefronts[].depthnumberdata[].storeIdstringdata[].namestringdata[].developerstringdata[].iconUrlstringdata[].appUrlstringdata[].categoryIdstringdata[].categoryNamestringdata[].releaseDatestringdata[].pricenumberdata[].currencystringdata[].ratingnumberdata[].ratingCountnumberdata[].metadataUpdatedAtstringdata[].history[].daystringdata[].history[].ranknumberdata[].ranknumberdata[].previousRanknumberdata[].movementnumberdata[].statusstringdata[].inCataloguebooleandata[].estimates.monthlyInstallsobjectdata[].estimates.monthlyRevenueobjectdata[].estimates.currencystringupdatedAtstringAuthentication
Requires Bearer API credential or OAuth access token. Scope context:read. MCP calls get_market with action charts.
Errors
400invalid_request for an invalid filter, identity or limit.401authentication_required for a missing or invalid credential.402subscription_required when access is not entitled.403authorization_required for a missing scope or unavailable preview access.403workspace_not_accessible when x-genviral-tenancy names a workspace the credential cannot reach.404not_found when the record is outside the accessible catalogue.429rate_limited; honor Retry-After when present.429daily_call_limit; the plan's daily API and MCP calls are used until 00:00 UTC.MCP request
Call get_market with action charts. Path fields go in params, filters in query, and a write body in body.
{
"name": "get_market",
"arguments": {
"request": {
"action": "charts"
}
}
}
Source
Dated public App Store chart observations. Grossing is a position, not a revenue amount, and this read returns a stored snapshot.
Refresh
New snapshots are collected asynchronously. Completed historical snapshots remain unchanged.
AI agent or LLM? Read this page as markdown