AppstoreSpy App Store API
The App Store API from AppstoreSpy — 14 operation(s) for app store.
The App Store API from AppstoreSpy — 14 operation(s) for app store.
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-app-store-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 App Store 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: App Store
paths:
/ios/apps/{id}:
get:
tags:
- App Store
summary: Get App Store app by ID.
operationId: get_app_details_ios_apps__id__get
parameters:
- description: App ID
required: true
schema:
type: string
title: Id
description: App ID
example: '333903271'
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/IosApp'
'206':
description: Partial Content
content:
application/json:
schema:
$ref: '#/components/schemas/IosApp'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/apps:
get:
tags:
- App Store
summary: Search App Store apps by query.
operationId: get_app_search_ios_apps_get
parameters:
- description: Word or phrase for search.
required: false
schema:
type: string
title: Q
description: Word or phrase for search.
example: Twitter
name: q
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: 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: -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/IosApp'
type: array
title: Response Get App Search Ios Apps Get
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/apps/{id}/reviews:
get:
tags:
- App Store
summary: Get App Store app reviews by app ID.
operationId: get_reviews_ios_apps__id__reviews_get
parameters:
- description: App ID
required: true
schema:
type: string
title: Id
description: App ID
example: '333903271'
name: id
in: path
- description: App storefront
required: false
schema:
allOf:
- $ref: '#/components/schemas/AppCountries'
description: App storefront
name: country
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: Count of reviews per page
required: false
schema:
type: integer
maximum: 1000.0
minimum: 1.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: rating,-date
name: sort
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/IosReview'
type: array
title: Response Get Reviews Ios Apps Id Reviews Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/apps/query:
post:
tags:
- App Store
summary: Get Filter Search
description: '|**Fields**||||
|---|---|---|---|
|**Name** |**Type** |**Sort**|**Description**|
|name |string |- |Name|
|bundle |string |- |Bundle|
|description_full |string |- |Full Description|
|published |boolean |- |Published|
|listing_visible |boolean |- |Published in request country|
|category |string |- |Сategory|
|category_type |string |- |Type|
|revenue_month |integer |+ |Monthly Revenue|
|revenue_lifetime |integer |- |Lifetime Revenue|
|downloads_month |integer |+ |Monthly Downloads|
|downloads_lifetime|integer |- |Lifetime Downloads|
|update_date |date ISO8601|+ |Last Updated|
|release_date |date ISO8601|+ |Release date|
|developer_name |string |- |Developer name|
|description_short|string |- |Short description|
|whatsnew |string |- |Whatsnew|
|icon |string |- |Image|
|video |string |- |Trailer|
|screenshots |[]string |- |Screenshots|
|removal_date |date ISO8601|+ |Removal date|
|version |string |- |Version|
|size |float |- |Size|
|rating_count |integer |+ |Ratings|
|rating_value |float |+ |Rating in request country|
|review_count |integer |+ |Reviews|
|rating_avg |float |+ |Rating|
|iap |boolean |- |Inapp|
|copyright |string |- |Copyright|
|seller |string |- |Seller|
|chart_info |object |+ |App''s chart info: category, collection, country, position for today|
|**Filters**|||
|---|---|---|
|**Name**|**Type**|**Description**|
|name|string|Name|
|published|boolean|Published|
|category_type|string|APP or GAME|
|revenue_month|ValueRange|{"gte": 100, "lte": 500} (In this field you need write values in thousands: 100 = 100000, 500 = 500000)|
|downloads_month|ValueRange|{"gte": 100, "lte": 500} (In this field you need write values in thousands: 100 = 100000, 500 = 500000)|
|update_date|DateRange|{"gte": "2021-01-01", "lte": "2022-01-01"}|
|release_date|DateRange|{"gte": "2021-01-01", "lte": "2022-01-01"}|
|rating_count|ValueRange|{"gte": 1000, "lte": 5000}|
|developer|string|Developer name|
|developer_id|string|Developer id|
|active_countries|[]string|["US", "DE", "FR"] - List of countries where app is available (At least one country)|
|category|string|App Store category: "TRAVEL", "EDUCATION", "GAMES_STRATEGY", "LIFESTYLE" etc|
|review_count|ValueRange|{"gte": 1000, "lte": 5000}|
|rating_avg|ValueRange|{"gte": 3.5, "lte": 5.0}|
|with_ads|boolean|With Ads|
|advertised|boolean|Advertised|'
operationId: get_filter_search_ios_apps_query_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IosAppSearchBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/IosAppListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/apps/similar:
post:
tags:
- App Store
summary: Get Similar
operationId: get_similar_ios_apps_similar_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IosSimilarSearchBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/IosAppListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/apps/summary:
post:
tags:
- App Store
summary: Get Summary
operationId: get_summary_ios_apps_summary_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IosSummarySearchBody'
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: []
/ios/apps/{id}/recrawl:
get:
tags:
- App Store
summary: Get Recrawl
operationId: get_recrawl_ios_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: []
/ios/estimates:
get:
tags:
- App Store
summary: Get Apps Estimates
description: Get App Store apps estimates
operationId: get_apps_estimates_ios_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: '333903271'
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 Ios Estimates Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/info/countries:
get:
tags:
- App Store
summary: Get Ios app available countries.
operationId: get_play_app_countries_ios_info_countries_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StoreCountries'
security:
- APIKeyHeader: []
/ios/info/languages:
get:
tags:
- App Store
summary: Get Ios app available languages.
operationId: get_play_app_languages_ios_info_languages_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StoreLanguages'
security:
- APIKeyHeader: []
/ios/developers/{id}:
get:
tags:
- App Store
summary: Get Developer
operationId: get_developer_ios_developers__id__get
parameters:
- description: Developer ID
required: true
schema:
type: string
title: Id
description: Developer ID
example: '1641486560'
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/IosDev'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/developers:
get:
tags:
- App Store
summary: Dev Search
operationId: dev_search_ios_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/IosDev'
type: array
title: Response Dev Search Ios Developers Get
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/developers/{id}/estimates:
get:
tags:
- App Store
summary: Get Apps Estimates
description: Get Google Play apps estimates
operationId: get_apps_estimates_ios_developers__id__estimates_get
parameters:
- description: Developer's ids to return separated by comma(,)
required: true
schema:
type: string
title: Id
description: Developer's ids to return separated by comma(,)
example: '296415947'
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 Ios Developers Id Estimates Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/ios/rankings:
get:
tags:
- App Store
summary: Get App Store rankings data
operationId: get_ios_rankings_ios_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: integer
type: array
title: App
description: App IDs (comma-separated)
name: app
in: query
- description: Platforms (iPhone/iPad, comma-separated)
required: false
schema:
items:
$ref: '#/components/schemas/IosPlatform'
type: array
description: Platforms (iPhone/iPad, comma-separated)
name: platform
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/IosCategory'
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.IosRankingItem__'
text/csv: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
components:
schemas:
IosCategory:
enum:
- GAMES
- GAMES_ACTION
- GAMES_ADVENTURE
- GAMES_ARCADE
- GAMES_BOARD
- GAMES_CARD
- GAMES_CASINO
- GAMES_FAMILY
- GAMES_MUSIC
- GAMES_PUZZLE
- GAMES_RACING
- GAMES_ROLE_PLAYING
- GAMES_SIMULATION
- GAMES_SPORTS
- GAMES_STRATEGY
- GAMES_TRIVIA
- GAMES_WORD
- BOOKS
- BUSINESS
- EDUCATION
- ENTERTAINMENT
- FINANCE
- FOOD_AND_DRINK
- HEALTH_AND_FITNESS
- LIFESTYLE
- MEDICAL
- MUSIC
- NAVIGATION
- NEWS
- PHOTO_AND_VIDEO
- PRODUCTIVITY
- REFERENCE
- SHOPPING
- SOCIAL_NETWORKING
- SPORTS
- TRAVEL
- UTILITIES
- WEATHER
- DEVELOPER_TOOLS
- GRAPHICS_AND_DESIGN
- ALL
title: IosCategory
description: An enumeration.
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
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.
NewIosApp:
properties:
id:
type: string
title: Id
bundle:
type: string
title: Bundle
name:
type: string
title: Name
description_full:
type: string
title: Description Full
published:
type: boolean
title: Published
listing_visible:
type: boolean
title: Listing Visible
category:
type: string
title: Category
category_type:
type: string
title: Category Type
revenue_month:
type: integer
title: Revenue Month
revenue_lifetime:
type: integer
title: Revenue Lifetime
downloads_month:
type: integer
title: Downloads Month
downloads_lifetime:
type: integer
title: Downloads Lifetime
release_date:
type: string
format: date
title: Release Date
update_date:
type: string
format: date
title: Update Date
developer_name:
type: string
title: Developer Name
description_short:
type: string
title: Description Short
whatsnew:
type: string
title: Whatsnew
icon:
type: string
title: Icon
video:
type: string
title: Video
screenshots:
items:
type: string
type: array
title: Screenshots
removal_date:
type: string
format: date
title: Removal Date
version:
type: string
title: Version
size:
type: number
title: Size
rating_count:
type: integer
title: Rating Count
rating_value:
type: number
title: Rating Value
review_count:
type: integer
title: Review Count
rating_avg:
type: number
title: Rating Avg
iap:
type: boolean
title: Iap
chart_info:
$ref: '#/components/schemas/IosChart'
url_appstorespy:
type: string
title: Url Appstorespy
description: Url to AppstoreSpy
email:
items:
type: string
type: array
title: Email
description: App's developer email
url:
type: string
title: Url
description: Link to App Store
policy:
type: string
title: Policy
description: '...'
website:
type: string
title: Website
description: App's website
hosts:
items:
type: string
type: array
title: Hosts
description: App's developer hosts
support:
type: string
title: Support
description: '...'
developer_id:
type: string
title: Developer Id
ads:
allOf:
- $ref: '#/components/schemas/Creatives'
title: Ads
description: App`s ads
advertised:
type: boolean
title: Advertised
description: App is advertised in networks
copyright:
type: string
title: Copyright
description: Copyright
seller:
type: string
title: Seller
description: Seller
transferred:
type: string
title: Transferred
description: The last transfer date as detected by AppstoreSpy
previous_developer_id:
type: string
title: Previous Developer Id
description: Previous developer ID before transfer
previous_developer_name:
type: string
title: Previous Developer Name
description: Previous developer name before transfer
type: object
title: NewIosApp
TypeEnum:
enum:
- APP
- GAME
title: TypeEnum
description: An enumeration.
IosSummarySearchBody:
properties:
q:
type: string
title: Q
description: Query
filter:
$ref: '#/components/schemas/SearchFilterIos'
type: object
required:
- filter
title: IosSummarySearchBody
example:
filter:
name: twitter
published: true
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
ApiResponse_list_models.responses.response.IosRankingItem__:
properties:
data:
items:
$ref: '#/components/schemas/IosRankingItem'
type: array
title: Data
errors:
items:
$ref: '#/components/schemas/DetailedError'
type: array
title: Errors
total_count:
type: inte
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appstorespy/refs/heads/main/openapi/appstorespy-app-store-api-openapi.yml