App Store Top Charts API

Live iOS App Store and Google Play chart rankings as structured JSON. Pull top free, top paid, and Google Play rankings via a single POST endpoint - no Apple or Google developer credentials required.

App Store Connect gives you data about your own app. It tells you nothing about what's ranking across the store. Apple has no public API for top chart rankings - getting that data cleanly requires either scraping or a third-party tool.

Trends MCP returns live App Store Top Free, Top Paid, and Google Play rankings as JSON. One request, no Apple or Google credentials.

Endpoint

POST https://api.trendsmcp.ai/api
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Get App Store Top Free

{
  "mode": "top_trends",
  "type": "App Store Top Free",
  "limit": 50
}

Get App Store Top Paid

{
  "mode": "top_trends",
  "type": "App Store Top Paid",
  "limit": 50
}

Get Google Play top apps

{
  "mode": "top_trends",
  "type": "Google Play",
  "limit": 50
}

Response shape (same for all types):

{
  "as_of_ts": "2026-03-30T12:00:00Z",
  "type": "App Store Top Free",
  "limit": 50,
  "count": 50,
  "data": [
    [1, "App Name"],
    [2, "Another App"]
  ]
}

The data array returns [rank, name] pairs. Set limit up to 200.

Code examples

Python

import requests

res = requests.post(
    "https://api.trendsmcp.ai/api",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"mode": "top_trends", "type": "App Store Top Free", "limit": 50}
)
data = res.json()

JavaScript

const res = await fetch("https://api.trendsmcp.ai/api", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ mode: "top_trends", type: "App Store Top Free", limit: 50 })
});
const data = await res.json();

cURL

curl -s -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"top_trends","type":"App Store Top Free","limit":50}'

Cross-reference chart rankings with search trends

A chart position alone doesn't tell you if an app is in the middle of a spike or has been there for months. Cross-referencing with Google Search volume adds that context:

import requests

headers = {"Authorization": "Bearer YOUR_API_KEY"}
base = "https://api.trendsmcp.ai/api"

charts = requests.post(base, headers=headers,
    json={"mode": "top_trends", "type": "App Store Top Free", "limit": 10}).json()

top_app = charts["data"][0][1]
growth = requests.post(base, headers=headers,
    json={"source": "google search", "keyword": top_app, "percent_growth": ["7D", "30D"]}).json()

Errors

Status Code Meaning
401 Missing or invalid API key
429 rate_limited Monthly limit reached
500 internal_error Unexpected server error

Common questions

No. App Store data is available as live chart rankings only - Top Free, Top Paid, and Google Play. Historical time series and growth calculations are not available for this source.
App Store Top Free, App Store Top Paid, and Google Play. Pass the exact type string in the request.
App Store Connect gives developers analytics for their own apps only. Trends MCP returns the public top chart rankings across the entire store, with no Apple developer account required.
Get App Store Top Charts API in 30 seconds
Free tier includes 100 requests per month. No credit card required. Works with Claude, Cursor, ChatGPT, Raycast, and every MCP client.
Get your free API key