AppstoreSpy Events API
The Events API from AppstoreSpy — 1 operation(s) for events.
The Events API from AppstoreSpy — 1 operation(s) for events.
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:appstorespy-events-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 Events API
description: '# Authentication
The Appstorespy API uses API-KEY authentication.
If you do not have an API Key token, you can get it on your account page https://appstorespy.com/account.
An API Key is required to be sent as part of every request in request header.
```
-H ''accept: application/json''
-H ''API-KEY: ''
```
# Agents and MCP
AI agents can call the same endpoints as MCP tools at https://api.appstorespy.com/mcp, with the same API-KEY header and the same credits per call.
https://api.appstorespy.com/agentic-access lists what each operation costs and whether it reads, queues or writes; https://api.appstorespy.com/skills/ holds one agent skill per capability; https://api.appstorespy.com/llms.txt links every agent document.
# Fields
Use the fields parameter to specify which fields should be returned.
Example:
```
Request: fields=name,developer_name,ipd,downloads,...
Response: {name: ..., developer_name: ..., ipd: ..., downloads: ..., ...}
```
Don`t use fields parameter if you need to get all fields.
# Sort
When you use search, you can add a sort parameter.
```
Request: sort=ratingCount
Response: [{name: app1, ratingCount: 4.2}, {name: app2, ratingCount: 4.4}, ...]
```
If you need DESC sorting add "-" before sort parametr.
```
Request: sort=-ratingCount
Response: [{name: app2, ratingCount: 4.4}, {name: app1, ratingCount: 4.2}, ...]
```
# County & Language params
...
# Status codes / Error codes
* 200 OK.
* 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.
* 204 No Content - No data for requested country.
* 403 Forbidden - Your access token is not valid.
* 429 Too Many Requests - Your request rate is over the limit.'
termsOfService: https://appstorespy.com/agreement
contact:
name: AppstoreSpy Support
url: https://appstorespy.com/support
email: support@appstorespy.com
license:
name: Proprietary
url: https://appstorespy.com/agreement
version: 1.1.1
tags:
- name: Events
description: 'LiveOps events Google Play surfaces on an app listing: sales, tournaments, updates and new content.'
externalDocs:
description: Quickstart examples
url: https://github.com/romamo/appstorespy-api-docs
paths:
/play/liveops:
get:
tags:
- Events
summary: Get Google Play LiveOps events for an app
description: Returns the LiveOps events (sales, tournaments, updates, new content) Google Play shows for one app in one country. Responds 202 while a fresh crawl is in progress.
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
example:
- id: '4829099650712359966'
app: com.supercell.brawlstars
store: play
type: Event
title: 'New Brawler: Willow!'
text: Who lives in a dirty swamp under the pier? Willow, the mind controller Brawler, is now available! Check out her powerful mind moves!
image: https://lh3.googleusercontent.com/szyrcQm36axbrcjkFKrOhBfQb0Z4JDvKI5lReOTKQTRj66Kh6fTa90ghG85FgBH7VJg=h300
country: US
state: ACTIVE
crawled: '2023-04-22T05:43:31+00:00'
date_from: '2023-04-10T08:00:00'
date_to: '2023-05-01T08:00:00'
headers:
X-Cost:
description: 'Credits this call cost, after any refund: 0 for a 422, a 429 or a 5xx response, except on job endpoints (the recrawl, liveops and suggestions operations), which are still billed; see https://github.com/romamo/as-rest/issues/99'
schema:
type: integer
X-Remaining-Credits:
description: Credits left on the account after this call
schema:
type: integer
X-Receipt:
description: Id of this call's billing receipt
schema:
type: string
'202':
description: Response in progress
content:
application/json: {}
headers:
X-Cost:
description: 'Credits this call cost, after any refund: 0 for a 422, a 429 or a 5xx response, except on job endpoints (the recrawl, liveops and suggestions operations), which are still billed; see https://github.com/romamo/as-rest/issues/99'
schema:
type: integer
X-Remaining-Credits:
description: Credits left on the account after this call
schema:
type: integer
X-Receipt:
description: Id of this call's billing receipt
schema:
type: string
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
headers:
X-Cost:
description: 'Credits this call cost, after any refund: 0 for a 422, a 429 or a 5xx response, except on job endpoints (the recrawl, liveops and suggestions operations), which are still billed; see https://github.com/romamo/as-rest/issues/99'
schema:
type: integer
X-Remaining-Credits:
description: Credits left on the account after this call
schema:
type: integer
X-Receipt:
description: Id of this call's billing receipt
schema:
type: string
'401':
description: The `API-KEY` header is missing or holds an unknown key
content:
application/json:
schema:
type: object
properties:
message:
type: string
code:
type: integer
required:
- message
- code
example:
message: Wrong key
code: 401
'402':
description: The credit balance does not cover this call's price; nothing was charged
content:
application/json:
schema:
type: string
example: Insufficient credits in your balance
headers:
X-Cost:
description: Price of the call that did not fit; nothing was charged
schema:
type: integer
X-Remaining-Credits:
description: Credits on the account when the call was refused
schema:
type: integer
security:
- APIKeyHeader: []
x-cost-credits: 5
components:
schemas:
AppCountries:
type: string
enum:
- US
- CA
- AT
- BE
- CY
- CZ
- DK
- FI
- FR
- DE
- GR
- HU
- IE
- IT
- NL
- 'NO'
- PL
- PT
- RU
- ES
- SE
- CH
- TR
- UA
- GB
- EG
- IN
- IL
- MA
- NG
- SA
- ZA
- AE
- AU
- HK
- ID
- JP
- KZ
- KR
- MY
- NZ
- PK
- PH
- SG
- TW
- TH
- VN
- AR
- BR
- MX
title: AppCountries
description: An enumeration.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Event:
properties:
id:
type: string
title: Id
app:
type: string
title: App
store:
type: string
title: Store
type:
type: string
title: Type
title:
type: string
title: Title
text:
type: string
title: Text
image:
type: string
title: Image
country:
type: string
title: Country
state:
type: string
title: State
crawled:
type: string
format: date-time
title: Crawled
date_from:
type: string
format: date-time
title: Date From
date_to:
type: string
format: date-time
title: Date To
video:
type: string
title: Video
type: object
required:
- id
- app
- store
- type
- title
- text
- image
- country
- state
- crawled
- date_from
title: Event
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
CacheTime:
type: string
enum:
- 1d
- 7d
- 30d
title: CacheTime
description: An enumeration.
securitySchemes:
APIKeyHeader:
type: apiKey
in: header
name: API-KEY
externalDocs:
description: Guides, examples, a Postman collection and the Spectral ruleset
url: https://github.com/romamo/appstorespy-api-docs
x-provenance:
method: harvested
publisher: AppstoreSpy
source: https://api.appstorespy.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)