NAV Navbar
shell ruby python java php

Introduction

This is the documentation for the MightySignal and AppMonsta APIs. Although the documentation is merged, as of January 2021 the v1 APIs are still on separate domains and require different API keys and authentication. The next version of the API, v2, will merge the APIs under a single authentication system.

In the v1 documentation we will present which endpoints are hosted on mightysignal.com and which are hosted on appmonsta.com.

For access, please contact us to get your API tokens.

Usage

MightySignal runs two APIs, each with unique capabilities and endpoints. In this documentation they are differentiated by the AppMonsta and MightySignal logos. The next version of our API will have a single API host and merged functionality with fewer endpoints.

mightysignal The MightySignal API gives you access to:

appmonsta The AppMonsta API gives you access to:

Product Endpoints

While our API endpoints are separate, we’ll use these icons to help differentiate between MightySignal and AppMonsta endpoints:

Icon Meaning
appmonsta Uses the AppMonsta endpoint
mightysignal Uses the MightySignal endpoint

mightysignal MightySignal Authentication

To authenticate:

# You should pass the header with each request
curl "https://api.mightysignal.com/<your-endpoint-of-interest>"
  -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"

Make sure to replace <your-api-token> with your API token.

Authentication is done via HTTP Headers on each request with your MightySignal API token:

MIGHTYSIGNAL-TOKEN: <your-api-token>

appmonsta AppMonsta Authentication

Requests to the AppMonsta API are protected with HTTP Basic authentication. You must provide your API key to each request made against our API.

Please contact support@mightysignal.com to begin a free trial. If you lost your key you can just enter your email again and we will retrieve it for you.

Details

A few quick details about the APIs:

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.
AppMonsta 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.
AppMonsta 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.

appmonsta Compression

AppMonsta 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. AppMonsta API will compress the response if this header is specified. For more information on how to add this header refer to code examples below.

Platform Specific Fields

Some of the fields are limited to only a particular platform (either Google Play or iTunes App Store). In that case we tag the field description with the appropriate icon:

Icon Meaning AppMonsta API MightySignal API
android_only Field available only for Android apps. ‘android’ ‘android’
itunes_only Field available only for iOS apps. ‘itunes’ ‘ios’

mightysignal Rate limiting

Every MightySignal API token has a limited number of requests it can make in a certain timeframe. Use the rate limit route to see what your token’s limits are.

Example: See your token’s limits

curl "https://api.mightysignal.com/rate-limit"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
    "count": 1,
    "limit": 2500,
    "period": 3600
}

HTTP Request Format

GET /rate-limit

Rate limit information

Key Description
count The number of requests made using the given token during the current window
limit The maximum number of requests allowable in the window for the current token
period The length of the request window (in seconds)

This token has a limit of 2500 requests per hour (hour = 3600 seconds) and only 1 request has been made against it.

Notes

mightysignal Pagination

Example: Alamofire is a ubiquitous iOS SDK. To get all apps using Alamofire, you will need to page through the results.

The first set of results will tell you the total number of results and pages.

curl "https://api.mightysignal.com/ios/app?installed_sdk_id=153"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
        "apps": ["..."],
        "page": 1,
        "page_size": 25,
        "results_count": 25,
        "total_page_count": 3859,
        "total_results_count": 96454
}

You have the 25 results on the first page. There are 96,454 total apps and 3,859 pages of the current page size. To get the next set of results, pass the page query param.

curl "https://api.mightysignal.com/ios/app?installed_sdk_id=153&page=2"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
        "apps": ["..."],
        "page": 2,
        "page_size": 25,
        "results_count": 25,
        "total_page_count": 3859,
        "total_results_count": 96454
}

Routes with a large number of results will be paged and API clients will have to iterate through each page to get all results. Routes that support paging will return page meta information along with the results. Using the query parameters page and page_size, you can iterate through all pages.

Query Parameters

Parameter Default Description
page 1 The page number to return (1-indexed). Unless specified, will always return the first page
page_size 25 The number of results to return per page. (max: 50)

Page Meta Information

Key Description
page The current page of results (configurable by query param)
page_size The maximum number of results that was returned per page (configurable by query param)
results_count The number of results on the current page
total_page_count The total number of pages for all results given the current page size
total_results_count The total number of results that meet the given query

appmonsta 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."
}

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.
403 You’re requesting something your subscription doesn’t cover.
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.
500 Something went wrong on our end.
503 The service went out.

Apps

The Apps API endpoints are the most common way to interact with MightySignal and AppMonsta data. While much of the data is similar there are two important distinctions:

  1. MightySignal endpoints may include SDKs and allows you to filter by SDKs
  2. AppMonsta endpoints may stream complete daily snapshots of an entire App Store

The next version of our API will have a single API host and consolidated endpoints for easier use.

mightysignal Get partial app detail with full SDK details

Example: Retrieve the latest information about Airbnb’s iOS app

curl "https://api.mightysignal.com/ios/app/401626263"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"

