Skip to main content
Glama

Top apps by downloads, revenue or active users

sensortower_top_apps
Read-only

Query estimate-based app leaderboards by downloads, revenue, or active users (DAU/WAU/MAU) across stores, regions, dates, and categories to compare rankings and biggest movers.

Instructions

The estimate-based leaderboard. measure=downloads|revenue queries the sales-estimate leaderboard; measure=dau|wau|mau queries the active-user one. Revenue comes back in CENTS and is converted to *_usd here. The 213-key custom_tags blob -- 94% of each row -- is dropped unless you ask for it. On iOS device_type is de-facto required, so it defaults to iphone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
osNoStore to query. This endpoint has no unified variant.ios
dateYesYYYY-MM-DD.
limitNoKeep at most this many rows.
fieldsNoComma-separated allowlist of output fields. Strongly recommended: SensorTower rows are wide.
formatNoOutput encoding. csv is markedly cheaper in tokens for wide, flat results.
offsetNo
dry_runNoPrint the URL that would be called (token redacted) and charge 0 requests.
measureNorevenue
regionsNoComma-separated ISO country codes, or "WW" for worldwide.US
categoryNoRequired for downloads/revenue; optional for the usage measures.
end_dateNo
time_rangeNomonth
device_typeNoiOS only; defaults to iphone.
resolve_namesNoTurn bare app ids into names. Costs one extra request per 100 ids.
keep_custom_tagsNoKeep the custom_tags blob. It is 213 keys and ~94% of every leaderboard row, so it is dropped by default.
comparison_attributeNoabsolute = the leaderboard; delta / transformed_delta = biggest movers.absolute

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond readOnlyHint and openWorldHint by disclosing that revenue is returned in cents and converted to *_usd, that the 213-key custom_tags blob making up 94% of each row is dropped unless requested, and that iOS device_type defaults to iphone. These are non-obvious output and defaulting behaviors. It stops short of covering pagination behavior (offset/limit interactions) or error modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, each carrying a distinct behavioral fact (routing, cents conversion, blob dropping, iOS default). No filler, and the measure-routing rule is front-loaded. The unusual multi-clause sentences are justified by the density of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter read-only tool with no output schema, the description covers the highest-value surprises: measure-based endpoint switching, currency conversion, cost/width of custom_tags, and the iOS device_type default. It omits any coverage of limit/offset/pagination semantics and end_date behavior, which is a gap for a leaderboard tool that expects date ranges.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the schema itself already documents many parameters. The description adds real value for measure routing and device_type defaults, but it doesn't address the remaining parameters like limit, offset, time_range, comparison_attribute, resolve_names, dry_run, or format beyond what the schema says. Baseline 3 given the partial schema coverage and mixed added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the exact resource (the estimate-based leaderboard) and splits behavior by measure value, distinguishing the sales-estimate leaderboard from the active-user leaderboard. This is a precise verb+resource framing that sets it apart from sibling tools like sensortower_top_charts or sensortower_app_estimates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the internal measure routing and notes iOS device_type is de-facto required, which implies when certain options must be set. However, it never says when to choose this tool over siblings such as sensortower_top_charts, sensortower_app_estimates, or sensortower_app_active_users. Usage is implied rather than explicitly contrasted with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.