AppSkyline App Rankings
Track your apps' keyword rankings, reviews and store listings on App Store, Google Play and more.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"appskyline": {
"url": "https://mcp.appskyline.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.appskyline.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"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).
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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
}Comunidad
Evidencia