Introduction
AppEverything API gives you access to:
- Rankings: Apps that show up on ranking lists (ie. Overall, Top Grossing, etc).
- Details: Basic data about each app (data on the app description page). Get data about single app or all apps with one API call.
- Reviews: User reviews associated with each app.
- And more.
Quick Overview
A few quick details about our REST API:
Type | Description |
---|---|
SSL only | We require that all requests are done over SSL. |
UTF-8 encoding | We use UTF-8 everywhere. |
Method | GET for all read calls, PUT to submit a new app. |
Version number | The current version of our API is v1. |
Multi-records format | JSON dictionaries separated by newlines also known as JSON Lines (JSONL). |
Date format | All dates in the API are strings in the following format: YYYY-MM-DD . |
Error handling | Errors are returned using listed HTTP error codes. |
Bulk API requests | Bulk API requests return request ID to validate request: |
Request ID is sent via X-Request-ID HTTP Header. You may get the status of request using Request Status API. |
Compression
Our REST API allows the use of compression on the request and the response, using the standards defined by the HTTP 1.1 specification. Some clients will automatically use compression but for some it has to be turned on manually.
To use compression make sure your requests to our API include the following header
Accept-Encoding: gzip
. Our API will compress the response if this header is specified. For more
information on how to add this header refer to code examples below.
Authentication
Requests to the REST API are protected with HTTP Basic authentication. You must provide your API key to each request made against our API. You can always get a new one here . If you lost your key you can just enter your email again and we will retrieve it for you.
Errors
The API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad input parameter or malformed request. The error message should indicate what is specifically wrong. |
401 | Missing or bad API key (email datageeks[at]appmonsta.com if you need a new API key). |
403 | You're requesting something your subscription doesn't cover (email datageeks[at]appmonsta.com if you'd like to change your subscription). |
404 | The data isn't available yet. This may be because we're still collecting it. |
429 | You've exceeded the rate limit for the API you're trying to access. Wait a little or contact datageeks[at]appmonsta.com. |
500 | Something went wrong on our end. Email us at datageeks[at]appmonsta.com with the details of your API request, and we'll troubleshoot it ASAP. |
Platform Specific Fields
Some of the fields are limited to only a particular platform (either Google Play or App Store). In that case we tag the field description with the appropriate icon:
Icon | Meaning |
---|---|
![]() |
Field available only for Android apps. |
![]() |
Field available only for iOS apps. |
App rankings
General rankings
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/rankings.json?date=2023-11-30&country=US"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/android/rankings.json?date=#{date}&country=#{country_code}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
req_params = {"date": date,
"country": country_code}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/rankings.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/rankings.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/rankings.json?country=$countryCode&date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{
"rank_list": "apps_movers_shakers-ANDROID_WEAR",
"app_name": "Robinhood: Invest in Stock, Crypto, ETF & Coin",
"timestamp": "2018-10-01 17:13:59",
"country": "US",
"price": "Free",
"app_id": "com.robinhood.android",
"rank": 1,
"publisher_id": "Robinhood",
"icon_url": "https://lh3.googleusercontent.com/LvWOyUYOe8xovqUdbIoMCIUnqoW2gInudnwzczSFsCAvP20BqKTFZHWBdTl_j9WdPBPW=w170-rw",
"publisher_name": "Robinhood",
"avg_rating": "4.6"
}
Request all rankings by date and by country. This call returns ranking records with all the available meta-data from the store's ranking list page. The following countries are supported:
AO
, AI
, AL
, AE
, AR
, AM
, AG
, AU
, AT
, AZ
, BE
,
BJ
, BF
, BG
, BH
, BS
, BY
, BZ
, BM
, BO
, BR
, BB
,
BN
, BT
, BW
, CA
, CH
, CL
, CN
, CG
, CO
, CV
, CR
,
KY
, CY
, CZ
, DE
, DM
, DK
, DO
, DZ
, EC
, EG
, ES
,
EE
, FI
, FJ
, FR
, FM
, GB
, GH
, GM
, GW
, GR
, GD
,
GT
, GY
, HK
, HN
, HR
, HU
, ID
, IN
, IE
, IS
, IL
,
IT
, JM
, JO
, JP
, KZ
, KE
, KG
, KH
, KN
, KR
, KW
,
LA
, LB
, LR
, LC
, LK
, LT
, LU
, LV
, MO
, MD
, MG
,
MX
, MK
, ML
, MT
, MN
, MZ
, MR
, MS
, MU
, MW
, MY
,
NA
, NE
, NG
, NI
, NL
, NO
, NP
, NZ
, OM
, PK
, PA
,
PE
, PH
, PW
, PG
, PL
, PT
, PY
, QA
, RO
, RU
, SA
,
SN
, SG
, SB
, SL
, SV
, ST
, SR
, SK
, SI
, SE
, SZ
,
SC
, TC
, TD
, TH
, TJ
, TM
, TT
, TN
, TR
, TW
, TZ
,
UG
, UA
, UY
, US
, UZ
, VC
, VE
, VG
, VN
, YE
, ZA
,
ZW
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/rankings.json?country=<country_code>&date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of any country you've subscribed to. |
E.g.: US , DE , AU , FR , GB , HK , etc. |
||
date | Yes | In the following format: YYYY-MM-DD . |
Response Fields
Field | Description |
---|---|
app_id | The app ID of the app. |
app_name | The name of the app. |
avg_rating | An average of the individual ratings, based on a 1-5 scale. ![]() |
country | The country this ranking list is for; 2 letter country code. |
icon_url | The url of the app icon. |
price | The price of the app, if it can be scraped from the ranking list. |
publisher_id | The ID of the publisher of this app as assigned by the store. |
publisher_name | The display name of the publisher of this app. |
rank | The numerical rank of this app in the given ranking list. Ie, the first app in the list would have 1 for this field, second app would have 2, etc. |
rank_list | The identifier of which ranking list this is for. We try and use whatever identifier the store uses when possible. If not, we use the display name of the ranking list from the store. |
timestamp | Date/hour when ranking was last updated. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Aggregated rankings
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/rankings/aggregate.json?date=2023-11-30&country=US"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/android/rankings/aggregate.json?date=#{date}&country=#{country_code}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
req_params = {"date": date,
"country": country_code}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/rankings/aggregate.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/rankings/aggregate.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/rankings/aggregate.json?country=$countryCode&date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{"ranks":["com.free.daily.horoscope.zodiac.secret","com.valpak.android",
"com.srpinfosoft.Claptoflashlightonoff","com.tuya.smart",...],
"country":"US",
"rank_id":"apps_movers_shakers",
"genre_id":"LIFESTYLE"}
Request aggregated rankings by date and by country. This call returns records with ranked app IDs per country and per genre/category. It's ideal if you're only interested in app rank positions.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/rankings/aggregate.json?country=<country_code>&date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of any country you've subscribed to. |
E.g.: US , DE , AU , FR , GB , HK , etc. |
||
date | Yes | In the following format: YYYY-MM-DD . |
Response Fields
Field | Description |
---|---|
country | The country this ranking list is for; 2 letter country code. |
genre_id | String representing ranking list genre/category, as returned by the store. We force "overall" ID value for top level ranking lists. |
rank_id | Ranking list type (string), which serves as identifier and it's set by stores. |
ranks | A list of ordered app IDs. (array of strings for consistency between iTunes and Google Play stores). |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Ranking genres
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/<store>/rankings/genres.json?date=2023-11-30"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date in YYYY-MM-DD format.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/rankings/genres.json?date=#{date}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date in YYYY-MM-DD format.
req_params = {"date": date}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/rankings/genres.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/rankings/genres.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/rankings/genres.json?date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{"name":"Music & Audio","genre_id":"MUSIC_AND_AUDIO"}
{"name":"Auto & Vehicles","genre_id":"AUTO_AND_VEHICLES"}
{"parent_id":"FAMILY","name":"Family Brain Games","genre_id":"FAMILY_BRAINGAMES"}
Request all available ranking genres (also known as categories) by date. If you use aggregated API call, then this call will map genre IDs to human-readable genre names.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/rankings/genres.json?date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
date | Yes | In the following format: YYYY-MM-DD . |
Response Fields
Field | Description |
---|---|
genre_id | Genre ID of an app present in rankings. |
name | The name of the app. |
parent_id | Parent genre ID (optional). |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Ranking list types
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/<store>/rankings/types.json?date=2023-11-30"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date in YYYY-MM-DD format.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/rankings/types.json?date=#{date}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date in YYYY-MM-DD format.
req_params = {"date": date}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/rankings/types.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/rankings/types.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/rankings/types.json?date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{"rank_id":"topfreeapplications","name":"Top Free"}
{"rank_id":"newapplications","name":"New Applications"}
{"rank_id":"newgameswelove","name":"New Games We Love RSS"}
Request all ranking list types by date. These are ranking list types (names) as defined by the Google Play or iTunes store. If you use aggregated ranks API call, then this call will map ranking types to their human-readable names.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/rankings/types.json?date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
date | Yes | In the following format: YYYY-MM-DD . |
Response Fields
Field | Description |
---|---|
rank _id | Rank ID of an app present in rankings. |
name | The name of the app. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
App IDs for all apps
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" "https://api.appmonsta.com/v1/stores/android/ids"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/ids")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Print one app ID per line
begin
chunk.each_line do |line|
print line
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
request_url = 'https://api.appmonsta.com/v1/stores/%s/ids' % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Print one app ID per line
print line
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "android/ids"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/ids";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Print one app ID per line
echo ($data);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code outputs one app ID per line:
air.com.escapegamesmobi.CuckooBirdRescue
air.elisashopingdressupgames
appinventor.ai_antonello_f_caterino.PoLet500
appinventor.ai_nyanskyaw.Alpha_SVM
ar.com.hermesonline.autoya
ar3plus.siudase.baju
bigdx.adw.slick.purple
biz.buildapps.ahucabs
cm.williamsofttech.gallerylockphotoandvideohideapplock
co.vpsoft.kiribati_newspapers
Get a list of all the app IDs AppMonsta knows about.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/ids
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
Response Fields
One app ID per line.
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Details for a single app
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/details/com.facebook.orca.json?country=US"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
app_id = "com.facebook.orca" # Unique app identifier (bundle ID).
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/details/#{app_id}.json?country=#{country_code}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
app_id = "com.facebook.orca" # Unique app identifier (bundle ID).
req_params = {"country": country_code}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/details/%s.json" % (store, app_id)
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
appId = "com.facebook.orca"; // Unique app identifier (bundle ID).
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/details/" + appId + ".json"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode)
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$appId = "com.facebook.orca"; // Unique app identifier (bundle ID).
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/details/$appId.json?country=US";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one app record and prints it out:
{
"content_rating": "Everyone",
"app_name": "Messenger – Text and Video Chat for Free",
"top_developer": false,
"publisher_id_num": "5629993546372213086",
"requires_os": "Varies with device",
"related": {
"related_apps": [
"com.soundcloud.android",
"com.spotify.music",
"com.facebook.workchat",
...,
"com.facebook.lite",
"com.whatsapp",
"com.viber.voip"
],
"more_from_developer": [
"com.facebook.katana",
"com.facebook.mlite",
...,
"com.facebook.study",
"com.facebook.viewpoints"
]
},
"video_urls": [],
"file_size": "Varies with device",
"publisher_name": "Facebook",
"id": "com.facebook.orca",
"price_currency": "USD",
"genres": [
"Communication"
],
"app_type": "APPLICATION",
"icon_url": "https://lh3.googleusercontent.com/rkBi-WHAI-dzkAIYjGBSMUToUoi6SWKoy9Fu7QybFb6KVOJweb51NNzokTtjod__MzA",
"content_rating_info": "",
"interactive_elements": "Users Interact, Shares Location, Digital Purchases",
"version": "Varies with device",
"publisher_url": "https://www.facebook.com/games/fbmessenger_android/",
"contains_ads": false,
"whats_new": "In efforts to make it easier to connect with businesses on Messenger, we are focusing on more contextual...",
"publisher_id": "Facebook",
"price": "Free",
"screenshot_urls": [
"https://lh3.googleusercontent.com/AG0QK9DwMCnhIMxBzqmCvB8T7YINdg6HzhInEoW5r72f2KaKhJ63TLwnb0GYNrOMICc",
...,
"https://lh3.googleusercontent.com/f-d7nreVZFtpS7d1Fxc6n2RjYeCN1DzXsorep0iv0thslN0akBNk4ATma5FFPK1jnzaQ"
],
"status": "updated",
"publisher_email": "android-support@fb.com",
"description": "Be together whenever with a simple way to text, video chat and rally the group...",
"price_value": 0,
"all_rating": 4.2,
"store_url": "https://play.google.com/store/apps/details?id=com.facebook.orca",
"downloads": "1,000,000,000+",
"publisher_address": "1 Hacker Way\nMenlo Park, CA 94025",
"status_unix_timestamp": 1578526140,
"genre": "Communication",
"privacy_url": "https://m.facebook.com/policy.php",
"editors_choice": true,
"genre_ids": [
"COMMUNICATION"
],
"iap_price_range": "$0.99 - $399.99 per item",
"all_histogram": {
"1": 7649347,
"3": 4624657,
"2": 2246616,
"5": 48309851,
"4": 7605518
},
"release_date": "2014-01-30",
"all_rating_count": 70435991,
"bundle_id": "com.facebook.orca",
"permissions": [
"receive text messages (SMS)",
"change your audio settings",
...,
"control Near Field Communication",
"read the contents of your USB storage",
"control vibration"
],
"status_date": "January 8, 2020",
"genre_id": "COMMUNICATION"
}
Request the most recent app details with the app's unique ID.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/details/<app_id>.json?country=<country_code>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of the country to fetch this app's details for, or ALL if you don't care which country. |
app_id | Yes | The unique app identifier (bundle ID) for the correct store. |
show_dead | No | If show_dead=1 is present, show apps that aren't currently available in the store. |
Response Fields
Field | Description |
---|---|
all_histogram | The histogram breakdown of ratings for all versions of this app. A dictionary with the keys 1-5 (as strings) mapped onto number of reviews with that number of stars. |
all_rating | The average rating for all versions of this app. |
all_rating_count | The number of ratings for all versions of this app. |
all_reviews | The number of reviews for all versions of this app, if available as a summarized number. ![]() |
app_name | The name of the app. |
app_type | Whether the app is categorized as GAME or APPLICATION . ![]() |
bundle_id | The internal bundle identifier of the app binary. |
contains_ads | Whether the app is marked on the store as containing ads or not. ![]() |
content_rating | The age-appropriate content rating of the app. |
content_rating_info | Additional info on content rating of the app if present. ![]() |
current_histogram | The histogram breakdown of ratings for the current version of this app. Should be a dictionary with the keys 1-5 (as strings) mapped onto number of reviews with that number of stars. ![]() |
current_rating | The average rating for the current version of this app. ![]() |
current_rating_count | The number of ratings for the current version of this app. ![]() |
current_reviews | The number of reviews for the current version of this app, if available as a summarized number. ![]() |
description | The text of the description of the app. |
downloads | The number of downloads this app has, if available. ![]() |
editors_choice | Whether the app is marked on the store as an editor's choice or not. ![]() |
file_size | The file size of the downloadable app as a human readable string, if present. Value is displayed as shown in each store. |
file_size_bytes | The size of the app binary in bytes, if present. ![]() |
genre | The primary category of an app, as it appears on the store side. |
genre_id | The ID of the primary category of an app, as returned by the store. |
genres | All categories of an app, as they are returned from the store side. |
genre_ids | List of category IDs of an app, as returned by the store. |
has_game_center | A boolean (0 or 1) indicating whether this app supports Game Center. ![]() |
iap_price_range | Price range of all in-app products available for the app. ![]() |
icon_url | The url of the app icon. |
id | The unique identifier for the app as assigned by the store. |
in_app_purchases | In the iTunes store a list containing all available in-app products. ![]() |
"in_app_purchases": [
{
"rank": "1",
"name": "Town Folk - Skin Pack",
"price": "$0.99"
},
{
"rank": "2",
"name": "City Folk - Skin Pack",
"price": "$0.99"
}
],
interactive_elements | A string containing interactive elements as listed on the app page. ![]() |
is_universal | Whether the app is universal, meaning it's optimized for both iPhone and iPad. ![]() |
languages | Languages that the app supports, as they're defined on the store side. ![]() |
permissions | List of permissions required by this app. ![]() |
"permissions": [
"prevent device from sleeping",
"view network connections",
"find accounts on the device",
"full network access",
"receive data from Internet",
"access extra location provider commands",
"read phone status and identity",
"precise location (GPS and network-based)",
"approximate location (network-based)"
]
price | The price of the app, as displayed on the store side. |
price_currency | Price currency, according to ISO 4271 standard. |
price_value | Price value, expressed as digits only. |
privacy_url | Privacy policy URL provided by the publisher, if present. ![]() |
publisher_address | Physical address of the publisher if listed in the app store. ![]() |
publisher_email | The email address of the publisher of this app, if present. ![]() |
publisher_id | The ID of the publisher of this app as assigned by the store. |
publisher_id_num | The numeric ID of the publisher of this app as assigned by the store. ![]() |
publisher_name | The display name of the publisher of this app. |
publisher_url | The website of the publisher of this app. |
related | A dictionary of related apps as presented by the source system. The keys are an identifier for the section of related apps, such as also_installed . The values are lists of app IDs. |
release_date | String containing app release date in ISO format. |
requires_hardware | A list indicating which hardware is required to run this app. ![]() |
requires_os | A string indicating the minimum OS/platform version this app requires, if present. |
screenshot_urls | An array of screenshot urls. |
seller | App seller name as it appears on Apple’s App Store. ![]() |
status | Indicates an app status, in relationship to its status_date . If it is either "updated" or "released", the app is available for download. If it is "dead", the app is no longer present in the store. |
status_date | The date the app was updated or released, as a string in whatever format it's displayed on the store. |
status_unix_timestamp | The parsed unix timestamp of the status_date field. |
store_url | App store URL. |
support_url | A support url for this app, if it differs from publisher_url . ![]() |
translated_description | Translated app description, when in other language than expected. ![]() |
version | The current version of the app. |
video_urls | An array of urls of demo videos for this app, if present. ![]() |
whats_new | The text of the "What's new in this version" writeup, if present. |
Details for all apps
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/details.json?date=2023-11-30&country=US"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/details.json?date=#{date}&country=#{country_code}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country_code = "US" # Two letter country code.
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
req_params = {"date": date,
"country": "US"}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/details.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
date = 2023-11-30; // Unique app identifier (bundle ID).
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/details.json"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("date", date)
.queryString("country", countryCode)
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/details.json?country=$countryCode&date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one app record per line and prints them out:
{
"content_rating": "Everyone",
"app_name": "Churchbridge Credit Union",
"requires_os": "4.4 and up",
"related": {
"related_apps": [
"com.grppl.android.shell.halifax",
"com.bbva.compassBuzz",
"com.popular.android.mibanco",
"nz.co.kiwibank.mobile",
],
"more_from_developer": []
},
"video_urls": [],
"iap_price_range": "",
"publisher_name": "Churchbridge Credit Union",
"id": "md.classic.sk.churchbridge.mobileapp",
"price_currency": "USD",
"genres": [
"Finance"
],
"app_type": "APPLICATION",
"icon_url": "https://lh3.googleusercontent.com/K-Dvu373lxa1c4KjfZO1reaFmNguzMs7CMDRK-jpUXeXXRfHUjNK2Te275KFrcBnIw",
"content_rating_info": "",
"interactive_elements": "",
"version": "13.5.1",
"publisher_url": "http://www.churchbridgecu.ca",
"whats_new": "Lock'N'Block",
"publisher_id": "Churchbridge Credit Union",
"price": "Free",
"screenshot_urls": [
"https://lh3.googleusercontent.com/IUBvJbfBd6jwkWvoq2RCqBcMkGd2UUt9DNihJDTw8X-Flcxmdhy9Ol5uuaQueAM9JgY",
"https://lh3.googleusercontent.com/BAfxyHOFru8mwP8FdviOQNymqqztb9NNH9kB_-qqqn7DhStJ_N-wqStYqc4n5Zx3tg"
],
"status": "updated",
"publisher_email": "info@churchbridgecu.ca",
"description": "Shopping, on vacation, or from the comfort of your home – get instant and secure access to your accounts, ...",
"price_value": 0,
"all_rating": 5,
"store_url": "https://play.google.com/store/apps/details?id=md.classic.sk.churchbridge.mobileapp",
"downloads": "100+",
"publisher_address": "",
"status_unix_timestamp": 1529367053,
"genre": "Finance",
"bundle_id": "md.classic.sk.churchbridge.mobileapp",
"genre_ids": [
"FINANCE"
],
"all_histogram": {
"1": 0,
"3": 0,
"2": 0,
"5": 7,
"4": 0
},
"release_date": "2016-03-09",
"all_rating_count": 7,
"permissions": [
"prevent device from sleeping",
"install shortcuts",
"view network connections",
"approximate location (network-based)"
],
"status_date": "June 19, 2018",
"genre_id": "FINANCE"
}
Request the most recent app details for all apps.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/details.json?country=<country_code>&date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of the country to fetch app details for, or ALL to fetch details for every app, regardless of country. |
date | Yes | In the following format: YYYY-MM-DD . |
show_dead | No | If show_dead=1 is present, show apps that aren't currently available in the store. |
only_changed | No | If only_changed=1 is present, only show apps that have changed (in any field) since the previous date. |
old_values | No | If old_values=1 then each returned record will have _old_values key holding a dictionary of previous key:value entries. It can be only used in combination with only_changed=1 . |
Response Fields
See previous call, Details for a single app.
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
App publishers
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" "https://api.appmonsta.com/v1/stores/android/publishers.json?date=2023-11-30"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/publishers.json?date=#{date}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Print one app ID per line
begin
chunk.each_line do |line|
print line
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date in YYYY-MM-DD format.
req_params = {"date": date}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
request_url = 'https://api.appmonsta.com/v1/stores/%s/publishers.json' % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Print one app ID per line
print line
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "android/publishers.json"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/publishers.json?date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Print one app ID per line
echo ($data);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{"name":"andavis","url":"http:\/\/www.andavis.de","id":"andavis","address":"","email":"apps@andavis.de"}
{"name":"Air Cab Ltd","url":"http:\/\/aircab.vn","id":"Air Cab Ltd","address":"","email":"aircab.vn@gmail.com"}
{"name":"Right Pulse Works","url":"","id":"Right Pulse Works","address":"","email":"rightpulseapps@gmail.com"}
Get a list of all publishers and their information that AppMonsta knows about.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/publishers.json?date=<date>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
date | Yes | In the following format: YYYY-MM-DD. |
Response Fields
Parameter | Description |
---|---|
name | The display name of the publisher. |
id | The ID of the publisher as assigned by the store. |
url | The website of the publisher. |
address | Physical address of the publisher if listed in the app store. ![]() |
The email address of the publisher of this app, if present. ![]() |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
App availability
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" "https://api.appmonsta.com/v1/stores/android/availability.json?date=2023-11-30"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/availability.json?date=#{date}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
req_params = {"date": date}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
request_url = 'https://api.appmonsta.com/v1/stores/%s/availability.json' % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
date = "2023-11-30"; // Date in YYYY-MM-DD format.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "android/availability.json"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("date", date),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
date = "2023-11-30" # Date to check app details against (YYYY-MM-DD).
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/availability.json?date=$date";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{"app_id":"com.wikia.singlewikia.dragonvale","countries":["FR","DE","JP","US"]}
{"app_id":"com.BLI.CrossTheRoad","countries":["FR","JP","US"]}
{"app_id":"com.singlecase.app","countries":["FR","DE","JP","US"]}
Get a list of all the countries where the app is available. The following countries are supported:
AO
, AI
, AL
, AE
, AR
, AM
, AG
, AU
, AT
, AZ
, BE
,
BJ
, BF
, BG
, BH
, BS
, BY
, BZ
, BM
, BO
, BR
, BB
,
BN
, BT
, BW
, CA
, CH
, CL
, CN
, CG
, CO
, CV
, CR
,
KY
, CY
, CZ
, DE
, DM
, DK
, DO
, DZ
, EC
, EG
, ES
,
EE
, FI
, FJ
, FR
, FM
, GB
, GH
, GM
, GW
, GR
, GD
,
GT
, GY
, HK
, HN
, HR
, HU
, ID
, IN
, IE
, IS
, IL
,
IT
, JM
, JO
, JP
, KZ
, KE
, KG
, KH
, KN
, KR
, KW
,
LA
, LB
, LR
, LC
, LK
, LT
, LU
, LV
, MO
, MD
, MG
,
MX
, MK
, ML
, MT
, MN
, MZ
, MR
, MS
, MU
, MW
, MY
,
NA
, NE
, NG
, NI
, NL
, NO
, NP
, NZ
, OM
, PK
, PA
,
PE
, PH
, PW
, PG
, PL
, PT
, PY
, QA
, RO
, RU
, SA
,
SN
, SG
, SB
, SL
, SV
, ST
, SR
, SK
, SI
, SE
, SZ
,
SC
, TC
, TD
, TH
, TJ
, TM
, TT
, TN
, TR
, TW
, TZ
,
UG
, UA
, UY
, US
, UZ
, VC
, VE
, VG
, VN
, YE
, ZA
,
ZW
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/availability.json
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
date | Yes | In the following format: YYYY-MM-DD. |
Response Fields
Parameter | Description |
---|---|
app_id | The app ID of the app. |
countries | List of country codes where the app is available. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
App estimates
Estimated downloads
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/estimates/downloads.json?date=2023-11-30&country=US&app_id=com.robinhood.android"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/android/estimates/downloads.json?date=#{date}&country=#{country}&app_id=#{app_id}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
req_params = {"date": date,
"country": country,
"app_id": app_id}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/estimates/downloads.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
date = "2023-11-30"; // Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/estimates/downloads.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.queryString("app_id", app_id),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
$appId = "com.robinhood.android"; // Unique app or bundle id.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/estimates/downloads.json?country=$countryCode&date=$date&app_id=$appId";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{
"app_name": "Robinhood: Invest in Stock, Crypto, ETF & Coin",
"country": "US",
"app_id": "com.robinhood.android",
"publisher_id": "Robinhood",
"publisher_name": "Robinhood",
"estimated_downloads": "1000000",
"category": "FINANCE"
}
Request download estimates for an app by date and by country. This call returns download estimates with all the available meta-data from the store's details list page and our predicted datasets. The following countries are supported:
AE
, AR
, AT
, AU
, BE
, BR
, CA
, CH
, CL
, CN
, CO
, CZ
, DE
, DK
, EC
, EG
, ES
, FI
, FR
, GB
, HK
, HU
, ID
, IE
, IL
, IN
, IT
, JP
, KE
, KR
, LK
, MX
, MY
, NG
, NL
, NO
, NZ
, PE
, PH
, PK
, PL
, PT
, RO
, RU
, SA
, SE
, SG
, TH
, TR
, TW
, US
, UY
, VE
, VN
, ZA
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/estimates/downloads.json?country=<country_code>&date=<date>&app_id=<app_id>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of any country you've subscribed to. |
E.g.: US , DE , AU , FR , GB , HK , etc. |
||
date | Yes | In the following format: YYYY-MM-DD . |
app_id | Yes | Unique app or bundle id |
Response Fields
Field | Description |
---|---|
app_name | The name of the app. |
country | The country this ranking list is for; 2 letter country code. |
category | The category of the app. |
publisher_id | The ID of the publisher of this app as assigned by the store. |
publisher_name | The display name of the publisher of this app. |
estimated_downloads | The estimated downloads of the app for the date requested. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Estimated revenue
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/estimates/revenue.json?date=2023-11-30&country=US&app_id=com.robinhood.android"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/android/estimates/revenue.json?date=#{date}&country=#{country_code}&app_id=#{app_id}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
country = "US" # Two letter country code.
date = "2023-11-30" # Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
req_params = {"date": date,
"country": country,
"app_id": app_id}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/estimates/revenue.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
# Python Main Code Sample
response = requests.get(request_url,
auth=(username, password),
params=req_params,
headers=headers,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
countryCode = "US"; // Two letter country code.
date = "2023-11-30"; // Date in YYYY-MM-DD format.
app_id = "com.robinhood.android" #The unique app identifier (bundle ID) for the correct store.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/estimates/revenue.json";
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("country", countryCode),
.queryString("date", date),
.queryString("app_id", app_id),
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$countryCode = "US"; // Two letter country code.
$date = "2023-11-30"; // Date in YYYY-MM-DD format.
$appId = "com.robinhood.android"; // Unique app or bundle id.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/estimates/downloads.json?country=$countryCode&date=$date&app_id=$appId";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code loads one JSON per line and prints it out:
{
"app_name": "Robinhood: Invest in Stock, Crypto, ETF & Coin",
"country": "US",
"app_id": "com.robinhood.android",
"publisher_id": "Robinhood",
"publisher_name": "Robinhood",
"estimated_revenue": "50000",
"category": "FINANCE"
}
Request revenue estimates for an app by date and by country. This call returns revenue estimates with all the available meta-data from the store's details list page and our predicted datasets. The following countries are supported:
AE
, AR
, AT
, AU
, BE
, BR
, CA
, CH
, CL
, CN
, CO
, CZ
, DE
, DK
, EC
, EG
, ES
, FI
, FR
, GB
, HK
, HU
, ID
, IE
, IL
, IN
, IT
, JP
, KE
, KR
, LK
, MX
, MY
, NG
, NL
, NO
, NZ
, PE
, PH
, PK
, PL
, PT
, RO
, RU
, SA
, SE
, SG
, TH
, TR
, TW
, US
, UY
, VE
, VN
, ZA
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/estimates/revenue.json?country=<country_code>&date=<date>&app_id=<app_id>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
country_code | Yes | The two letter country code of any country you've subscribed to. |
E.g.: US , DE , AU , FR , GB , HK , etc. |
||
date | Yes | In the following format: YYYY-MM-DD . |
app_id | Yes | Unique app or bundle id |
Response Fields
Field | Description |
---|---|
app_name | The name of the app. |
country | The country this ranking list is for; 2 letter country code. |
category | The category of the app. |
publisher_id | The ID of the publisher of this app as assigned by the store. |
publisher_name | The display name of the publisher of this app. |
estimated_revenue | The estimated revenue of the app for the date requested. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Reviews for all apps
Don't forget to replace
{API_KEY}
with your actual API key.
curl --compressed -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/reviews.json?language=en"
require 'net/https'
require 'json'
# Request Parameters
store = "android" # Could be either "android" or "itunes".
language = "en" # Two letter language code.
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your API own key.
password = "X" # Password can be anything.
# Request URL
uri = URI("https://api.appmonsta.com/v1/stores/#{store}/reviews.json?language=#{language}")
# Ruby Main Code Sample
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
request.basic_auth username, password
http.request request do |response|
response.read_body do |chunk|
# Load json object and print it out
begin
chunk.each_line do |line|
json_record = JSON.parse(line)
print json_record
end
rescue JSON::ParserError
end
end
end
end
# This example uses Python Requests library http://docs.python-requests.org/en/master/
import requests
import json
# Request Parameters
store = "android" # Could be either "android" or "itunes".
language = "en" # Two letter language code.
req_params = {"language": language}
# Auth Parameters
username = "{API_KEY}" # Replace {API_KEY} with your own API key.
password = "X" # Password can be anything.
# Request URL
request_url = "https://api.appmonsta.com/v1/stores/%s/reviews.json" % store
# This header turns on compression to reduce the bandwidth usage and transfer time.
headers = {'Accept-Encoding': 'deflate, gzip'}
response = requests.get(request_url,
auth=(username, password),
headers=headers,
params=req_params,
stream=True)
print response.status_code
for line in response.iter_lines():
# Load json object and print it out
json_record = json.loads(line)
print json_record
// This example uses java Unirest library http://unirest.io/java.html
// Request Parameters
store = "android"; // Could be either "android" or "itunes".
language "US"; // Two letter language code.
// Auth Parameters
username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
password = "X"; // Password can be anything.
// Request URL
requestUrl = "https://api.appmonsta.com/v1/stores/" + store + "/reviews.json"
// Java Main Code Sample
HttpResponse response = Unirest.get(requestUrl)
// This header turns on compression to reduce the bandwidth usage and transfer time.
.header("Accept-Encoding", "deflate, gzip")
.basicAuth(username, password)
.queryString("language", language)
.asString();
int status = response.getStatus();
BufferedReader in = new BufferedReader(new InputStreamReader(response.getRawBody()));
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line);
}
<?php
// Request Parameters
$store = "android"; // Could be either "android" or "itunes".
$language = "en"; // Two letter language code.
// Auth Parameters
$username = "{API_KEY}"; // Replace {API_KEY} with your own API key.
$password = "X"; // Password can be anything.
// Request URL
$url = "https://api.appmonsta.com/v1/stores/$store/reviews.json?language=$language";
// PHP Main Code Sample
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
// Load json object and print it out
$json_record = json_decode((string)$data, true);
echo json_encode($json_record);
return strlen($data);
});
curl_exec($ch);
curl_close($ch);
?>
The above code returns a streaming response with one record per line:
{
"rating":5,
"review_id":"Z3A6QU9xcFRPSDNlbTBHR0dTdy1GSkhrWFJjYnl4dThZamhKNm4zTUwtYzBkZW9Ud0owWDBLUDBlRWJZSVFNbUdnbEViNlJRclRCMzZCbXh6eENZUm9hVXc",
"language":"en",
"title":"Heartbleed Detector",
"user_name":"Ken Mosburg",
"app_id":"com.trendmicro.tool.heartbleeddetector",
"review_text":"So far so good, fast, Said Weather Channel & Tune-In Radio apps vulnerable. 4 other weather apps not affected?",
"date":"2014-04-19",
"date_str":"April 19, 2014"
}
Request most recent app reviews dump. This is a bulk API call, returning a streaming response with one record per line.
HTTPS Request
GET https://api.appmonsta.com/v1/stores/<store>/reviews.json?language=<language>
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
language | Yes | Specify language with two letter language code (EN , FR , IT , etc.). |
start_date | No | Only returns reviews we have collected after this date. This can sometimes include few days older records than start_date , since it can take some time for us to scrape the reviews. It can also include even older reviews if they have changed in any way since the first time we have collected them. |
end_date | No | Used with start_date parameter to get reviews we have collected within a particular time frame. If not specified we default this parameter to current date. |
Response Fields
Field | Description |
---|---|
app_id | The app ID of the app this review is for. |
app_version | The app version this review is for, if present. ![]() |
date | Review date as a string in ISO format: YYYY-MM-DD . |
date_str | The original review date format, a string. ![]() |
id | The globally unique reviews ID. For iTunes apps, we use ID provided by App Store. For Android apps we generate them by calculating MD5 hash from: app_id , review_text , user_name , rating , title , language . |
language | The language the review was written in. ![]() |
rating | The star rating the user gave with this review. 1-5. |
review_id | The reviews ID assigned by the store. May be non-unique across apps. |
review_text | The text of the body of the review. |
title | The title/subject line of the review, as written by the user, if there is one. ![]() |
user_name | The display name of the user writing the review. |
Response Headers
Header | Description |
---|---|
X-Request-ID | The ID of the request to validate via Request Status API. |
Add a new app
Don't forget to replace
{API_KEY}
with your actual API key.
curl -i -s -u "{API_KEY}:X" \
"https://api.appmonsta.com/v1/stores/android/details/com.rovio.json" -X PUT
HTTP/1.1 202 ACCEPTED
Date: Thu, 26 Sep 2013 22:18:38 GMT
Server: Apache/2.2.20 (Ubuntu)
Set-Cookie: client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; expires=Fri, 26-Sep-2014 22:18:38 GMT; Path=/
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=utf-8
Tell us about an app we don't know about yet. We do our best to find all apps, but occasionally we miss one (there isn't a complete list for Google Play).
HTTPS Request
PUT https://api.appmonsta.com/v1/stores/<store>/details/<app_id>.json
Request Parameters
Parameter | Required | Value |
---|---|---|
store | Yes | android or itunes . |
app_id | Yes | The ID of the app to add, e.g. com.rovio.angrybirds . |
Response Code
202
if successfully added.
Get Request Status
Validate a bulk API request to see if it is successfully completed or had any errors.
HTTPS Request
https://api.appmonsta.com/v1/request/<request_id>
Request Method: GET
Request Parameters
Parameter | Required | Value |
---|---|---|
request_id | Yes | The ID that's sent via X-Request-ID. |
Response Fields
Field | Description |
---|---|
status | Can be SUCCESS, ERROR, or ABORTED, if the request completed successfully, there are server side errors or the client aborted the request, respectively. |
request_id | Equals to the request ID given as parameter. |
records | Number of records sent as response. Only available on SUCCESS. |
md5 | md5 sum of the response data. This does not include headers, but only the HTTP body sent. Only available on SUCCESS. |
Examples
For a successfully completed request:
{
"status": "SUCCESS",
"records": 10,
"md5": "2909acb51bdb441b1f29f703ae6831e2",
"request_id": "874995c4d75b4cb6bb8bbf6d3ef1d2da"
}
For requests that failed because of server error:
{
"status": "ERROR"
"request_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
For an aborted request:
{
"status": "ABORTED"
"request_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
For an unknown request:
{
"message": "Unknown request id request_id."
}