AppstoreSpy Google Play API
The Google Play API from AppstoreSpy — 17 operation(s) for google play.
The Google Play API from AppstoreSpy — 17 operation(s) for google play.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/appstorespy-google-play-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AppstoreSpy Google Play API
description: "# Authentication\n\nThe Appstorespy API uses API-KEY authentication.<br>\n\nIf you do not have an API Key token, you can get it on your account page [https://appstorespy.com/account](https://appstorespy.com/account). <br>\n\nAn API Key is required to be sent as part of every request in request header.\n\n```\n\n -H 'accept: application/json'\n\n -H 'API-KEY: <your_token>'\n\n```\n\n\n\n# Fields\n\nUse the fields parameter to specify which fields should be returned. <br>\n\nExample:\n\n```\n\n Request: fields=name,developer_name,ipd,downloads,...\n\n Response: {name: ..., developer_name: ..., ipd: ..., downloads: ..., ...}\n\n```\n\nDon`t use fields parameter if you need to get all fields. <br>\n\n\n\n\n\n# Sort\n\nWhen you use search, you can add a sort parameter.\n\n```\n\n Request: sort=ratingCount\n\n Response: [{name: app1, ratingCount: 4.2}, {name: app2, ratingCount: 4.4}, ...]\n\n```\n\nIf you need DESC sorting add \"-\" before sort parametr.\n\n```\n\n Request: sort=-ratingCount\n\n Response: [{name: app2, ratingCount: 4.4}, {name: app1, ratingCount: 4.2}, ...]\n\n```\n\n\n\n# County & Language params\n\n...\n\n\n\n# Status codes / Error codes\n\n* 200 OK.\n\n* 202 Accepted - The app was not present in our databases and has been submitted for crawling. If the app is available anywhere, it will be available soon.\n\n* 204 No Content - No data for requested country.\n\n* 403 Forbidden - Your access token is not valid.\n\n* 429 Too Many Requests - Your request rate is over the limit.\n"
version: 0.0.1
servers:
- url: https://api.appstorespy.com/v1
tags:
- name: Google Play
paths:
/play/apps:
get:
tags:
- Google Play
summary: Search Google Play apps by query.
operationId: get_app_search_play_apps_get
parameters:
- description: Word or phrase for search.
required: false
schema:
type: string
title: Q
description: Word or phrase for search.
example: X
name: q
in: query
- description: Empty for all.
required: false
schema:
type: boolean
title: Published
description: Empty for all.
name: published
in: query
- description: Country for specific country fields. Default - US.
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
description: Country for specific country fields. Default - US.
name: country
in: query
- description: 'Language of meta data. By default: store default language.'
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppLanguages'
description: 'Language of meta data. By default: store default language.'
name: language
in: query
- description: Fields to return separated by comma(,)
required: false
schema:
type: string
title: Fields
description: Fields to return separated by comma(,)
name: fields
in: query
- description: Sort params separated by comma(,)
required: false
schema:
type: string
title: Sort
description: Sort params separated by comma(,)
example: -installs_exact,-revenue
name: sort
in: query
- description: Count per page
required: false
schema:
type: integer
maximum: 1000.0
title: Limit
description: Count per page
default: 10
name: limit
in: query
- description: Page
required: false
schema:
type: integer
title: Page
description: Page
default: 1
name: page
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/PlayApp'
type: array
title: Response Get App Search Play Apps Get
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/{id}/reviews:
get:
tags:
- Google Play
summary: Get Google Play app reviews by app ID.
operationId: get_reviews_play_apps__id__reviews_get
parameters:
- description: App ID(bundle)
required: true
schema:
type: string
title: Id
description: App ID(bundle)
example: com.twitter.android
name: id
in: path
- required: false
schema:
$ref: '#/components/schemas/AppCountries'
name: country
in: query
- description: Review language
required: true
schema:
allOf:
- $ref: '#/components/schemas/AppLanguages'
description: Review language
name: language
in: query
- description: Count of reviews per page
required: false
schema:
type: integer
maximum: 1000.0
title: Limit
description: Count of reviews per page
default: 10
name: limit
in: query
- description: Sort params separated by comma(,)
required: false
schema:
type: string
title: Sort
description: Sort params separated by comma(,)
example: stars,-likes
name: sort
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/PlayReview'
type: array
title: Response Get Reviews Play Apps Id Reviews Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/{id}/recrawl:
get:
tags:
- Google Play
summary: Get Recrawl
operationId: get_recrawl_play_apps__id__recrawl_get
parameters:
- description: App ID(bundle)
required: true
schema:
type: string
title: Id
description: App ID(bundle)
example: com.twitter.android
name: id
in: path
- description: 'Country for which return data. By default: US.'
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
description: 'Country for which return data. By default: US.'
default: US
name: country
in: query
- description: 'Language of meta data. By default: en_US'
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppLanguages'
description: 'Language of meta data. By default: en_US'
default: en_US
name: language
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/query:
post:
tags:
- Google Play
summary: Get Filter Search
operationId: get_filter_search_play_apps_query_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PlayAppSearchBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlayAppListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/similar:
post:
tags:
- Google Play
summary: Get Similar
operationId: get_similar_play_apps_similar_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SimilarSearchBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlayAppListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/summary:
post:
tags:
- Google Play
summary: Get Summary
operationId: get_summary_play_apps_summary_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SummarySearchBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SummaryResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/{id}:
get:
tags:
- Google Play
summary: Get Google Play app by ID.
operationId: get_app_details_play_apps__id__get
parameters:
- description: App ID(bundle)
required: true
schema:
type: string
title: Id
description: App ID(bundle)
example: com.twitter.android
name: id
in: path
- description: Fields to return separated by comma(,)
required: false
schema:
type: string
title: Fields
description: Fields to return separated by comma(,)
name: fields
in: query
- description: 'Country for which return data. By default: US.'
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
description: 'Country for which return data. By default: US.'
name: country
in: query
- description: 'Language of meta data. By default: store default language.'
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppLanguages'
description: 'Language of meta data. By default: store default language.'
name: language
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlayApp'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/info/countries:
get:
tags:
- Google Play
summary: Get Google Play app available countries.
description: This query returns the list of Google Play app available countries.
operationId: get_play_app_countries_play_info_countries_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StoreCountries'
security:
- APIKeyHeader: []
/play/info/languages:
get:
tags:
- Google Play
summary: Get Google Play app available languages.
description: This query returns the list of Google Play app available languages.
operationId: get_play_app_languages_play_info_languages_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StoreLanguages'
security:
- APIKeyHeader: []
/play/developers/{id}:
get:
tags:
- Google Play
summary: Get Developer
operationId: get_developer_play_developers__id__get
parameters:
- description: Developer ID
required: true
schema:
type: string
title: Id
description: Developer ID
example: '6891936352065498609'
name: id
in: path
- description: Fields to return separated by comma(,)
required: false
schema:
type: string
title: Fields
description: Fields to return separated by comma(,)
name: fields
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlayDev'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/developers:
get:
tags:
- Google Play
summary: Dev Search
operationId: dev_search_play_developers_get
parameters:
- description: Query for search
required: false
schema:
type: string
title: Q
description: Query for search
example: hq_country:US
name: q
in: query
- description: Fields to return separated by comma(,)
required: false
schema:
type: string
title: Fields
description: Fields to return separated by comma(,)
name: fields
in: query
- description: Sort params separated by comma(,)
required: false
schema:
type: string
title: Sort
description: Sort params separated by comma(,)
example: -total_apps,-installs
name: sort
in: query
- description: Count per page
required: false
schema:
type: integer
maximum: 1000.0
title: Limit
description: Count per page
default: 10
name: limit
in: query
- description: Page
required: false
schema:
type: integer
title: Page
description: Page
default: 1
name: page
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/PlayDev'
type: array
title: Response Dev Search Play Developers Get
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/developers/{id}/estimates:
get:
tags:
- Google Play
summary: Get Apps Estimates
description: Get Google Play apps estimates
operationId: get_apps_estimates_play_developers__id__estimates_get
parameters:
- description: Developer's id
required: true
schema:
type: string
title: Id
description: Developer's id
example: '7022973042396704692'
name: id
in: path
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: Start
description: Start date. Format YYYY-MM-DD
name: start
in: query
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: End
description: Start date. Format YYYY-MM-DD
name: end
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/DevAppsEstimates'
type: array
title: Response Get Apps Estimates Play Developers Id Estimates Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/estimates:
get:
tags:
- Google Play
summary: Get Apps Estimates
description: Get Google Play apps estimates
operationId: get_apps_estimates_play_estimates_get
parameters:
- description: Apps to return separated by comma(,)
required: true
schema:
type: string
title: Id
description: Apps to return separated by comma(,)
example: com.twitter.android
name: id
in: query
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: Start
description: Start date. Format YYYY-MM-DD
name: start
in: query
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: End
description: Start date. Format YYYY-MM-DD
name: end
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AppsEstimates'
type: array
title: Response Get Apps Estimates Play Estimates Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/apps/{id}/installs_daily:
get:
tags:
- Google Play
summary: Get Apps Installs Daily
description: 'Get Google Play apps daily installs.
`ipd` is derived from the cumulative install total: each increase is spread evenly across the elapsed days since the total last changed, so collection gaps and lagging reports are amortised rather than reported as a single-day spike. Values are raw and never negative.
Note: these are unsmoothed figures. AppstoreSpy''s own charts additionally apply a moving average for readability, so a given day''s value may differ from what the UI plots. This endpoint is the underlying data.'
operationId: get_apps_installs_daily_play_apps__id__installs_daily_get
parameters:
- description: Apps to return separated by comma(,)
required: true
schema:
type: string
title: Id
description: Apps to return separated by comma(,)
example: com.twitter.android
name: id
in: path
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: Start
description: Start date. Format YYYY-MM-DD
name: start
in: query
- description: Start date. Format YYYY-MM-DD
required: false
schema:
type: string
format: date
title: End
description: Start date. Format YYYY-MM-DD
name: end
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AppsDailyInstalls'
type: array
title: Response Get Apps Installs Daily Play Apps Id Installs Daily Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/suggestions:
get:
tags:
- Google Play
summary: Get Suggests
operationId: get_suggests_play_suggestions_get
parameters:
- required: true
schema:
type: string
title: Q
name: q
in: query
- required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
default: US
name: country
in: query
- required: false
schema:
allOf:
- $ref: '#/components/schemas/AppLanguages'
default: en_US
name: lang
in: query
- required: false
schema:
allOf:
- $ref: '#/components/schemas/CacheTime'
default: 7d
name: freshness
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Suggest'
'202':
description: Response in progress
content:
application/json:
schema:
$ref: '#/components/schemas/SuggestLite'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/liveops:
get:
tags:
- Google Play
summary: Get Events
operationId: get_events_play_liveops_get
parameters:
- required: true
schema:
type: string
title: App
name: app
in: query
- required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
default: US
name: country
in: query
- required: false
schema:
allOf:
- $ref: '#/components/schemas/CacheTime'
default: 7d
name: freshness
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Event'
type: array
title: Response 200 Get Events Play Liveops Get
'202':
description: Response in progress
content:
application/json: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/play/rankings:
get:
tags:
- Google Play
summary: Get Google Play rankings data
operationId: get_play_rankings_play_rankings_get
parameters:
- description: Start date (YYYY-MM-DD)
required: false
schema:
type: string
format: date
title: Date Start
description: Start date (YYYY-MM-DD)
name: date_start
in: query
- description: End date (YYYY-MM-DD)
required: false
schema:
type: string
format: date
title: Date End
description: End date (YYYY-MM-DD)
name: date_end
in: query
- description: App IDs (comma-separated)
required: false
schema:
items:
type: string
type: array
title: App
description: App IDs (comma-separated)
name: app
in: query
- description: Country codes (comma-separated)
required: false
schema:
items:
$ref: '#/components/schemas/AppCountries'
type: array
description: Country codes (comma-separated)
name: country
in: query
- description: App categories (comma-separated)
required: false
schema:
items:
$ref: '#/components/schemas/PlayCategory'
type: array
description: App categories (comma-separated)
name: category
in: query
- description: Collection types (comma-separated)
required: false
schema:
items:
$ref: '#/components/schemas/Collection'
type: array
description: Collection types (comma-separated)
name: collection
in: query
- description: Minimum rank
required: false
schema:
type: integer
minimum: 1.0
title: Rank Start
description: Minimum rank
name: rank_start
in: query
- description: Maximum rank
required: false
schema:
type: integer
maximum: 10000.0
title: Rank End
description: Maximum rank
name: rank_end
in: query
- description: Count per page
required: false
schema:
type: integer
maximum: 1000.0
title: Limit
description: Count per page
default: 10
name: limit
in: query
- description: Page
required: false
schema:
type: integer
title: Page
description: Page
default: 1
name: page
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_list_models.responses.response.PlayRankingItem__'
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
components:
schemas:
StoreLanguages:
properties:
languages:
items:
type: string
type: array
title: Languages
type: object
required:
- languages
title: StoreLanguages
AppsEstimates:
properties:
id:
type: string
title: Id
month:
type: string
title: Month
downloads:
type: integer
title: Downloads
revenue:
type: integer
title: Revenue
type: object
required:
- id
- month
title: AppsEstimates
PlayCategory:
enum:
- APPLICATION
- SOCIAL
- FAMILY
- ANDROID_WEAR
- ART_AND_DESIGN
- AUTO_AND_VEHICLES
- BEAUTY
- BOOKS_AND_REFERENCE
- BUSINESS
- COMICS
- COMMUNICATION
- DATING
- EDUCATION
- ENTERTAINMENT
- EVENTS
- FINANCE
- FOOD_AND_DRINK
- HEALTH_AND_FITNESS
- HOUSE_AND_HOME
- LIBRARIES_AND_DEMO
- LIFESTYLE
- MAPS_AND_NAVIGATION
- MEDICAL
- MUSIC_AND_AUDIO
- NEWS_AND_MAGAZINES
- PARENTING
- PERSONALIZATION
- PHOTOGRAPHY
- PRODUCTIVITY
- SHOPPING
- SPORTS
- TOOLS
- TRAVEL_AND_LOCAL
- VIDEO_PLAYERS
- WEATHER
- GAME
- GAME_ACTION
- GAME_ADVENTURE
- GAME_ARCADE
- GAME_BOARD
- GAME_CARD
- GAME_CASINO
- GAME_CASUAL
- GAME_EDUCATIONAL
- GAME_MUSIC
- GAME_PUZZLE
- GAME_RACING
- GAME_ROLE_PLAYING
- GAME_SIMULATION
- GAME_SPORTS
- GAME_STRATEGY
- GAME_TRIVIA
- GAME_WORD
- FAMILY_ACTION
- FAMILY_BRAINGAMES
- FAMILY_CREATE
- FAMILY_MUSICVIDEO
- FAMILY_PRETEND
- FAMILY_EDUCATION
title: PlayCategory
description: An enumeration.
ValueRange:
properties:
lte:
anyOf:
- type: integer
- type: number
title: Lte
gte:
anyOf:
- type: integer
- type: number
title: Gte
type: object
title: ValueRange
AppLanguages:
type: string
enum:
- en_US
- ar
- en_GB
- fr_FR
- es_419
- de_DE
- pt_BR
- it_IT
- ja_JP
- ko_KR
- tr_TR
- ru_RU
- vi
title: AppLanguages
description: An enumeration.
TypeEnum:
enum:
- APP
- GAME
title: TypeEnum
description: An enumeration.
PlayAppSearchBody:
properties:
limit:
type: integer
title: Limit
description: Count of apps in results
default: 10
page:
type: integer
title: Page
description: Offset page
default: 1
sort:
allOf:
- $ref: '#/components/schemas/PlaySortEnum'
description: Field for sort
fields:
items:
type: string
type: array
title: Fields
description: Fields for select, empty for all
default:
- id
- url_appstorespy
- name
- bundle
- description_full
- published
- listing_visible
- category
- category_type
- revenue_month
- revenue_lifetime
- downloads_month
- downloads_lifetime
- update_date
- release_date
- developer_name
- description_short
- whatsnew
- icon
- video
- screenshots
- feature_graphic
- removal_date
- version
- size
- downloads_exact
- downloads_mark
- rating_count
- rating_value
- review_count
- rating_avg
- iap
- editorial
- hosts
- chart_info
- country
- advertised
- ads
country:
allOf:
- $ref: '#/components/schemas/AppCountries'
description: Country for which return data
default: US
language:
allOf:
- $ref: '#/components/schemas/AppLanguages'
description: 'Language of meta data. By default: en_US'
filter:
$ref: '#/components/schemas/SearchFilterPlay'
type: object
required:
- filter
title: PlayAppSearchBody
example:
sort: -downloads_daily
fields:
- id
- name
- icon
- video
- downloads_mark
- category_type
- category
- url_appstorespy
language: en_US
filter:
name: twitter
bundle:
- com.twitter.android
- com.facebook.katana
published: true
category_type: APP
release_date:
lte: '2026-08-22'
update_date:
lte: '2026-08-22'
rating_avg:
lte: 5.0
gte: 3.0
rating_count:
lte: 1000000
gte: 0
active_countries:
- US
downloads_daily:
lte: 100000
gte: 0
downloads_exact:
lte: 1000000
gte: 0
DevAppsEstimates:
properties:
month:
type: string
title: Month
downloads:
type: integer
title: Downloads
revenue:
type: integer
title: Revenue
type: object
required:
- month
title: DevAppsEstimates
Image:
properties:
url:
type: string
title: Url
type: object
title: Image
SimilarSearchBody:
properties:
limit:
type: integer
title: Limit
description: Co
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appstorespy/refs/heads/main/openapi/appstorespy-google-play-api-openapi.yml