curl "https://api.mightysignal.com/ios/app/id/258389"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
   "price" : 0,
   "support_url" : "https://airbnb.com/help",
   "id" : 258389,
   "app_store_id" : 401626263,
   "first_seen_ads_date" : "2016-06-04T07:07:27.000Z",
   "platform" : "ios",
   "current_version_ratings_count" : 4765,
   "categories" : [
      {
         "platform" : "ios",
         "type" : "primary",
         "id" : 6003,
         "name" : "Travel"
      },
      {
         "platform" : "ios",
         "id" : 6012,
         "type" : "secondary",
         "name" : "Lifestyle"
      }
   ],
   "installed_sdks" : [
      {
         "id" : 3,
         "name" : "1PasswordExtension",
         "categories" : [
            "Authentication"
         ],
         "first_seen_date" : "2015-12-10T18:29:06.000-08:00",
         "last_seen_date" : "2018-05-30T17:44:31.000-07:00"
      },
    ...
   ],
   "bundle_identifier" : "com.airbnb.app",
   "current_version" : "18.24",
   "seller" : "Airbnb, Inc.",
   "description" : "Unforgettable travel experiences start with Airbnb. Find travel adventures and new places to go faraway or near to you, and access vacation home rentals, new experiences, and places to visit all around the world. Book everything for your trip, or start earning money as a host. \n\nBOOK TRAVEL EXPERIENCES\nGo on local experiences led by native experts, whether it’s for multiple days or just an afternoon. Explore Seoul's underground music scene, hunt for truffles in a Tuscan forest, or give back to the community with a social impact experience.\n\nBOOK VACATION HOMES\nChoose from over 4 million vacation home rentals across 191+ countries. Search by price, neighborhood, amenities, and more.\n\nPOPULAR DESTINATIONS\nExperience the beautiful sights & find local guides for the perfect vacation:\n• Rio – Explore the birth place of Samba or Hand Glide over the sights\n• Paris – Find your fill in some of the best culinary tours and museums\n• Barcelona – Discover the cities beauty with guided walking tours\n\nFor travelers: \n• Book vacation home rentals and travel experiences for your next solo journey, family vacation, or business trip\n• Search for last minute travel accommodations or long term rentals\n• Save your favorite rental homes, experiences, and places—and invite friends and family to plan the trip with you\n• Add experiences and events to your itinerary\n• Message your host and get directions to your home\n\nFor hosts:\n• Share your extra space or lead experiences that showcase what makes your city great\n• Update your listing and calendar availability\n• Share what’s special about your neighborhood with a host guidebook\n• Message guests and manage their reservations",
   "taken_down" : false,
   "name" : "Airbnb",
   "first_scanned_date" : "2015-12-11T02:29:06.000Z",
   "has_ad_spend" : true,
   "current_version_rating" : "5.0",
   "original_release_date" : "2010-11-10",
   "last_seen_ads_date" : "2018-02-08T16:52:49.000Z",
   "publisher" : {
      "platform" : "ios",
      "id" : 110570,
      "app_store_id" : 401626266,
      "name" : "Airbnb, Inc."
   },
   "last_updated" : "2018-06-13",
   "user_base" : "elite",
   "all_version_rating" : "4.5",
   "has_in_app_purchases" : false,
   "mobile_priority" : "high",
   "uninstalled_sdks" : [
      {
         "id" : 5,
         "categories" : [
            "Ad Attribution"
         ],
         "name" : "Adjust",
         "first_seen_date" : "2015-12-10T18:29:06.000-08:00",
         "last_seen_date" : "2016-03-22T22:25:04.000-07:00"
      },
    ...
   ],
   "all_version_ratings_count" : 181528,
   "last_scanned_date" : "2018-05-31T00:44:31.000Z",
   "icon_url" : "https://robohash.org/Sub-Ex Keylex1350.png?size=350x350\u0026set=set1"
}

HTTP Request Format

GET /<platform>/app/<app_store_id>

