Browse ASO keyword discovery
Page unsaved observed rankings or derived keyword ideas for one tracked app.
Download Markdown ↓GEThttps://api.peekpanda.com/v1/aso/apps/{appId}/keyword-discovery
Request
appId is the tracked app. sourceGroup selects observed rankings or derived ideas. Pass the returned cursor to read the next page.
Parameters
appIdpathuuidYesTracked app id.sourceGroupquerystringNoobserved or derived. Defaults to observed.searchquerystringNoOptional keyword text, up to 200 characters.cursorquerystringNoPage cursor from the previous response.limitqueryintegerNoPage size, 1 to 100. Defaults to 50.Response
phase matches the source group you asked for. An empty data array means this phase has no rows yet. `demand` is Apple's weekly search popularity for the phrase (1 to 100, with Apple's 1 to 5 tier). Where Apple reports nothing for a US phrase, `popularityEstimate` carries PeekPanda's own estimate: a tier (`very_low`, `low`, `medium` or `high`), never a number on Apple's scale, with `estimatedAt` and the `modelTrainedAt` of the weekly model behind it. The two never appear together: when `demand` is set, `popularityEstimate` is null. Neither is a search count.
Response fields
phasestringdataarraynextCursornullAuthentication
Requires Bearer API credential or OAuth access token. Scope context:read. MCP calls aso with action discover.
Errors
400invalid_request for an invalid filter, identity or limit.401authentication_required for a missing or invalid credential.402subscription_required when access is not entitled.403authorization_required for a missing scope or unavailable preview access.403workspace_not_accessible when x-genviral-tenancy names a workspace the credential cannot reach.404not_found when the record is outside the accessible catalogue.429rate_limited; honor Retry-After when present.429daily_call_limit; the plan's daily API and MCP calls are used until 00:00 UTC.MCP request
Call aso with action discover. Path fields go in params, filters in query, and a write body in body.
{
"name": "aso",
"arguments": {
"request": {
"action": "discover",
"params": {
"appId": "<appId>"
}
}
}
}
Source
Stored observations and derived ideas for apps you track.
Refresh
This read does not collect. Refresh the app when you want newer observations.
AI agent or LLM? Read this page as markdown