App Intel SDK — App Store & Google Play data for Node, Python and AI agents
Official clients + MCP server for the App Intel API: one JSON API for iOS App Store and Google Play app data — search, full app details (screenshots, preview videos, in-app purchase price lists, install brackets), reviews, top charts & rankings by country, similar apps, keyword suggestions (ASO), download & revenue estimates, and daily rank / rating history.
Get your key first (free tier: 300 requests/month): subscribe on RapidAPI → https://rapidapi.com/kotuaigor/api/app-intel-api-app-store-google-play-data → copy the X-RapidAPI-Key from any endpoint page. Plans & pricing.
JavaScript / TypeScript — app-intel-api
Zero dependencies, fetch-based. Node 18+, Bun, Deno, browsers, edge runtimes.
npm i app-intel-api
import { AppIntel } from "app-intel-api";
const api = new AppIntel({ rapidApiKey: process.env.RAPIDAPI_KEY!, country: "us" });
// 1) find the app
const { data: hits } = await api.search("candy crush", { store: "ios" });
// 2) pull everything about it (screenshots, videos, IAP prices, estimate…)
const { data: app } = await api.app(hits[0].id, { estimate: true });
console.log(app.name, app.iap.items, app.previewVideos, app.estimate);
await api.app("com.king.candycrushsaga"); // Android by package name
await api.app("com.burbn.instagram", { store: "ios" }); // iOS by bundle id
await api.reviews("com.king.candycrushsaga", { sort: "rating", limit: 50 });
await api.charts({ store: "android", chart: "top-grossing", category: "GAME", country: "gb" });
Every call resolves to { data, meta: { cached, stale?, fetchedAt } }; errors throw AppIntelError (status, code, requestId). Full method list → packages/client.
Python — app-intel-api
Sync and async clients (httpx). Python 3.9+.
pip install app-intel-api
from app_intel_api import AppIntel
api = AppIntel("YOUR_RAPIDAPI_KEY", country="us") # or set RAPIDAPI_KEY in env
hits = api.search("candy crush", store="ios")["data"]
app = api.app(hits[0]["id"], estimate=True)["data"]
print(app["name"], app["iap"]["items"], app["previewVideos"], app["estimate"])
api.app("com.king.candycrushsaga") # Android
api.reviews("com.king.candycrushsaga", sort="rating", limit=50)
api.charts(store="android", chart="top-grossing", category="GAME", country="gb")
from app_intel_api import AsyncAppIntel
async with AsyncAppIntel("YOUR_RAPIDAPI_KEY") as api:
top = await api.charts(store="ios", chart="top-grossing", category="Health & Fitness")
Docs → packages/python.
MCP server — app-intel-mcp (Claude Code, Claude Desktop, Cursor, Windsurf, …)
Gives any MCP-capable AI client live App Store / Google Play data as tools: search_apps, get_app, get_apps, get_reviews, top_charts, list_categories, suggest_keywords, similar_apps, estimate_revenue, rank_history, developer_apps, android_permissions, android_data_safety.
Requirements: Node 18+ and your RAPIDAPI_KEY. The server runs locally over stdio via npx — nothing else to install.
Claude Code
# add for the current project (stored in .mcp.json)
claude mcp add app-intel -e RAPIDAPI_KEY=YOUR_RAPIDAPI_KEY -- npx -y app-intel-mcp
# or for all your projects
claude mcp add --scope user app-intel -e RAPIDAPI_KEY=YOUR_RAPIDAPI_KEY -- npx -y app-intel-mcp
claude mcp list # should show "app-intel: … - ✓ Connected"
Then just ask, e.g. "Use app-intel to find the top 10 grossing meditation apps on iOS in the UK and compare their subscription prices." Claude Code will call top_charts → get_app for you. Run /mcp inside Claude Code to see the server and its tools.
Equivalent .mcp.json (project root), if you prefer editing the file:
{
"mcpServers": {
"app-intel": {
"command": "npx",
"args": ["-y", "app-intel-mcp"],
"env": { "RAPIDAPI_KEY": "YOUR_RAPIDAPI_KEY" }
}
}
}
Claude Desktop
Settings → Developer → Edit Config (opens claude_desktop_config.json) and add the same mcpServers block as above; restart Claude Desktop. The tools appear under the 🔌 / tools icon in the chat box.
Cursor
Settings → MCP → Add new global MCP server (writes ~/.cursor/mcp.json), or put the block above in .cursor/mcp.json inside your project. Enable the server; the Agent will use the tools automatically.
Windsurf
Settings → Cascade → MCP servers → Add server → raw config, paste the same block (~/.codeium/windsurf/mcp_config.json).
Other clients (Zed, Continue, Cline, VS Code Copilot, OpenAI Agents SDK, …)
Any client that supports stdio MCP servers works with: command npx, args ["-y", "app-intel-mcp"], env RAPIDAPI_KEY.
Troubleshooting
Error 401/403from a tool → the key is missing/invalid or you're not subscribed: checkRAPIDAPI_KEYand your subscription at https://rapidapi.com/kotuaigor/api/app-intel-api-app-store-google-play-data.Error 429→ plan quota/rate limit reached — upgrade or wait.- Server doesn't start → make sure
node --versionis ≥ 18 andnpx -y app-intel-mcpruns in a terminal (it waits for stdio input; Ctrl-C to exit).
Endpoints covered
search · suggest · charts · categories · app · apps (batch) · appByBundleId · reviews · similar · estimates · history · androidPermissions · androidDataSafety · developerApps — interactive playground and full reference on RapidAPI.
License
MIT. Data comes from public App Store / Google Play pages; media URLs are hot-linked to Apple/Google CDNs. Estimates are modeled, not measured.