where <platform> is the store platform and <app_store_id> is the universal bundle ID from the store. For example, Airbnb’s Apple App Store ID is 401626263, which you can find by looking at its iTunes URL: (https://itunes.apple.com/us/app/airbnb/id401626263). If you don’t already know the iTunes URL of an app, you can find it on the app’s MightySignal page.

The same ID system applies for looking up Android apps. For example, Snapchat’s App Store ID is com.snapchat.android, which you can find by looking at its Google Play URL: (https://play.google.com/store/apps/details?id=com.snapchat.android). If you don’t alreay know the Google Play URL of an app, you can find it on the app’s MightySignal page.

If you have the MightySignal App ID, you can instead do

GET /<platform>/app/id/<mightysignal_id>

where <platform> is the store platform and <mightysignal_id> is the ID from the MightySignal web portal, data feeds, or Salesforce integration.

Some resources have properties which are computationally intensive to calculate (eg. apps and their SDK install histories). Fetching a list of those resources puts a significant strain on our ability to support all API clients simultaneously.

For that reason, certain routes show summary representation of responses, which means it includes a subset of the entire information about the resource. This is often enough information, but making another request to the basic GET request for that resource will return the full information.

Response

Key Description
id The MightySignal ID of the app
name Name of the app
mobile_priority How much the company cares about the app. Currently, the rank is a function of how recently the app has been updated, and whether they advertise on Facebook. high: Updated within the past 2 months or advertised on Facebook. medium: Updated within last 2-4 months. low: Last update more than 4 months ago.
user_base How large the user base is. Can be elite, moderate, strong, or weak.
support_url The support URL
current_version_rating Average rating (out of 5) for the current version
current_version_ratings_count Number of ratings for the current version
all_version_rating Average rating (out of 5) for all versions
all_version_ratings_count Number of ratings for all versions
has_ad_spend We have detected this app advertising on Facebook. Note: If this value is not true, that doesn’t mean that it’s not advertising; it just means we haven’t detected an advertisement.
icon_url The URL of the app store icon
last_updated The last date the app was updated
first_seen_ads_date The date we first saw Facebook ads for this app
last_seen_ads_date The date we last saw Facebook ads for this app
first_scanned_date The date we first scanned this app for SDKs
last_scanned_date The date we last scanned this app for SDKs
has_in_app_purchases Whether the app has in-app purchases
seller Seller name
categories.name The name of the category
catgories.type The type of the category for this app (primary or secondary)
original_release_date Release date of the first version of the app
current_version The current version of the app
price The price (in $)
description App description
installed_sdks.id MightySignal ID of the installed SDK. It’s recommended you store this so you can reference the SDK easily.
installed_sdks.name Name of the installed SDK
installed_sdks.first_seen_date The first date the SDK was seen in the app.
installed_sdks.last_seen_date The last date the SDK was seen in the app
installed_sdks.categories The categories of this SDK.
uninstalled_sdks.id The MightySignal ID of the uninstalled SDK. It’s recommended you store this so you can reference the SDK easily.
uninstalled_sdks.name Name of the uninstalled SDK
uninstalled_sdks.first_seen_date The first date the SDK was seen in the app.
uninstalled_sdks.last_seen_date The last date the SDK was seen in the app
uninstalled_sdks.categories The categories of this SDK.
publisher.id The MightySignal ID of the publisher
publisher.name Name of the publisher
publisher.platform ios
publisher.app_store_id The App Store ID of the publisher
platform ios
app_store_id The App Store ID of the app

appmonsta Get full app details

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
platform = "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/#{platform}/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
platform = "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" % (platform, 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
platform = "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/" + platform + "/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
$platform = "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/$platform/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": [
      "net.zedge.android",
      "com.dewmobile.kuaiya.play",
      "com.playit.videoplayer",
      "com.tencent.mm",
      "...",
      "sms.mms.messages.text.free",
      "com.linkedin.android",
      "com.smscolorful.formessenger.messages",
      "com.ufotosoft.justshot",
      "tv.twitch.android.app"
    ],
    "more_from_developer": [
      "com.facebook.katana",
      "com.facebook.mlite",
      "com.facebook.lite",
      "com.facebook.talk",
      "...",
      "cloud.thesymphony"
    ]
  },
  "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://play-lh.googleusercontent.com/ldcQMpP7OaVmglCF6kGas9cY_K0PsJzSSosx2saw9KF1m3RHaEXpH_9mwBWaYnkmctk",
  "content_rating_info": "",
  "interactive_elements": "Users Interact, Shares Location, In-App Purchases",
  "version": "297.0.0.6.119",
  "publisher_url": "https://www.facebook.com/games/fbmessenger_android/",
  "contains_ads": false,
  "whats_new": "",
  "publisher_id": "Facebook",
  "price": "Free",
  "screenshot_urls": [
    "https://play-lh.googleusercontent.com/bJnl4YLxLmECHVgH3t2jmeCCADomRgOyB1SPHcRtSilBcNbUkbgv8ONdYOm-yfxuhSA",
    "...",
    "https://play-lh.googleusercontent.com/Aw5aVl_x_YBo9YHWGOwd5hguaOggNmT7Iv1U_F4XB6Vc5A4BcWNlSAaoseJvGxdh0A"
  ],
  "status": "updated",
  "publisher_email": "android-support@fb.com",
  "description": "Be together whenever, with our free* all-in-one communication app, complete with unlimited text, voice, video calling and group video chat features. Easily sync your messages and contacts to your Android phone and connect with anyone, anywhere.<br><br>CROSS-APP MESSAGING AND CALLING<br>Connect with your Instagram friends right from Messenger. Simply search for them by name or username to message or call.<br><br>VANISH MODE<br>Send messages that only last for a moment. Opt in to use vanish mode where seen messages disappear after you exit the chat.<br><br>PRIVACY SETTINGS<br>New privacy settings let you choose who can reach you, and where your messages are delivered.<br><br>CUSTOM REACTIONS<br>Lost for words? You can customize your reactions, with lots more emojis to choose from, including 🎉 and 🔥.<br><br>CHAT THEMES<br>Choose from fun themes and colors, like Tie-Dye or Love, to make your chats more personal.<br><br>WATCH TOGETHER<br>Watch videos, tv shows, and movies with your friends over Messenger Video Chat and Rooms when you can't be together. Capture every moment and reaction in real-time.<br><br>GET THE GROUP TOGETHER WITH ROOMS<br>Send a link to group video chat with anyone, even if they don't have Messenger. Host up to 50 people with no time limits.<br><br>FREE* VIDEO CALLS TO STAY CONNECTED<br>Keep your friends and family close with unlimited live video chatting. Host group video calls with up to 8 people, with high-quality audio, high definition video, and interactive video features like face filters.<br><br>UNLIMITED FREE* TEXT & PHONE CALLS<br>Skip exchanging phone numbers and simply send a message to your Facebook friends, even if they’re across the world. Enjoy high-quality voice and text messaging on mobile, tablet, and desktop.<br><br>TURN OFF THE LIGHTS IN DARK MODE<br>Give your eyes some rest with a sleek new look that darkens the colors of the chat interface.<br><br>*RECORD AND SEND VOICE AND VIDEO MESSAGES<br>When text just won't cut it, just hit record and send. Say, sing, show, or shout it out loud.*<br><br>EXPRESS YOURSELF WITH STICKERS, GIFS, AND EMOJIS<br>Use custom stickers to show your creative side. You can even add effects and filters to video calls.<br><br>*SEND FILES, PHOTOS, AND VIDEOS<br>There’s no limit to the number of files you want to share with your friends.*<br><br>PLAN AND MAKE IT HAPPEN<br>Make plans to get together with polls and more. Suggest a meeting spot or tell friends where you are by sharing your location with just a few taps.<br><br>*SEND MONEY SECURELY AND EASILY (within US only)<br>Send and receive money securely and easily with friends and family right in the app by adding your debit card, PayPal account or reloadable prepaid card (single-source cards eligible for sending money only).*<br><br>CHAT WITH BUSINESSES<br>Easily connect with your favorite businesses to make reservations, get customer support, find deals and more.<br><br>BRING SMS INTO MESSENGER<br>No need to open multiple apps to stay in touch. Use one app for SMS and Messenger.<br><br>COMPATIBLE ACROSS PLATFORMS<br>Chat with friends across an array of devices, like desktop, Portal, and others.<br><br>Privacy Policy: https://www.facebook.com/about/privacy/<br><br>LEARN MORE about Messenger texting and group video chat at: http://messenger.com (http://messenger.com/)<br><br>* Data rates apply<br><br>Some Messenger features may not be available in your country or region.",
  "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": 1612198990,
  "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": 8869546,
    "2": 2470149,
    "3": 4552442,
    "4": 7647126,
    "5": 52853420
  },
  "release_date": "2014-01-30",
  "all_rating_count": 76392685,
  "bundle_id": "com.facebook.orca",
  "permissions": [
    "receive text messages (SMS)",
    "change your audio settings",
    "record audio",
    "read your text messages (SMS or MMS)",
    "read calendar events plus confidential information",
    "read your contacts",
    "...",
    "read Google service configuration",
    "receive data from Internet",
    "run at startup",
    "read the contents of your USB storage",
    "control vibration"
  ],
  "status_date": "February 1, 2021",
  "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
platform Yes Required platform indicating which store to check (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. itunes_only
app_name The name of the app.
app_type Whether the app is categorized as GAME or APPLICATION. android_only
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. android_only
content_rating The age-appropriate content rating of the app.
content_rating_info Additional info on content rating of the app if present. android_only
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. itunes_only
current_rating The average rating for the current version of this app. itunes_only
current_rating_count The number of ratings for the current version of this app. itunes_only
current_reviews The number of reviews for the current version of this app, if available as a summarized number. itunes_only
description The text of the description of the app.
downloads The number of downloads this app has, if available. android_only
editors_choice Whether the app is marked on the store as an editor’s choice or not. android_only
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. itunes_only
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. itunes_only
iap_price_range Price range of all in-app products available for the app. android_only
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. itunes_only
"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. android_only
is_universal Whether the app is universal, meaning it’s optimized for both iPhone and iPad. itunes_only
languages Languages that the app supports, as they’re defined on the store side. itunes_only
permissions List of permissions required by this app. android_only
"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. android_only
publisher_address Physical address of the publisher if listed in the app store. android_only
publisher_email The email address of the publisher of this app, if present. android_only
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. android_only
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. itunes_only
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. itunes_only
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. itunes_only
translated_description Translated app description, when in other language than expected. android_only
version The current version of the app.
video_urls An array of urls of demo videos for this app, if present. android_only
whats_new The text of the “What’s new in this version” writeup, if present.

mightysignal Filter apps by publisher or SDK

Using query parameters, you can do basic filtering to find apps that meet your criteria

Example: Get all iOS apps published by Uber Technologies, Inc.

curl "https://api.mightysignal.com/ios/app?publisher_id=200033"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
   "results_count" : 3,
   "total_results_count" : 3,
   "page" : 1,
   "total_page_count" : 1,
   "page_size" : 25,
   "apps" : [
      {
         "original_release_date" : "2010-05-20",
         "has_in_app_purchases" : false,
         "platform" : "ios",
         "rating" : "4.0",
         "has_ad_spend" : true,
         "publisher" : {
            "platform" : "ios",
            "name" : "Uber Technologies, Inc.",
            "id" : 200033
         },
         "mobile_priority" : "high",
         "app_store_id" : 368677368,
         "current_version" : "2.134.3",
         "last_updated" : "2016-05-18",
         "first_seen_ads_date" : "2016-01-15",
         "last_seen_ads_date" : "2016-02-30",
         "first_scanned_date" : "2016-05-15",
         "last_scanned_date" : "2016-07-08",
         "price" : 0,
         "support_url" : "https://support.uber.com/home",
         "seller" : "Uber Technologies, Inc.",
         "current_version_rating" : "3.5",
         "current_version_ratings_count" : 174,
         "all_versions_rating" : "3.5",
         "all_versions_ratings_count" : 8275,
         "user_base" : "elite",
         "categories" : [
            "..."
         ],
         "id" : 596273,
         "name" : "Uber"
      },
      "..."
   ]
}

Example: See a set of apps using the Parse iOS SDK.

curl "https://api.mightysignal.com/ios/app?installed_sdk_id=2362"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
  "apps" : [
    "...",
      {
        "rating" : "4.5",
        "seller" : "Tapps Tecnologia da Informacao LTDA.",
        "last_updated" : "2016-02-10",
        "first_seen_ads_date" : "2016-01-15",
        "last_seen_ads_date" : "2016-02-30",
        "first_scanned_date" : "2016-05-15",
        "last_scanned_date" : "2016-07-08",
        "user_base" : "moderate",
        "support_url" : "http://tappsgames.com/contact/",
        "publisher" : {
           "platform" : "ios",
           "id" : 10795,
           "name" : "Tapps Tecnologia da Informacao LTDA."
        },
        "has_in_app_purchases" : true,
        "original_release_date" : "2011-07-18",
        "name" : "Snake ~ Best Free Classic Worm and Serpent Game",
        "mobile_priority" : "medium",
        "app_store_id" : 446768343,
        "platform" : "ios",
        "has_ad_spend" : false,
        "current_version_rating" : "4.0",
        "current_version_ratings_count" : 200,
        "all_version_rating" : "4.0",
        "all_version_ratings_count" : 2000,
        "id" : 1001590,
        "price" : 0,
        "categories" : [
          "..."
        ],
        "current_version" : "1.6.5"
      },
      "..."
   ],
   "total_results_count" : 25849,
   "results_count" : 25,
   "total_page_count" : 1034,
   "page_size" : 25,
   "page" : 1
}

