Search DevTools

Jump to any tool or page

Appfigures

Unexplored

Access your app analytics, ASO tools, and app market intelligence with Appfigures.

appfigures18 stars3 forksDeveloper Tools
View source

Install

Terminal

$npx -y @appfigures/cli mcp

mcp_config.json

{
  "mcpServers": {
    "com-appfigures-mcp": {
      "env": {
        "APPFIGURES_API_KEY": "${APPFIGURES_API_KEY}"
      },
      "args": [
        "-y",
        "@appfigures/cli",
        "mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

@appfigures/cli

The Appfigures CLI — query app metrics, reviews, and store data from your terminal.

Try it now without installing:

npx @appfigures/cli auth login
npx @appfigures/cli apps search "youtube"

Install

npm install -g @appfigures/cli

Requires Node.js 22+. Works with pnpm and yarn too.

Quick start

appfigures auth login
appfigures --help

Also available as af alias.

Authentication

  • Log in yourself. af auth login --interactive opens your browser in a guided flow; approve and paste the code back.
  • Or let your agent guide you. By default, af auth login prints an authorization URL — open it, approve, and finish with af auth login --code using the code shown. An agent can drive this end to end. For unattended use, set APPFIGURES_API_KEY instead: create a token at appfigures.com/developers/keys by clicking Create a New Client, then Create Personal Access Token.

Either login saves the token to your OS credential manager (macOS Keychain, Windows Credential Manager, Linux Secret Service). See Environment for APPFIGURES_API_KEY and other overrides.

MCP server

af mcp runs a local Model Context Protocol server over stdio, exposing the CLI's app-intelligence commands as MCP tools. Point any MCP client (Claude Code, Claude Desktop, Cursor, and others) at it to let an agent query app metrics, reviews, and store data directly.

Add it to your client's MCP config:

{
	"mcpServers": {
		"appfigures": {
			"command": "npx",
			"args": ["-y", "@appfigures/cli", "mcp"]
		}
	}
}

The server signs in with your stored credentials, so run af auth login once first. For a headless setup, pass a token through the client's env instead:

{
	"mcpServers": {
		"appfigures": {
			"command": "npx",
			"args": ["-y", "@appfigures/cli", "mcp"],
			"env": { "APPFIGURES_API_KEY": "<your-token>" }
		}
	}
}

Installed the CLI globally instead of running it through npx? Use "command": "af" with "args": ["mcp"].

Claude Code. Add it with one command:

claude mcp add appfigures -- npx -y @appfigures/cli mcp

Run af auth login first to sign in, or append --env APPFIGURES_API_KEY=<your-token> for a headless setup.

Commands

Apps

Find apps and look up their identity. Other commands take the app IDs these return.

CommandDescription
af apps searchFind apps by name or publisher. Returns one row per unified app. Default returns Apple and Google listings; pass --all-stores to include other storefronts. To filter apps by estimate values (e.g. apps with >100k downloads last month) use explorer list-products. For estimates broken down by time, country, or storefront, use metrics query with datasets estimates.sales or estimates.revenue.
af apps trackedList the apps your Appfigures account tracks.
af apps getGet an app's record: basic metadata (name, developer, etc) and, if the user tracks it, what data they can access. Pass a product ID for one storefront; unified app ID for all storefronts together.

Explorer

Search and analyze the full app catalog: millions of products across Apple, Google Play, Amazon, and other major stores, with 120+ fields spanning identity, storefront and country availability, categories, ratings, release dates, chart ranks, download and revenue estimates, SDK presence, demographics, and related apps.

CommandDescription
af explorer list‑productsRead catalog fields for one app or many. Fields referenced by query or sort come back automatically; pass --extra-fields for more. Use ["match","product_id",<id>] for a single app, or combine filters for population queries (e.g. iOS apps using Firebase with $1M+ US revenue). The 120+ fields span ranks, ratings, download and revenue estimates, SDKs, demographics, and more; query grammar and field list in docs get catalog_playbook.
af explorer aggregate‑productsAggregate across the full catalog of millions of products across Apple, Google Play, Amazon, and other major stores: counts, averages, min/max, and histograms over any set of matching products. Uses the same query grammar as explorer list-products; returns aggregates, not product records. For market sizing, benchmarking, and segment analysis.
af explorer describe‑fieldsList the catalog fields and the current user's access level for each. Search by keyword to find fields. Same field set explorer list-products and explorer aggregate-products accept.

Metrics

Query numeric datasets across dimensions.

CommandDescription
af metrics queryQuery any numeric dataset for one or more apps. Optionally grouped by up to two dimensions, returned as a nested partition tree, not app records. Independently filterable by country, device type, and date range. filterAppsBy* options narrow the app set (by ID, storefront, source, or type); without one, a query covers every app the account tracks.
af metrics describe‑datasetsList every numeric dataset metrics query accepts, one row per dataset with its value type and whether it's limited to your own apps.

Store

App store presence: listing content, category ranks, top charts, and featured placements.

CommandDescription
af store app‑ranksTrace rank history for one or more apps across countries, device types, category subtypes, and categories, as time-series positions with day-over-day deltas.
af store top‑chartsList the top apps in a category chart for a given country and category, with current positions and day-over-day deltas.
af store categoriesList every store category with its ID. Numeric category IDs required by store app-ranks --category-ids and store top-charts --category-id are available here.
af store featuredList featured and editorial placements for an app or storefront product. Request 0 rows for summary stats only.
af store app‑listingRead the full store listing for one storefront: localized text (name, subtitle, description, release notes) plus screenshots, video, categories, monetization, supported devices, country availability, price, file size, and age rating. Takes a numeric product ID (one storefront at a time; a unified app has one product per storefront). One locale per request.

Audience

Who an app's users are and what else they use. Covers estimated age and gender, plus audience overlap with other apps.

CommandDescription
af audience demographicsRead an app's audience demographics: the estimated age and gender breakdown.
af audience cross‑usageFind the apps that an app's users also use.

Reviews

Search, summarize, and reply to iOS and Google Play app store reviews.

CommandDescription
af reviews listRead individual reviews for one or more apps. Returns review text, star rating, country, and app version. Filterable by star rating, date range, country, version, and tracking relationship.
af reviews breakdownAggregate review counts for one or more apps, bucketed by dimension. Returns one count per dimension value, plus a global total across the matched set.
af reviews replyPost or withdraw a developer response on a specific review. Pass content to post; pass delete: true to withdraw a previously-posted response. Returns the resulting state (published/pending for a post, removed/removal_pending for a withdrawal) along with the submitting account.

Keywords

Keyword visibility, rank tracking, and discovery across organic search (App Store, Google Play) and Apple Ads.

CommandDescription
af keywords organicCheck the organic keywords one or more apps rank for, with position, popularity, and competitiveness.
af keywords paidList the paid keywords one or more apps run ads on, with impression share and organic rank.
af keywords tracked‑ranksView where all your tracked keywords rank for a single app+country combo, with each keyword's current position, movement since it last changed, starting position, popularity, and competitiveness.
af keywords tracked‑trendTrace how one tracked keyword's rank changes over time for a single app+country combo. Each point gives the rank and how many positions it moved since the one before.
af keywords suggestionsDiscover keyword ideas to consider targeting for a single app+country combo, ranked by relevance to the app and including some drawn from apps you compete with. Each comes with its popularity, competitiveness, and the app's current rank.
af keywords ranking‑appsList the apps ranking for a specific keyword in organic search, plus the keyword's own popularity and competitiveness scores.
af keywords advertisersList the apps advertising on a specific keyword, with each advertiser's impression share, organic rank, and how long they've been bidding.
af keywords relatedFind keywords related to a seed term for ASO research. Useful for finding alternatives with a similar audience that are more popular or less competitive.
af keywords trackedList tracked keywords with their opaque IDs.
af keywords trackTrack a keyword to monitor your app's hourly rank for it over time and get automatic alerts when its position moves.
af keywords untrackStop tracking a keyword.

Apple Ads

Manage your Apple Ads campaigns, ad groups, keywords, and performance.

CommandDescription
af apple‑ads organizationsList the Apple Ads organizations you manage campaigns in, with each one's currency and timezone.
af apple‑ads campaignsList your Apple Ads campaigns with each one's status, budget, targeted countries, and schedule.
af apple‑ads ad‑groupsList Apple Ads ad groups with each one's default bid, CPA cap, pricing model, and schedule.
af apple‑ads keywordsList a campaign's bid keywords with each keyword's performance (impressions, taps, installs, spend, cost-per-install) over a date range, plus its match type, bid, and whether it's a targeting or negative term.
af apple‑ads search‑termsList the actual user search terms that triggered a campaign's ads, each with its all-time performance (impressions, taps, installs, spend, cost-per-install). Use these to discover new keywords to bid on or exclude.
af apple‑ads reportReport Apple Ads performance per campaign (impressions, taps, installs, spend, cost-per-install), plus an account-wide total, over a date range.
af apple‑ads top‑keywordsRank a campaign's top-performing keywords by conversion rate, spend, and installs over a date range. Each list holds the top keywords on one metric.

Sdks

Look up the SDKs we track.

CommandDescription
af sdks listList every known SDK with its id, or search to find a specific one.

Docs

Reference docs and guides for specific actions and common tasks.

CommandDescription
af docs getReturn a reference doc or guide by slug.

API

CommandDescription
af apiMake a raw API request for endpoints without a dedicated command. Endpoints, parameters, and response shapes are documented at https://docs.appfigures.com.

MCP

CommandDescription
af mcpRun an MCP server over stdio for MCP clients like Claude Desktop and Cursor to call Appfigures tools.

Auth

CommandDescription
af auth loginSign in to Appfigures
af auth logoutRemove stored credentials
af auth statusShow authentication and account status

Run af <command> --help for arguments, flags, and examples.

Environment

VariablePurpose
APPFIGURES_API_KEYAPI key; skips interactive auth
AF_VERBOSELog HTTP to stderr (same as -v)
NO_COLORDisable ANSI color
NO_UPDATE_NOTIFIERSkip the npm-registry update check
CIAlso skips the update check (any CI system)

API Reference

Every command with its full argument and flag list. For the one-line overview, see Commands above.

Global flags. All commands accept:

  • -v, --verbose — Log HTTP requests to stderr. Also set via AF_VERBOSE=1.
  • -V, --version — Print the CLI version and exit.
  • -h, --help — Show usage for the current command.

Output format. Every command emits a single JSON value on stdout — pipe to jq for filtering. Informational messages, hints, and update notices go to stderr so pipelines stay clean.

af apps search

af apps search <q> [flags]

Find apps by name or publisher. Returns one row per unified app. Default returns Apple and Google listings; pass --all-stores to include other storefronts. To filter apps by estimate values (e.g. apps with >100k downloads last month) use explorer list-products. For estimates broken down by time, country, or storefront, use metrics query with datasets estimates.sales or estimates.revenue.

Options

  • <q> required string. Search query (app name or publisher).
  • --all-stores boolean, default false. Include storefronts beyond Apple and Google: Amazon, Windows, Steam, Roku, LG TV, Samsung TV, and others.
  • --count integer, default 10. Number of results to return.
  • --page integer, default 1. Page number.

Examples

# Find every Electronic Arts app.
af apps search 'electronic arts'

# Page through long results.
af apps search 'electronic arts' --count=25 --page=2

# Find Minecraft on every storefront (e.g. Amazon, Steam, Windows, Roku; not common).
af apps search minecraft --all-stores

af apps tracked

af apps tracked [flags]

List the apps your Appfigures account tracks.

Options

  • --count integer, default 10. Number of results to return.
  • --page integer, default 1. Page number.
  • --q string. App name to filter by.
  • --filter-apps-by-id (integer or string)[]. Only include data about specific apps, by product ID or unified app ID. Takes precedence over the other filterAppsBy* keys when set. Storefront, source, or type filters are better for app sets that can be described by those criteria.
  • --filter-apps-by-storefront string[]. Narrow the account's tracked apps to those on these storefronts (e.g. apple:ios, google_play).
  • --filter-apps-by-source string[]. Narrow the account's tracked apps by tracking relationship.
  • --filter-apps-by-type string[]. Narrow the account's tracked apps to products of these types.

Examples

# List your apps with private-data access.
af apps tracked --filter-apps-by-source=own,shared

# List your tracked fitness apps.
af apps tracked --q=fitness

# List just your iOS apps.
af apps tracked --filter-apps-by-storefront=apple:ios

# Page through long results.
af apps tracked --filter-apps-by-source=own,shared --count=50 --page=2

# List tracked competitors.
af apps tracked --filter-apps-by-source=manual

# Find individual IAPs or subscriptions (not common).
af apps tracked --filter-apps-by-type=inapp,subscription

af apps get

af apps get <app-id> [flags]

Get an app's record: basic metadata (name, developer, etc) and, if the user tracks it, what data they can access. Pass a product ID for one storefront; unified app ID for all storefronts together.

Options

  • <app-id> required integer or string. The app's unified app ID or product ID.
  • --all-stores boolean, default false. For a unified app ID: include member products across all storefronts (Amazon, Steam, Windows, Roku, etc.). When false, member_products is restricted to storefronts with app-intelligence coverage (iOS + Google Play). Ignored for product IDs.

**

Sourced from the repository README.

More in Developer Tools