AppSkyline App Rankings
Track your apps' keyword rankings, reviews and store listings on App Store, Google Play and more.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"appskyline": {
"url": "https://mcp.appskyline.com/mcp"
}
}
}원격 엔드포인트
https://mcp.appskyline.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (14)
🟢list_apps
List all Appskyline apps the authenticated user has access to. Returns a Markdown table of id, name, default locale, and the per-store ids (iOS App Store, Google Play, Microsoft Store) when set.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"apps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"$ref": "#/properties/apps/items/properties/id"
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"iosAppStoreId": {
"$ref": "#/properties/apps/items/properties/id"
},
"macosAppStoreId": {
"$ref": "#/properties/apps/items/properties/id"
},
"googlePlayStorePackage": {
"$ref": "#/properties/apps/items/properties/id"
},
"windowsStoreProductId": {
"$ref": "#/properties/apps/items/properties/id"
}
},
"required": [
"id",
"name",
"defaultLocale",
"iosAppStoreId",
"macosAppStoreId",
"googlePlayStorePackage",
"windowsStoreProductId"
],
"additionalProperties": false
},
"maxItems": 100
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"apps",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app(appId)
Fetch a single Appskyline app by id. Returns the app metadata formatted as Markdown (name, locales, per-store ids, creation/edit times).
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "App id (uuid)"
}
},
"required": [
"appId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"app": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"locales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"iosAppStoreId": {
"$ref": "#/properties/app/anyOf/0/properties/name"
},
"macosAppStoreId": {
"$ref": "#/properties/app/anyOf/0/properties/name"
},
"googlePlayStorePackage": {
"$ref": "#/properties/app/anyOf/0/properties/name"
},
"windowsStoreProductId": {
"$ref": "#/properties/app/anyOf/0/properties/name"
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"defaultLocale",
"locales",
"iosAppStoreId",
"macosAppStoreId",
"googlePlayStorePackage",
"windowsStoreProductId",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"app"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_keywords(appId, limit, skip)
List tracked keywords for an Appskyline app. Returns a Markdown table of id, term (searchTerms), language, country, and bid amount.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "App id to list tracked keywords for"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500,
"description": "Maximum number of keywords to return (default server-side)"
},
"skip": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"description": "Pagination offset"
}
},
"required": [
"appId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"keywords": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"term": {
"$ref": "#/properties/keywords/items/properties/id"
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"bid": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"term",
"language",
"country",
"bid"
],
"additionalProperties": false
},
"maxItems": 500
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"keywords",
"offset",
"returned",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_store_results(store, term, country, lang, num)
Run a live ranked search against the iOS App Store, macOS App Store, Google Play, or Microsoft Store via Appskyline without storing a search snapshot. Returns a Markdown table of rank, id, title, score, and developer for each result.
입력 스키마
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store to search"
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Search term"
},
"country": {
"type": "string",
"maxLength": 10,
"description": "Two-letter country code (e.g. US, IT)"
},
"lang": {
"type": "string",
"maxLength": 32,
"description": "Two-letter language code (e.g. en, it)"
},
"num": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200,
"description": "Number of results to return (default depends on store)"
}
},
"required": [
"store",
"term"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"title": {
"$ref": "#/properties/results/items/properties/id"
},
"score": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000
},
{
"type": "null"
}
]
},
"developer": {
"$ref": "#/properties/results/items/properties/id"
}
},
"required": [
"rank",
"id",
"title",
"score",
"developer"
],
"additionalProperties": false
},
"maxItems": 200
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"store",
"term",
"country",
"lang",
"results",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_keyword_rank(appId, store, term, country, lang, ...)
Look up the current ranking of a specific Appskyline app for a keyword in a given store + country. Returns "App X ranks #N of M" or "not in top N" if the app does not appear in the scanned results.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id"
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store to check"
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Search term"
},
"country": {
"type": "string",
"maxLength": 10,
"description": "Two-letter country code (e.g. US, IT)"
},
"lang": {
"type": "string",
"maxLength": 32,
"description": "Two-letter language code (e.g. en, it)"
},
"num": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200,
"default": 50,
"description": "How many results to scan when looking for the app (default 50, max 200)"
}
},
"required": [
"appId",
"store",
"term"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ranked",
"not-ranked",
"app-not-found",
"store-not-configured"
]
},
"app": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"rank": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
{
"type": "null"
}
]
},
"resultsScanned": {
"type": "integer",
"minimum": 0,
"maximum": 200
}
},
"required": [
"status",
"app",
"term",
"store",
"country",
"lang",
"rank",
"resultsScanned"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_keyword_history(appId, store, term, country, limit)
Get the historical ranking timeseries for an app, term, and country across day-by-day snapshots stored by Appskyline. Returns a Markdown table of date, rank, and total results scanned that day.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id"
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store to check"
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Search term"
},
"country": {
"type": "string",
"minLength": 1,
"maxLength": 10,
"description": "Two-letter country code (e.g. US, IT)"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 365,
"description": "Maximum number of history rows to return (newest first)"
}
},
"required": [
"appId",
"store",
"term",
"country"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"app-not-found",
"store-not-configured",
"no-history"
]
},
"app": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"snapshots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"rank": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
{
"type": "null"
}
]
},
"resultsScanned": {
"type": "integer",
"minimum": 0,
"maximum": 200
},
"resultsTruncated": {
"type": "boolean"
}
},
"required": [
"date",
"rank",
"resultsScanned",
"resultsTruncated"
],
"additionalProperties": false
},
"maxItems": 365
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 365
},
"totalSnapshots": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"totalSnapshotsIsLowerBound": {
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"app",
"store",
"term",
"country",
"snapshots",
"returned",
"totalSnapshots",
"totalSnapshotsIsLowerBound",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_keyword_overview(terms, country, lang)
Look up monthly search volume, keyword difficulty, CPC and competition level for up to 50 search terms in one country. Values come from Appskyline's shared DataForSEO cache; terms missing or stale in the cache trigger a live, billable upstream lookup, so batch terms rather than calling once per keyword.
입력 스키마
{
"type": "object",
"properties": {
"terms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^,]+$"
},
"minItems": 1,
"maxItems": 50,
"description": "Search terms to look up (max 50 per call, no commas)"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code (e.g. US, IT)"
},
"lang": {
"type": "string",
"maxLength": 32,
"description": "Two-letter language code (e.g. en, it)"
}
},
"required": [
"terms",
"country"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"keywords": {
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"searchVolume": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 1000000000
},
{
"type": "null"
}
]
},
"keywordDifficulty": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"cpc": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000
},
{
"type": "null"
}
]
},
"competition": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
]
},
"fetchedAt": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"keyword",
"searchVolume",
"keywordDifficulty",
"cpc",
"competition",
"fetchedAt"
],
"additionalProperties": false
},
"maxItems": 50
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"country",
"lang",
"keywords",
"returned",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_store_listing(store, storeId, country, lang)
Fetch the public store listing for any app by its store-native id (not just apps tracked in Appskyline): title, developer, rating, price, version, release dates, genres, and truncated description / release notes. Useful for competitor research.
입력 스키마
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store to read the listing from"
},
"storeId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Store-native app identifier: numeric Apple id, Google Play package name, or Microsoft Store product id"
},
"country": {
"type": "string",
"maxLength": 10,
"description": "Two-letter country code (e.g. US, IT)"
},
"lang": {
"type": "string",
"maxLength": 32,
"description": "Two-letter language code (e.g. en, it)"
}
},
"required": [
"store",
"storeId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"storeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"listing": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"developer": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"developerId": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000
},
{
"type": "null"
}
]
},
"ratings": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
},
"price": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"free": {
"type": [
"boolean",
"null"
]
},
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"version": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"released": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"updated": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"requiredOsVersion": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"genres": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 20
},
"screenshotCount": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
]
},
"releaseNotes": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"title",
"developer",
"developerId",
"score",
"ratings",
"price",
"free",
"currency",
"version",
"released",
"updated",
"requiredOsVersion",
"genres",
"screenshotCount",
"description",
"releaseNotes"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"store",
"storeId",
"country",
"lang",
"listing"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_store_metadata(appId, store, locale)
Read the store-listing metadata Appskyline has synced for one of your apps — per locale name, subtitle, keywords (with their character count against Apple's 100-character limit), promotional text, release notes, version and review state. Read-only: it never downloads from or uploads to the store.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id"
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store listing to read"
},
"locale": {
"type": "string",
"maxLength": 32,
"description": "Only return this locale (e.g. en-US, it)"
}
},
"required": [
"appId",
"store"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"localeFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"subtitle": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"keywords": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"keywordCharacters": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 200
},
{
"type": "null"
}
]
},
"promotionalText": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
]
},
"whatsNew": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
]
},
"version": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"lastSyncedAt": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"locale",
"name",
"subtitle",
"keywords",
"keywordCharacters",
"promotionalText",
"whatsNew",
"description",
"version",
"state",
"lastSyncedAt"
],
"additionalProperties": false
},
"maxItems": 100
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"appId",
"store",
"localeFilter",
"listings",
"returned",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app_engagement_summary(appId, store, startDate, endDate, days)
Summarize downloads, installs, uninstalls, crashes and other engagement totals reported by a store for one Appskyline app over a date window. Returns the aggregate totals, the most recent daily rows, and the top territories. Metric names differ per store because each store reports its own set.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id"
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
],
"description": "Which store to summarize"
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start of the window as YYYY-MM-DD"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End of the window as YYYY-MM-DD"
},
"days": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 365,
"description": "Rolling window size in days when no explicit dates are given"
}
},
"required": [
"appId",
"store"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"store": {
"type": "string",
"enum": [
"ios-app-store",
"macos-app-store",
"google-play",
"microsoft-store"
]
},
"dataThrough": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastSyncedAt": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"value": {
"type": "number",
"minimum": -1000000000000000,
"maximum": 1000000000000000
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
},
"maxItems": 30
},
"totalsTruncated": {
"type": "boolean"
},
"topTerritories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 8
},
"dailySeries": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"metrics": {
"type": "array",
"items": {
"$ref": "#/properties/totals/items"
},
"maxItems": 6
}
},
"required": [
"date",
"metrics"
],
"additionalProperties": false
},
"maxItems": 30
},
"totalRows": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"totalRowsIsLowerBound": {
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"name",
"rows",
"totalRows",
"totalRowsIsLowerBound",
"truncated"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"appId",
"store",
"dataThrough",
"lastSyncedAt",
"totals",
"totalsTruncated",
"topTerritories",
"dailySeries"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_google_play_reviews(appId, maxResults, token, translationLanguage)
List the most recent Google Play user reviews for one of your Appskyline apps: star rating, truncated review text, app version, device, reviewer language, and whether the developer has replied. Requires a Google Play service account configured for the app. Paginate with the returned page token.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id (uuid)"
},
"maxResults": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100,
"description": "How many reviews to fetch (max 100)"
},
"token": {
"type": "string",
"maxLength": 2000,
"description": "Page token returned by a previous call"
},
"translationLanguage": {
"type": "string",
"maxLength": 32,
"description": "Translate review text into this language (e.g. en)"
}
},
"required": [
"appId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"available",
"empty",
"not-configured"
]
},
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reviews": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reviewId": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"author": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"stars": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 5
},
{
"type": "null"
}
]
},
"date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"version": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"replied": {
"type": "boolean"
},
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
}
},
"required": [
"reviewId",
"author",
"stars",
"date",
"version",
"device",
"language",
"replied",
"text"
],
"additionalProperties": false
},
"maxItems": 100
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"nextPageToken": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"truncated": {
"type": "boolean"
}
},
"required": [
"status",
"appId",
"reviews",
"returned",
"nextPageToken",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴add_keyword(appId, searchTerms, language, country)
Add a new tracked keyword to an Appskyline app after explicit confirmation. This modifies the tracked set and is non-idempotent: calling with the same term twice creates two keyword rows.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id to attach the keyword to"
},
"searchTerms": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The keyword phrase to track"
},
"language": {
"type": "string",
"maxLength": 32,
"description": "Two-letter language code (e.g. en)"
},
"country": {
"type": "string",
"maxLength": 10,
"description": "Two-letter country code (e.g. US)"
}
},
"required": [
"appId",
"searchTerms"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "added"
},
"keyword": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"appId",
"term",
"language",
"country"
],
"additionalProperties": false
}
},
"required": [
"status",
"keyword"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_keyword(id)
Permanently delete a tracked Appskyline keyword by id. Idempotent — deleting an already-deleted keyword is a no-op. This stops collecting new ranking snapshots; historical search rows in the *-searches collections are not affected.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Keyword id to delete"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"deleted",
"not-found"
]
},
"keywordId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"status",
"keywordId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢show_app_overview(appId)
Render an interactive overview for a known Appskyline app. Use this after listing apps or when the user provides an Appskyline app id. It shows store identities and up to 50 tracked keywords.
입력 스키마
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Appskyline app id to render"
}
},
"required": [
"appId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"app": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"locales": {
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"iosAppStoreId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"macosAppStoreId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"googlePlayId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"microsoftStoreId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"defaultLocale",
"locales",
"iosAppStoreId",
"macosAppStoreId",
"googlePlayId",
"microsoftStoreId"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"keywordCount": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"storeCount": {
"type": "integer",
"minimum": 0,
"maximum": 4
},
"keywords": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"term": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"term",
"language",
"country"
],
"additionalProperties": false
}
}
},
"required": [
"app",
"keywordCount",
"storeCount",
"keywords"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}커뮤니티
증거