HTTP Request Format

GET /<platform>/app?<key1>=<value1>,<value2>&<key2>=<value1>,<value2>&...

Query Parameters

Key Description
platform string
Required platform indicating which store to check (android or ios)
publisher_id integer
If set, the result will only include apps released by this publisher
installed_sdk_id integer
If set, the result will only include apps that have the SDK installed
has_ad_spend boolean
If true, the result will only include apps that we know are advertising on Facebook
order_by string
Order results by field. Must be one of:
first_seen_ads_date
last_seen_ads_date
first_scanned_date
last_scanned_date
last_updated
original_release_date.
By default, results are in ascending order. Include - in front of the value to order results in descending order e.g. -last_seen_ads_date

You can use the MightySignal web portal to find the ids for the query parameters.

For example, the publisher_id would be 200033 for Uber Technlogies, Inc. since its MightySignal link is http://mightysignal.com/app/app#/publisher/ios/200033, and the installed_sdk_id for Mixpanel would be 1896 since its MightySignal link is http://mightysignal.com/app/app#/sdk/ios/1896.

Response

Key Description
platform string
Required platform indicating which store to check (android or ios)
results_count See Pagination
total_results_count See Pagination
page See Pagination
total_page_count See Pagination
page_size See Pagination
apps An array of iOS apps. You can look at the response format here

Notes

appmonsta Check 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"
require 'net/https'
require 'json'

# Request Parameters
platform = "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/#{platform}/availability.json")

# 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
platform = "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/availability.json' % platform

# 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
platform = "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/" + platform + "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)
  .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
$platform = "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/$platform/availability.json";

// 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/<platform>/availability.json

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (android or itunes)

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.

appmonsta Get details for all apps

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/android/details.json?date=2021-01-01&country=US"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
country_code = "US"     # Two letter country code.
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
country_code = "US"     # Two letter country code.
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
countryCode = "US";     // Two letter country code.
date = 2021-01-01;      // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$countryCode = "US";     // Two letter country code.
$date = "2021-01-01";    // 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/$platform/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/<platform>/details.json?country=<country_code>&date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

