PeekPanda markpeekpandaDocumentation
For your AI
Dashboard

Get ASO workstation

Read the stored ASO workstation for one tracked app.

Download Markdown ↓

GEThttps://api.peekpanda.com/v1/aso/apps/{appId}

Request

Read the stored workstation. Difficulty and demand are directional indicators, not search volume or advertising data.

Parameters

NameInTypeRequiredDescription
appIdpathuuidYesTracked ASO app id.

Response

The response includes the tracked app, its saved keywords, observed positions, rivals, ideas, insights and refresh state for the US English storefront. Every keyword row is one saved keyword with its `trackedKeywordId` and `source`; rankings for searches the app has not saved are listed by keyword discovery, not here. `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

app.storeIdstring
app.namestring
app.iconUrlnull
app.developerNamestring
app.primaryGenrestring
app.ratingnumber
app.ratingCountnumber
app.inCatalogueboolean
app.idstring
app.kindstring
app.rolestring
app.createdAtstring
app.lastRefreshedAtstring
app.keywordCountnumber
refresh.statestring
refresh.lastRefreshedAtstring
refresh.nextAllowedAtstring
refresh.staleQueryCountnumber
refresh.activeJobIdnull
refresh.budgetobject
profile.positionKindstring
profile.storeIdstring
profile.coverageobject
profile.summaryobject
profile.keywordsarray
profile.rivalsarray
profile.keywordIdeasarray
profile.insights[].kindstring
profile.insights[].titlestring
profile.insights[].detailstring
profile.insights[].keywordsarray
profile.insights[].catalogueStoreIdnull
keywords[].querystring
keywords[].positionnumber
keywords[].trackedKeywordIdstring
keywords[].sourcestring
keywords[].notenull
keywords[].tags[].idstring
keywords[].tags[].namestring
keywords[].tags[].colorstring
keywords[].tags[].createdAtstring
keywords[].tags[].updatedAtstring
keywords[].observedAtstring
keywords[].isStaleboolean
keywords[].resultCountnumber
keywords[].apps[].storeIdstring
keywords[].apps[].positionnumber
keywords[].apps[].namestring
keywords[].apps[].isSubjectboolean
keywords[].apps[].inCatalogueboolean
keywords[].history[].observedAtstring
keywords[].history[].positionnumber
keywords[].difficulty.scorenumber
keywords[].demand.scorenumber
keywords[].demand.tiernumber
keywords[].demand.countrystring
keywords[].demand.periodStartstring
keywords[].demand.periodEndstring
keywords[].demand.observedAtstring
keywords[].popularityEstimatenull
tags[].idstring
tags[].namestring
tags[].colorstring
tags[].createdAtstring
tags[].updatedAtstring
trackedCompetitorsarray

Authentication

Requires Bearer API credential or OAuth access token. Scope context:read. MCP calls aso with action get.

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 get. Path fields go in params, filters in query, and a write body in body.

{
  "name": "aso",
  "arguments": {
    "request": {
      "action": "get",
      "params": {
        "appId": "<appId>"
      }
    }
  }
}

Source

Dated public App Store search results and suggestion observations for the US English storefront. Positions are observed result order. Difficulty and demand are directional indicators, not search volume or advertising data.

Refresh

This read returns stored observations. Use the related refresh command when newer evidence is needed.

AI agent or LLM? Read this page as markdown