Odel
app intel sdk

app intel sdk

Local
@garrrikkotua1TypeScriptMITUpdated 2w ago

App Store & Google Play data: app details, IAP prices, reviews, top charts, estimates, rank history.

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.

Connect on RapidAPI

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_chartsget_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 → MCPAdd 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/403 from a tool → the key is missing/invalid or you're not subscribed: check RAPIDAPI_KEY and 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 --version is ≥ 18 and npx -y app-intel-mcp runs 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.