appmonsta Get universal app bundle IDs for all apps

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" "https://api.appmonsta.com/v1/stores/android/ids"
require 'net/https'
require 'json'

# Request Parameters
platform = "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/#{platform}/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
platform = "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' % platform

# 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
platform = "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/" + platform + "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
$platform = "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/$platform/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/<platform>/ids

Request Parameters

Parameter Required Value
platform 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.

appmonsta Add a new app to AppMonsta

Don’t forget to replace {API_KEY} with your AppMonsta 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/<platform>/details/<app_id>.json

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (android or itunes)
app_id Yes The ID of the app to add, e.g. com.rovio.angrybirds.

Response Code

202 if successfully added.

SDKs

SDKs are specific to a given platform. Each app has many SDKs, and each SDK can have many apps. Currently there is no relationship between the iOS and Android versions of SDKs.

mightysignal Get information about an SDK

Example: Get information about the Alamofire iOS SDK

curl "https://api.mightysignal.com/ios/sdk/153"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
    "id": 153,
    "platform": "ios",
    "name": "Alamofire",
    "website": "https://github.com/Alamofire/Alamofire",
    "categories": [
        "Networking"
    ],
    "apps_count": 34253
}

HTTP Request Format

GET /<platform>/sdk/<sdk_id>

where <platform> is either ios or android and <sdk_id> is the MightySignal id of the SDK.

One way to find the <sdk_id> is by using the MightySignal web portal. For example, the <sdk_id> for the Mixpanel iOS SDK would be 1896 since its MightySignal link is http://mightysignal.com/app/app#/sdk/ios/1896.

You can also use the responses from the iOS or Android app routes to find the <sdk_id>.

Response

Key Description
id The MightySignal ID of the SDK. It’s recommended you store this so you can reference the SDK easily.
apps_count The number of apps that contain this SDK for the given platform (iOS or Android)
platform ios or android
summary Brief description of the SDK
website Website of the SDK
categories The categories of this SDK.

mightysignal Get your SDK timeline

Example: Retrieve your timeline based on your email address.

curl "https://api.mightysignal.com/user/timeline?email=you@yourcompany.com&weeks=1"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
[
  {
    "sdk_id": 114,
    "sdk_name": "Braze",
    "platform": "ios",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 1
  },
  {
    "sdk_id": 232,
    "sdk_name": "Branch",
    "platform": "android",
    "activity": "install",
    "week": "2020-08-10",
    "apps_count": 5
  },
  {
    "sdk_id": 6374,
    "sdk_name": "Amplitude",
    "platform": "android",
    "activity": "install",
    "week": "2020-08-10",
    "apps_count": 3
  },
  {
    "sdk_id": 72,
    "sdk_name": "Airship",
    "platform": "android",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 3
  },
  {
    "sdk_id": 118,
    "sdk_name": "Braze",
    "platform": "android",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 1
  },
  {
    "sdk_id": 2042,
    "sdk_name": "Leanplum",
    "platform": "android",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 1
  },
  {
    "sdk_id": 46,
    "sdk_name": "Mixpanel",
    "platform": "android",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 2
  },
  {
    "sdk_id": 55803,
    "sdk_name": "OneSignal",
    "platform": "android",
    "activity": "uninstall",
    "week": "2020-08-10",
    "apps_count": 15
  },
  {
    "sdk_id": 55803,
    "sdk_name": "OneSignal",
    "platform": "android",
    "activity": "install",
    "week": "2020-08-10",
    "apps_count": 16
  }
]

MightySignal timeline produces an array of SDK events that can be useful for polling to get real-time, specific events.

HTTP Request Format (iOS)

GET /user/timeline?email=you@yourcompany.com&weeks=1

where you@yourcompany.com is the email address associated with the MightySignal account for the desired timeline and weeks is the number of weeks ago the events occurred.

Response

Key Description
sdk_id The MightySignal SDK ID
sdk_name The name of the SDK
platform ios or android
activity install or uninstall
week The week when the activity happened
apps_count The number of apps that had the activity during the week

mightysignal Get your SDK feed

Example: Retrieve your feed based on your email address.

curl "https://api.mightysignal.com/user/feed?email=you@yourcompany.com&minutes=15"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
[
    {
        "id": 80070650,
        "sdk_id": 55931,
        "sdk_name": "Google AdMob",
        "sdk_icon": "https://www.google.com/s2/favicons?domain=developers.google.com",
        "platform": "android",
        "activity": "install",
        "app_id": 7255904,
        "app_name": "maruco purene",
        "app_icon": "https://play-lh.googleusercontent.com/NGgB082moY77nG_iOkH80hBtWbOKnuOrT5gyH-rFkZ7o1GGcPoiKWs6LZW5dbKzoNg",
        "time": "2021-01-26T13:59:24.000-08:00"
    },
    {
        "id": 80070513,
        "sdk_id": 55931,
        "sdk_name": "Google AdMob",
        "sdk_icon": "https://www.google.com/s2/favicons?domain=developers.google.com",
        "platform": "android",
        "activity": "uninstall",
        "app_id": 7246345,
        "app_name": "Bravo!",
        "app_icon": "https://play-lh.googleusercontent.com/Re6z3j5iOVOt1RPBeZ2zoMhT0J-7Y0PQXK-DIWyRNMyxTsm7lq_HPuOU-bfjI_3deG4",
        "time": "2021-01-26T13:50:49.000-08:00"
    },
    {
        "id": 80070560,
        "sdk_id": 4485,
        "sdk_name": "Gson",
        "sdk_icon": "https://www.google.com/s2/favicons?domain=search.maven.org",
        "platform": "android",
        "activity": "install",
        "app_id": 7251900,
        "app_name": "SIGMAG SIGTV.FR",
        "app_icon": "https://play-lh.googleusercontent.com/YM_AJ0eR9OpZpbN0JvgnsF7ARoiLUqr-nYgCefUDoIquObeagrXRQe47KvMbMp1daM4",
        "time": "2021-01-26T13:54:34.000-08:00"
    },
    {
        "id": 80070636,
        "sdk_id": 4485,
        "sdk_name": "Gson",
        "sdk_icon": "https://www.google.com/s2/favicons?domain=search.maven.org",
        "platform": "android",
        "activity": "install",
        "app_id": 7255904,
        "app_name": "maruco purene",
        "app_icon": "https://play-lh.googleusercontent.com/NGgB082moY77nG_iOkH80hBtWbOKnuOrT5gyH-rFkZ7o1GGcPoiKWs6LZW5dbKzoNg",
        "time": "2021-01-26T13:59:24.000-08:00"
    },
    {
        "id": 80070633,
        "sdk_id": 57973,
        "sdk_name": "TransistorSoft",
        "sdk_icon": "https://www.google.com/s2/favicons?domain=www.transistorsoft.com",
        "platform": "android",
        "activity": "install",
        "app_id": 7255490,
        "app_name": "Ich Liebe Dich Bilder",
        "app_icon": "https://play-lh.googleusercontent.com/tT-SHgFDaMU4erc9dASvNj7oGAQfG1wPU6cD57zC-TEMJm5A7aCiYZctDM7PaLJKyA",
        "time": "2021-01-26T13:58:48.000-08:00"
    }
]

