AppKit API

This api provides you a json representation of the AppKit layout you built in the AppKit Editor.

Manual integration

First of all make sure you have a valid LAYOUT_ID, the LAYOUT_ID can be found in the last step of the AppKit Editor or by clicking on "get code" for the desired layout.

URI:

http://wallkit.instal.com/serve/json/

or with ssl

https://wallkit.instal.com/serve/json/

Description:

Return a JSON representation of the current layout

Parameters:

Required Name Type Description
required layout_id int the id of the layout
optional idfa string the IDFA of the iOS device if present
optional gaid string the GAID of the Android device if present
optional android_id string the ANDROID ID of the Android device if present
optional android_imei string the IMEI of the Android device if present

These parameters are useful for excluding already installed apps from appearing in the API response.

You must use the User profiling enrichment API to obtain this optimization.

Example final url:

http://wallkit.instal.com/serve/json/?layout_id=42&gaid=caa23999-74d1-4635-bba0-164b44a3be3a

Important Notes

Request Headers

You must include the correct http headers for User-Agent and Accept-Language to have the correct content inside the page:

Example user agent:

User-Agent: Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36

Example language:

Accept-Language:"it,en-AU;q=0.7,en;q=0.3"

Curl Example

curl --request GET \
  --url 'http://wallkit.instal.com/serve/json/?layout_id=2561&gaid=caa23999-74d1-4635-bba0-164b44a3be3a' \
  --header 'accept-language: Accept-Language:\"it,en-AU;q=0.7,en;q=0.3\"' \
  --header 'user-agent: Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36'

Httpie Example

http GET 'http://wallkit.instal.com/serve/json/' \
  layout_id==2561 \
  gaid=='caa23999-74d1-4635-bba0-164b44a3be3a' \
  accept-language:'it,en-AU;q=0.7,en;q=0.3' \
  user-agent:'Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36'

Response

The json object has the following top level structure:

{
  "adtype": "WALLKIT",
  "impressionurl": "https://ads.instal.com/api/trkpv/?data_s=....",
  "results": 10,
  "contents": [...]
}
Attribute Type Description
adtype string the type of the ad, is always WALLKIT
impressionurl string the url you must call to count the page view
results int the number of apps the response contains
contents array the array containing the apps to be displayed

When all the contents are displayed correctly you must send an http request to the impressionurl endpoint to count the page view of the adunit.

App Object Serialization

Every object in the contents array is in the following form:

{
            "app_id": "com.musixmatch.android.lyrify",
            "category": "Music & Audio",
            "ctatext": "Install",
            "destinationurl": "https://ads.instal.com/api/v1/servead/app_store_redirect/?adw=1&id=2581&app_store_id=com.musixmatch.android.lyrify",
            "extra": {
                ...
            },
            "iconimage": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/icon/14/10/21/f0d83686b79599647cb32abb2eec6531",
            "mainimage": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/cover/12/12/21/sQgbA715qrYw90jysl_ss5UuxnNRzTjqlHLro79IeOtVhAdwDZ5-cxtM3w-G9lvTfhkw705",
            "rating": "4.4660",
            "screenshots": [
                {
                    "url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/03/09/2cfa593dd273aa9a574d0edeb2950f8b"
                },
                {
                    "url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/03/09/30ecaab5841704a9ab3a7af732ccbd47"
                },
                {
                    "url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/2f80026b2747713ee844064c4fba4a49"
                },
                {
                    "url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/43af03ebb80fddad556fffb6ac5842e6"
                },
                {
                    "url": "http://49b5af5c747982f45fd7-dec8f175b0901987f30693abc46dc353.r35.cf2.rackcdn.com/screenshots/16/06/09/e723f1fdadc2f36b1c637f3a9ba15f9d"
                }
            ],
            "text": "You won't believe just how many lyrics...",
            "title": "Musixmatch - Lyrics & Music"
        }
Attribute Type Description
app_id string the application id
category string the category taken from the app store
ctatext string the text to be used in a call to action button
destinationurl string the url to use when redirecting the user to the store
iconimage string the url of the icon
mainimage string the url of the image to be used as cover. Can be null on some rare case
rating string the average user rating on the app . Can be null on some rare case.
screenshots array an array containing the urls of all the screenshots. every screenshots is represented by an object like {"url": "http://...."}
text string the description for the current app, can contain simple html tags to provide basic formatting, like <p> for paragraphs or <strong> for bold text
title string the title of the app
extra object this object provide extra information for the current app. Every informations inside this object can change without further comunications.