Ranks show your standings in the app store, there are a two different ways to get that data from the API.
- Basic reports – show you ranks across selected countries and apps
- Snapshot reports let you see the full standings of a particular country and category.
Scope: All of the resources in this route require read access in the public scope (public:read).
Generating a ranks report
Request
GET /ranks/{product_ids}/{granularity}/{start_date}/{end_date}?countries={countries}&filter={filter}&tz={tz}&format={format}
Arguments
Field | Type | Description |
---|---|---|
product_ids | Array | One or more product_ids to get ranks for. Separate multiple product_ids with a comma (,).
|
granularity | String | Data granularity, either “hourly” or “daily”. |
start_date | Date | Day to start the report on in format: yyyy-MM-dd. |
end_date | Date | Day to end the report on in format: yyyy-MM-dd. |
countries | Array | One or more countries to get ranks from. Separate multiple iso codes with a semicolon (;). If no country iso is specified ‘US’ will be used. Countries can be found here: /data/countries |
tz | String | (user | utc | est) specifies which timezone to use, defaults to est |
filter | Number | Limit results to ranks in the top N, with N being a number between 1 and 1,000. A filter value of 100 will only include records where the rank position is better than 100 (ex. 25). When blank this defaults to 400.
Not all stores/categories can go as deep as 1,000. |
format | String | Output format: json or csv. Defaults to JSON. |
Response
This route returns a container with request metadata (start, end dates) and an inner containing the ranks for each series. A series represents a particular product’s movement through ranks over time with respect to a given country and category.
Container Representation:
Field | Type | Description |
---|---|---|
start_date | Date | The start date of the report |
end_date | Date | The end date of the report |
dates | Array | Array of dates that are mapped against the series position/delta data below |
data | Array | List of series entries(see below). Each series has a category, country, and product as well as the positions and deltas in array form that correspond to the above dates. |
Series Representation:
Field | Type | Description |
---|---|---|
country | String | ISO code of the country this series is for. |
category | Category | Representation of the category this series is for. |
product_id | Number | The product that this series is for. |
positions | List of rank positions (1-indexed) that map with the dates above | |
deltas | List of rank changes that map with the dates above. The delta is always fromt the prior hour even if the granularity is daily |
Example Response
GET /ranks/41046955155/daily/2019-06-05/2019-06-07/?countries=gb,us { "start_date": "2017-06-05T00:00:00", "end_date": "2017-06-07T00:00:00", "dates": [ "2017-06-05T00:00:00", "2017-06-06T00:00:00", "2017-06-07T00:00:00" ], "data": [ { "country": "US", "category": { "store": "apple", "store_id": 1, "device": "handheld", "device_id": 1, "name": "Games/Family", "subtype": "paid", "id": 7009, "parent_id": 6014 }, "product_id": 5923605, "positions": [ 186, 179, null ], "deltas": [ -3, 2, null ] }, . . . }
Generating a ranks snapshot for a category
Request
GET /ranks/snapshots/{time}/{country}/{category}/{subcategory}/?top={top}
The Public Data API add-on is required for this route.
Arguments
Field | Type | Description |
---|---|---|
time | string | “current” to get the most recent snapshot or a date with an hour that’s within the last 24 hours in format: yyyy-mm-ddTHH.
Important: Requests for dates/times not within the last 24 hours will result in a 404 response. If you need snapshots for earlier dates please contact us. |
country | String | The iso code of the country you’d like to get a snapshot for. Countries can be found here: /data/countries |
category | String | The category_id of the category to get a snapshot for. Categories can be found here: /data/categories |
subcategory | String | The sub-category to get a snapshot for. Options: “free”, “paid”, “topgrossing”. |
count | Number | Number of results to return between 1 – 1,000. This defaults to 400.
Not all stores/categories can go as deep as 1,000. |
start | Number | Result index to start returning results from. Can be used with count to page through a larger resultset. |
Response
The response is a JSON object with the following properties:
Field | Type | Description |
---|---|---|
category | Category | A representation of the category |
country | string | The iso code of the country of the app store. The full name of the country is available in /data/countries. |
timestamp | Date | The time that the snapshot was taken |
page_count | Number | The number of results in this representation |
page_start | Number | The index this page starts on. |
total_count | Number | The total number of entries in this snapshot. |
entries | Array | The top apps, in order |
Example Response
GET /ranks/snapshots/current/us/71/free?count=1000 { "page_count": 10, "page_start": 0, "total_count": 400, "country": "US", "category": { "store": "google_play", "store_id": 2, "device": "Handheld", "device_id": 1, "name": "Tools", "subtype": "Free", "id": 71 }, "timestamp": "2017-06-07T16:00:00", "entries": [ { "id": 5545649, "name": "Brightest Flashlight Freeā¢", "developer": "GoldenShores Technologies, LLC", "icon": "http://lh6.ggpht.com/oxdTH6PDCgkz-6TkodfJc6fK3-xFsz_voyqslO2blEbAP0pow8R32KlS4sTPWS4j3A", "vendor_identifier": "goldenshorestechnologies.brightestflashlight.free", "package_name": "goldenshorestechnologies.brightestflashlight.free", "store_id": 2, "store": "google_play", "release_date": "2016-12-01T00:00:00-05:00", "added_date": "2016-12-01T02:21:09-05:00", "updated_date": "2017-06-04T03:00:00-04:00", "version": "2.3.4", "source": null, "type": "app", "devices": [ "Handheld" ], "price": { "currency": "USD", "price": "0.00" } }, ... }