---
name: app-revs
description: Use App Revs for iOS App Store optimization data from Apple's public sources: keyword popularity and difficulty, the keywords an app ranks for, competitors, genre chart places, daily ratings, written reviews, release history, publishers and their apps, and per-account keyword lists. Use it when an agent needs App Store keyword research, rank checks, competitor analysis, review data, or the App Revs API or MCP server.
---

# App Revs

App Revs reads Apple's public App Store data and keeps a history of it. No download or revenue estimates.

## Start here

- Website: https://apprevs.com/
- MCP server: `https://api.apprevs.com/mcp` (Streamable HTTP)
- API base URL: `https://api.apprevs.com/api/v1`
- Docs: https://apprevs.com/docs (MCP: https://apprevs.com/docs/mcp, API reference: https://apprevs.com/docs/api)
- API reference as markdown: https://raw.githubusercontent.com/onlyoneaman/ios-reviews/main/docs/API.md
- LLM index: https://apprevs.com/llms.txt

## Access

Stored-data endpoints and MCP tools need no key. Live App Store calls and account features need an API key:

1. Open https://apprevs.com/ and sign in with Google.
2. Open https://apprevs.com/app/settings and generate an API key. It is shown once.
3. REST: send `X-API-Key: ar_live_...`. MCP: send `Authorization: Bearer ar_live_...`.

`Authorization: Bearer <firebase_id_token>` on the REST API is for the logged-in web app, not for agents.

## MCP

```bash
claude mcp add --transport http apprevs https://api.apprevs.com/mcp \
  --header "Authorization: Bearer ar_live_your_api_key"
```

Tools (schemas from `tools/list`):

- Without a key: `keyword`, `app_keywords`, `app_competitors`, `app_charts`, `app_positions`, `app_rating_history`, `app_reviews_summary`, `developer`, `new_apps`, `rising_apps`, `most_searched`.
- With a key: `search_apps`, `app`, `analyze_keywords`, `keyword_history`, `scan_app_keywords`, `app_overview`, `app_reviews`, `my_projects`, `tracked_keywords`, `track_keywords`, `untrack_keyword`, `my_week`.

## REST

Public, stored data:

```text
GET /keywords/{term}?country=us&app_id=
GET /apps/{track_id}/keywords?country=us
GET /apps/{track_id}/competitors?country=us
GET /apps/{track_id}/charts
GET /apps/{track_id}/positions
GET /apps/{track_id}/rating-history?country=us&days=30
GET /apps/{track_id}/reviews/summary?country=us
GET /developers/{artist_id}?country=us
GET /apps/new?country=us&days=30&genre=
GET /apps/rising?country=us&days=7&genre=
GET /most-searched?country=us&month=&genre=&q=
```

With `X-API-Key`:

```text
GET  /apps/search?q=&country=us&limit=10
GET  /apps/lookup/{track_id}?country=us
GET  /keywords/analyze?q=a,b,c&country=us&app_id=
GET  /keywords/{term}/history?country=us
POST /apps/{track_id}/keywords/scan        {country?, force?, wait?}
GET  /apps/{track_id}/overview?country=us
GET  /apps/{track_id}/reviews?country=us&limit=50
GET  /projects
GET  /keywords/tracked?project_id=&country=
POST /keywords/tracked                     {project_id, keywords: [...], country?}
DELETE /keywords/tracked/{id}
GET  /me/week?days=7
```

## Typical flows

Keyword research for an app:

1. `GET /apps/search?q=<name>` and take its `trackId`.
2. `POST /apps/{track_id}/keywords/scan` with `{"wait": true}`, or `GET /keywords/analyze?q=...&app_id={track_id}` for terms you choose.
3. `GET /apps/{track_id}/keywords` for everything it ranks for, `GET /apps/{track_id}/competitors` for who shares those top 10s, `GET /apps/{track_id}/overview` for the app it loses to and next steps.
4. `POST /keywords/tracked` to keep the chosen terms on a project's list; positions are checked nightly.

Reading an app's health: `GET /apps/{track_id}/rating-history`, `/charts`, `/positions`, `/reviews/summary`, then `/reviews` for the text.

## Parameters

- `country`: lowercase ISO-3166 alpha-2 storefront code (`us`, `gb`, `in`), default `us`.
- `track_id`: numeric App Store app id (`389801252` = Instagram). `artist_id`: numeric developer id.
- Popularity: Apple Ads' 5-100 scale for the month. Difficulty: 0-100 from the strength of the top 10.
- `force`: re-analyze or re-fetch even when a fresh copy exists; use sparingly.

## Safety

- Keep API keys out of client-side code, logs, screenshots and public repositories.
- Prefer stored-data endpoints when live data is not needed; live lookups are cached for up to 12 hours.
- No rate limits are enforced today; back off on errors.
- Data originates from Apple's public App Store endpoints. Respect Apple's terms when using exported data.