MightySignal SDK feed produces an array of weekly batches with SDK install and uninstall summaries that can be useful for high-level alerts. It’s the API behind the web portal feed.

HTTP Request Format

GET /user/timeline?email=you@yourcompany.com&minutes=60

where you@yourcompany.com is the email address associated with the MightySignal account for the desired timeline and minutes is the number of minutes ago the event occurred.

Response

Key Description
id Unique identifier for the event
sdk_id The MightySignal SDK ID
sdk_name The name of the SDK
sdk_icon The URL for the SDK icon
platform ios or android
activity install or uninstall
app_id The MightySignal App ID
app_name The name of the App
app_icon The URL for the App icon
time The time that the event was recorded

Publishers

Publishers are specific to a given platform (iOS or Android). Each iOS app has an iOS publisher, and that iOS publisher can have many iOS apps. Each Android app has an Android publisher, and that Android publisher can have many Android apps.

mightysignal Get information about a specific publisher

Example: Retrieve the latest information about Shazam (for iOS)

curl "https://api.mightysignal.com/ios/publisher/207911"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
{
   "app_store_id" : 284993479,
   "websites" : [
      "http://www.shazam.com/iphone",
      "http://www.shazam.com",
      "http://www.shazam.com/music/web/faqs.html?platform=iPhone"
   ],
    "apps" : [
      { "id" : "234", "bundle_id" : "com.bundle.id1" },
      { "id" : "567", "bundle_id" : "com.bundle.id2" }
   ],
   "name" : "Shazam Entertainment Limited",
   "platform" : "ios",
   "id" : 207911,
   "details" : [
      {
         "linkedin_handle" : "company/shazam-entertainment",
         "street_number" : "26",
         "crunchbase_handle" : "organization/shazam-entertainment",
         "country_code" : "GB",
         "ticker" : null,
         "state" : "England",
         "industry_group" : "Technology Hardware & Equipment",
         "postal_code" : "W6 7HA",
         "sub_industry" : "Technology Hardware, Storage & Peripherals",
         "facebook_handle" : "shazam",
         "lng" : "-0.226008",
         "google_rank" : null,
         "name" : "Shazam",
         "sector" : "Information Technology",
         "description" : "Identify the media playing around you, explore the music and TV you love. Discover song lyrics from your favourite artists and albums on Shazam!",
         "twitter_handle" : "Shazam",
         "market_cap" : null,
         "sub_premise" : null,
         "employees" : 321,
         "lat" : "51.494715",
         "twitter_id" : "14772687",
         "alexa_global_rank" : 5944,
         "domain" : "shazam.com",
         "city" : "London",
         "utc_offset" : 1,
         "founded_year" : 1999,
         "company_type" : "private",
         "employees_range" : "251-1000",
         "country" : "United Kingdom",
         "alexa_us_rank" : 5993,
         "street_name" : "Hammersmith Grove",
         "raised" : 136000000,
         "phone" : null,
         "industry" : "Communications Equipment",
         "logo_url" : "https://logo.clearbit.com/shazam.com",
         "annual_revenue" : null,
         "tags" : [
            "Mobile",
            "B2C",
            "Music",
            "Entertainment & Recreation",
            "Entertainment"
         ],
         "email_provider" : false,
         "time_zone" : "Europe/London",
         "state_code" : "England",
         "tech_used" : [
            "facebook_connect",
            "wordpress",
            "mailgun",
            "android",
            "google_apps",
            "youtube",
            "aws_route_53",
            "nginx",
            "ios"
         ],
         "legal_name" : "Shazam Entertainment Ltd."
      }
   ]
}

HTTP Request Format (iOS)

GET /ios/publisher/<publisher_id>

where <publisher_id> is the MightySignal ID of the iOS publisher. You can get it from the MightySignal publisher page (eg. http://mightysignal.com/app/app#/publisher/ios/207911) or from the publisher.id field from the JSON for an iOS app.

HTTP Request Format (Android)

GET /android/publisher/<publisher_id>

where <publisher_id> is the MightySignal ID of the Android publisher. You can get it from the MightySignal publisher page (eg. http://mightysignal.com/app/app#/publisher/android/1162) or from the publisher.id field from the JSON for an Android app.

Response

Key Description
app_store_id or google_play_id The App Store ID or Google Google Play ID of the publisher
websites An array of all websites of all apps of the publisher
name The name of the publisher
platform ios or android
id The MightySignal ID of the publisher
details.linkedin_handle LinkedIn handle
details.street_number Street number
details.crunchbase_handle Crunchbase handle
details.country_code Country code of the country where the publisher is located
details.ticker Stock symbol
details.state State where the publisher is located
details.industry_group Industry
details.postal_code Postal code of the publisher’s location
details.sub_industry Sub-industry
details.facebook_handle Facebook handle
details.lng Longitude of the publisher’s location
details.google_rank Rank on Google
details.name Name
details.sector Sector
details.description Description
details.twitter_handle Twitter handle
details.market_cap Market cap
details.sub_premise Location suite number
details.employees Number of employees
details.alexa_global_rank Global Alexa rank
details.domain Domain
details.city City where the publisher is located
details.utc_offset UTC offset of the publisher’s location
details.founded_year Year the publisher was founded
details.company_type Type of company
details.employees_range Range of employees , eg. 251-1000
details.country Country where the publisher is located
details.alexa_us_rank US Alexa rank
details.street_name Street name
details.raised Money raised ($)
details.phone Phone number
details.industry Industry
details.logo_url URL of logo
details.annual_revenue Annual revenue ($)
details.tags Array of tags describing the publisher’s business
details.email_provider Whether the domain is an email provider
details.time_zone Time zone of the location
details.state_code The state code of the location
details.tech_used Array of web technologies on the developer’s website
details.legal_name Legal name

mightysignal Lookup a publisher by domain

Example: Retrieve the publisher who owns the domain snapchat.com

curl "https://api.mightysignal.com/ios/publisher?domain=snapchat.com"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
[
   {
      "id" : 249735,
      "name" : "Snapchat, Inc.",
      "platform" : "ios",
      "app_store_id" : 446889612
   }
]

HTTP Request Format (iOS)

GET /ios/publisher?domain=<domain>

where <domain> is the domain in question. Make sure to use only the domain, and not the scheme (i.e http/s), subdomains, or path

HTTP Request Format (Android)

GET /android/publisher?domain=<domain>

where <domain> is the domain in question. Make sure to use only the domain, and not the scheme (i.e http/s), subdomains, or path

mightysignal Lookup publisher contacts

Example: Retrieve the contacts of the Android publisher with ID 360

curl "https://api.mightysignal.com/ios/publisher/360/contacts"
    -H "MIGHTYSIGNAL-TOKEN: <your-api-token>"
[
  {
    "clearbitId":"e_d6d2f126-a158-4eee-b44a-de7105867179",
    "givenName":"katherine",
    "familyName":"tassi",
    "fullName":"Katherine Tassi",
    "title":"Managing Counsel, Privacy",
    "email":"katherine.tassi@uber.com",
    "linkedin":"https://www.linkedin.com/in/katherinetassi"
  },
  {
    "clearbitId":"e_a88f586d-74f1-4d49-85b0-7763f11d3804",
    "givenName":"mary",
    "familyName":"demyanritti",
    "fullName":"Mary Ritti",
    "title":"VP Communications",
    "email":"mary@snap.com",
    "linkedin":"in/maryritti"
  }
]

HTTP Request Format (iOS)

GET /ios/publisher/<publisher_id>/contacts

where <publisher_id> is the MightySignal ID of the iOS publisher. You can get it from the MightySignal publisher page (eg. http://mightysignal.com/app/app#/publisher/ios/207911) or from the publisher.id field from the JSON for an iOS app.

HTTP Request Format (Android)

GET /android/publisher/<publisher_id>/contacts

where <publisher_id> is the MightySignal ID of the Android publisher. You can get it from the MightySignal publisher page (eg. http://mightysignal.com/app/app#/publisher/android/1162) or from the publisher.id field from the JSON for an Android app.

appmonsta Get details for all app publishers

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" "https://api.appmonsta.com/v1/stores/android/publishers.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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' % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";    // 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/" + platform + "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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";    // 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/$platform/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/<platform>/publishers.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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. android_only
email The email address of the publisher of this app, if present. android_only

Response Headers

Header Description
X-Request-ID The ID of the request to validate via Request Status API.

Rankings

Rankings are an AppMonsta specialty.Every day we grab the complete worldwide rankings snapshot of every category in every country. Enjoy!

appmonsta General app rankings

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/android/rankings.json?date=2021-01-01&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 = "2021-01-01"     # 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 = "2021-01-01"     # 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 = "2021-01-01";    // 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 = "2021-01-01";    // 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. android_only
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.

appmonsta Aggregated app rankings

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/android/rankings/aggregate.json?date=2021-01-01&country=US"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
country_code = "US"     # Two letter country code.
date = "2021-01-01"     # 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
platform = "android"       # Could be either "android" or "itunes".
country_code = "US"     # Two letter country code.
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
countryCode = "US";     // Two letter country code.
date = "2021-01-01";    // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$countryCode = "US";     // Two letter country code.
$date = "2021-01-01";    // 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/$platform/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/<platform>/rankings/aggregate.json?country=<country_code>&date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

appmonsta Ranking genres

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/<platform>/rankings/genres.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";    // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";    // 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/$platform/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/<platform>/rankings/genres.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

appmonsta Ranking list types

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/<platform>/rankings/types.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";    // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";    // 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/$platform/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/<platform>/rankings/types.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

appmonsta Ranking genres metadata

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/<platform>/rankings/genres.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";    // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";    // 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/$platform/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 ranking genres/categories by date.

HTTPS Request

GET https://api.appmonsta.com/v1/stores/<platform>/rankings/genres.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

appmonsta Ranking types metadata

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/<platform>/rankings/types.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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/#{platform}/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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"     # 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" % platform

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";    // 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/" + platform + "/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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";    // 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/$platform/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 metadata by date.

HTTPS Request

GET https://api.appmonsta.com/v1/stores/<platform>/rankings/types.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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.

Reviews

Reviews are an AppMonsta feature that provides the full text and sentiment analysis of every review submitted on an app. This is a feed; single app queries are not supported.

appmonsta General app reviews

Don’t forget to replace {API_KEY} with your AppMonsta 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
platform = "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/#{platform}/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
platform = "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" % platform

# 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
platform = "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/" + platform + "/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
$platform = "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/$platform/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/<platform>/reviews.json?language=<language>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (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. itunes_only
date Review date as a string in ISO format: YYYY-MM-DD.
date_str The original review date format, a string. android_only
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. android_only
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. itunes_only
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.

App-Ads.txt

The App-Ads.txt endpoint returns the App-Ads.txt dataset for a given platform.

appmonsta App-ads.txt feed

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://api.appmonsta.com/v1/stores/android/app-ads.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"       # If not given then the latest dataset will be downloaded.

# 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/#{platform}/app-ads.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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"         # If not given then the latest dataset will be downloaded

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/app-ads.json?date=%s" % (platform, date)

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";          // If not given then the latest dataset will be downloaded.

// 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/" + platform + "/app-ads.json?date="+ date

// 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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";        // If not given then the latest dataset will be downloaded.

// 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/$platform/app-ads.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 returns a streaming response with one record per line:

{
  "bundle_ids": [
    "com.audionowdigital.player.esat"
  ],
  "app_ids": [
    "com.audionowdigital.player.esat"
  ],
  "publisher_id_num": "4672801629623044337",
  "publisher_url": "http://www.audionow.com",
  "publisher_id": "Radio ESAT",
  "app_ads_records": {
    "variables": [
      {
        "name": "CONTACT",
        "value": "foo@bar.com"
      }
    ],
    "data": [
      {
        "domain": "inmobi.com",
        "publisher_id": "089d8fdb13bd4f958417b38abf5a91b9",
        "ca_id": "83e75a7ae333ca9d",
        "relationship": "DIRECT"
      },
      {
        "domain": "inmobi.com",
        "publisher_id": "7436",
        "ca_id": "83e75a7ae333ca9d",
        "relationship": "DIRECT"
      }
    ]
  }
}

Request most recent app-ads.txt 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/<platform>/app-ads.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (android or itunes).
date No In the following format: YYYY-MM-DD. If not given then the latest dataset will be downloaded. (Optional).

Response Fields

Field Description
bundle_ids A list of bundle IDs (internal bundle identifiers of app binaries).
app_ids A list of app IDs (The unique identifier for the app as assigned by the store).
publisher_id Publisher ID in the app store.
publisher_id_num (New) Numeric publisher ID in the app store. (Android only, not set for all publishers)
publisher_url Publisher’s URL (used for fetching app-ads.txt records).
app_ads_records app-ads.txt records dict, which has two keys, variables and data
variables A list of variables, if present. Each record in the list has the fields below.
data A list of data records. Each record in the list consists of the fields below.
Variables Field Description
name Variable name. Officially supported are currently CONTACT (email, phone number, link to a form, etc.) and SUBDOMAIN.
value Variable value.
Data Field Description
domain Domain name of the advertising system.
publisher_id Publisher’s account ID.
relationship Type of account / relationship.
ca_id Certification Authority ID, if present.

Response Headers

Header Description
X-Request-ID The ID of the request to validate via Request Status API.
Content-Disposition The app-ads snapshot filename.
X-Content-Date The app-ads snapshot date in YYYY/MM/DD format.

IAB

Get Content Taxonomy v2.1 categories for the Google Play and the App Store apps.

appmonsta IAB categories feed

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://apidev.appmonsta.com/v1/stores/android/iab_taxonomy/categories.json?date=2021-01-01"
require 'net/https'
require 'json'

# Request Parameters
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"       # If not given then the latest dataset will be downloaded.

# 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/#{platform}/iab_taxonomy/categories.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
platform = "android"       # Could be either "android" or "itunes".
date = "2021-01-01"         # If not given then the latest dataset will be downloaded

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/iab_taxonomy/categories.json?date=%s" % (platform, date)

# 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
platform = "android";      // Could be either "android" or "itunes".
date = "2021-01-01";          // If not given then the latest dataset will be downloaded.

// 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/" + platform + "/iab_taxonomy/categories.json?date="+ date

// 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
$platform = "android";      // Could be either "android" or "itunes".
$date = "2021-01-01";        // If not given then the latest dataset will be downloaded.

// 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/$platform/iab_taxonomy/categories.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 returns a streaming response with one record per line:

{
  "app_id": "br.com.brasiltracksat.brasiltracksat",
  "genre_id": "AUTO_AND_VEHICLES",
  "iab_taxonomy": {
    [
      "id": "41",
      "name": "Auto Rentals",
      "tier_1": "Automotive",
      "tier_2": "Auto Rentals",
      "tier_3": "",
      "parent": "1",
    ]
  }
}

Request most recent IAB categories 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/<platform>/app-ads.json?date=<date>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (android or itunes).
date No In the following format: YYYY-MM-DD. If not given then the latest dataset will be downloaded. (Optional).

Response Fields

Field Description
app_id A list of app IDs (The unique identifier for the app as assigned by the store).
genre_id The ID of the primary category of an app, as returned by the store.
iab_taxonomy A list of objects containing Content Taxonomy v2.1 with Tiered Categories.
IAB Taxonomy Field Description
id Unique IAB category ID.
name Unique IAB category ID.
tier_1 Tier 1 category.
tier_2 Tier 2 category.
tier_3 Tier 3 category.
parent Parent category ID.

APKs

The APK downloader endpoint requests a decrypted Android app APK file for a given app id. If the app is not available in the default country (“US”) then the country parameter is needed with the relevant country code. Once a request is issued, the response JSON will have a download_url field where the downloaded APK file (and its split files) is going to be available for download.

appmonsta Decrypted APK file downloader

Don’t forget to replace {API_KEY} with your AppMonsta API key.

curl --compressed -u "{API_KEY}:X" \
     "https://apidev.appmonsta.com/v1/stores/<platform>/bin/<app_id>.json?country=<country>&version_code=<version_code>"

The above code returns a streaming response with one record per line:

{
  "app_id": "com.americanexpress.android.acctsvcs.de",
  "download_url": "https://appmonsta-apk-downloads.s3.amazonaws.com/v1/com.americanexpress.de/<code_version>/com.americanexpress.de.zip",
  "status": "Processing",
}

HTTPS Request

GET https://apidev.appmonsta.com/v1/stores/<platform>/bin/<app_id>.json?country=<country>&version_code=<version_code>

Request Parameters

Parameter Required Value
platform Yes Required platform indicating which store to check (android or itunes).
app_id Yes The unique app identifier (bundle ID) for the correct store.
country Yes The two-letter country code, to download in a given country. (Default: US)
version_vode No APK’s version code to download. If not set, the latest will be downloaded. (Optional)

Response Fields

Field Description
app_id The unique app identifier (bundle ID) for the correct store.
download_url Direct file location on S3. The file path is constructed using the following schema:

<s3_prefix>/<app_id>/<build_number>/<app_id>.zip status | Status of the request. It can be Processing or Error.

Support

Email us if you have any questions or encounter any bugs.

If reporting a bug, please include the following information to help us diagnose the problem: