Jump to content
appdb forums

appdb API


Freddy
 Share

Recommended Posts

appdb API is available for everyone and acts on the following URL: https://api.dbservices.to/v1.4/

It responses in JSON with the following objects/arrays:

Quote

success (bool) - true on successful request, false otherwise

errors (array) - array of errors. It is empty if there were no errors

data (array of objects) - a data returned to you in response

Each request need contain the following field:

Quote
action (string) - an action to preform via API
[lang (string)] - a language code to use, default is en

All requests to API can go via POST or GET method, it does not matter.

 

Available API actions:

Getting installation options and features

Appdb caches all installed IPA files to your device.

 

Quote

action (string) ="get_features"

 

It should return array of available features, you should pass them as enable_features[identifier]=value, where value is string for string values, 0/1 for boolean values

{"success":true,"errors":[],"data":[{"identifier":"alongside","question":"Install this app alongside with original one? If yes, enter 5-letter alongside app id and remember it if you want to update it","type":"string","default":"523a5"},{"identifier":"inapp","question":"Patch in-app purchases? App may crash","type":"boolean"}],"total":null}

 

Getting IPA cache status

Appdb caches all installed IPA files to your device.

 

Quote

action (string) ="get_ipa_cache_status"

 

It should return information about cache size, update state and last update time, as well as total number of IPAs in cache.

{
    "success": true,
    "errors": [],
    "data": {
        "size": 33655591,
        "size_hr": "32.10 MB",
        "updated_at": "Thu, 01 Jul 2021 10:47:45 +0000",
        "in_update": false
    },
    "total": 2
}

 

Transfer IPA cache from another device

If you've got new device, you can transfer IPA cache from older one and reinstall everything with one tap with install_from_cache after this

 

Quote

action (string) ="transfer_ipa_cache"

from_lt (string) = source device link token, that can be obtained from get_devices

 

It should return true, if transfer was successful. Destination device cache will be wiped prior to transfer. Source device cache will be wiped after transfer

Clear IPA cache

Clears IPA cache

 

Quote

action (string) ="clear_ipa_cache"

 

It should return true, if clearing was successful

Re-validating IPA cache

Appdb will queue your device regarding remaining IPAs on your device and will adjust cache accordingly

 

Quote

action (string) ="ensure_ipa_cache"

 

 

It should return true, if clearing was successful alongside with UUID of command that was queued to your device

Installing all IPAs from cache 

In order to install all IPAs from cache in case of revocation, you can trigger this method. You can't install separate IPA, only all at once.

 

Quote

action (string) ="install_from_cache"

 

It should return success upon command is submitted to device.

{
    "success": true
}

 

 

Allowing of appdb to manage your (or another) app

By using this method app will became managed by appdb. User should confirm this. You need to queue it only once per app, otherwise it will trigger installation that will fail.

 

Quote

action (string) ="force_app_management"

bundle_id (string) - app bundle id.

name (string) - app display name

 

It should return success upon command is submitted to device.

{"success":true,"errors":[],"total":null}

 

Querying for available voucher activations (for resellers)

By using this method you can check how much voucher activations has left on your reseller account.

 

Quote

action (string) ="get_voucher_limit"

ts (int) - UNIX timestamp of request. Make sure that you have correctly configured time on your server with NTP, requests with delays more than 10 seconds will be rejected.

reseller_id (int) - Your reseller ID that you received when becoming our partner

signature (string) - An request signature, generated as: sha1(ts.RESELLER_SALT.ts)

 

It should return amount of vouchers that is left on your account.

{"success":true,"errors":[],"data":"10","total":null}

Here is example code to generate signature:

<?php
$ts = time();
$salt = 'testsalt';
$signature = sha1($ts.$salt.$ts);

 

Listing available language codes

This method allows you to obtain language codes to be used as lang parameter

 

Quote

action (string) ="get_languages"

 

It should return the following, for example

{"success":true,"errors":[],"data":["en","ru"],"total":null}

 

Check PRO revocation status

You can check PRO revocation status, if your device is configured as PRO. It will return false if PRO was revoked, as well with revocation date.

 

Quote

action (string) ="is_apple_fucking_serious"

 

It should return the following, for example

{"success":false,"data":"Revocation time: 25 Dec 2018 15:37:37 GMT,"total":null}

Get translation for given language

This method allows you to obtain translated strings. It should be used to understand API error codes, etc

 

Quote

action (string) ="get_translation"

That lang parameter that we mentioned above

 

It should return stringified JSON object of a language

{"success":true,"errors":[],"data":"{\".TORRENT MAGNET LINK\":\".torrent magnet link\"}"}

Pages displaying

This method allows you to obtain page titles and IDs, as well as detailed pages information

 

Quote

action (string) ="get_pages"

category (string) - page category. current available categories are: "news"

 

[start (int)] - start of seek, default 0

[length (int)] - length of seek, default 20

OR

[id (int)] - ID of page to display full content

 

Without ID defined, it will return page titles and IDs in DESC order limited to defined limit.

{"success":true,"errors":[],"data":[{"id":"199","title":"Regarding RocketIPA service and our responsibility to crackers"}]}

With ID defined, it will return detailed page object:

{"success":true,"errors":[],"data":{"id":"199","title":"Regarding RocketIPA service and our responsibility to crackers","text":"HTML TEXT","added":"1480872717"}}

 

Device linking

 

During device linking appdb generates secured and digitally signed device management profile. This profile allows appdb to install and update custom apps on device. This profile need to be installed by user to link device to appdb. It's simple, no strange apps, no malware, just digitally signed profile.

To link device via external app, do the following request:

Quote

action (string) ="link"

type (string) = "new" or "control"

[scheme (string)] - optional scheme for URL of redirection, default is "appdblink"

[email (string)] = email of a user

[link_code (string)] - link code

[redirect (int)] - redirect user to profile service or appdblink://link_token=LINK_TOKEN or  appdblink://error=ERROR scheme automatically 0 - not (default), 1 - yes.

 

 

Type is new if you want to link new device to appdb.

Type is control if you want to control already linked device by providing one-time code from it.

 

If user has no devices previously linked to appdb, email is required. If he has, you must provide case-sensitive link code (see below) instead of email.

Result will be following on device link attempt via email:

{"success":true,"errors":[],"data":[{"link_token":"12345678953be87f7c2f38f34caaa86945d2d407","profile_service":"https:\/\/secure.appdb.to\/enroll\/?lt=12345678953be87f7c2f38f34caaa86945d2d407"}]}

After this you must redirect user to profile_service URL to install appdb profile to his device.

 

On device link attempt via code:

{"success":true,"errors":[],"data":[{"link_token":"12345678953be87f7c2f38f34caaa86945d2d407"}]}

Redirect parameter.

If redirect parameter is set to 1, appdb will automatically redirect user to

  • Profile service
  • appdblink://link_token=LINK_TOKEN
  • appdblink://error=ERROR in case of error

 

depending of situation.

Listing of all devices linked to appdb under same email

This method allows you to view devices that you linked to appdb. Auth is required.

 

Quote

action (string) ="get_all_devices"

 

It should return the following. everything is self explainable. appsync=0 (jailbreak undefined), appsync=1 (jailbroken), appsync=2 (not jailbroken)

{"success":true,"errors":[],"data":[{"name":"iPhoneSE","model":"iPhone8,4","ios_version":"12.1.2","appsync":"2","link_token":"xxxxx"}],"total":null}

Getting link code

In order to link another device to appdb using email for already linked device, you need to authorise this action. For this, you can obtain link code from previous device, by using get_link_code API request, or check for error ERROR_PROCEED_TO_EMAIL during device linking - this means that user needs to check his mailbox for email containing link code

 

Device authorisation

 

Device authorisation performed by COOKIE or GET parameter shortly named lt (link token). Save link token from link request and use it in further requests from your app or by Action Ticket ("at" GET parameter).

 

One time link code generation

 

Just do the following API request from authorised device:

 

 

Quote
action (string) ="get_link_code"

And you will receive the following:

{"success":true,"errors":[],"data":"XxXx-XxXx-Xxxx"}

Action Ticket generation

Just do the following API request from authorized device:

 

Quote
action (string) ="get_action_ticket"

And you will receive the following:

{"success":true,"errors":[],"data":{"action_ticket":"t6FH6w7Q9YIFfSMQNcooBTkpOWh7d2rx\/GAdsfsddsfOopSux2gB8t52FTe2WJy\/BS+KKA6UEc3BUXFbyzmfuDLt8=","expires_at":"Tue, 23 May 2017 12:27:56 +0000"},"total":null}

Action Tickets are required to temporary authenticate device in 3rd party application or service. Currently tickets are valid only for one hour. 

PRO voucher activation

Just do the following API request from authorized device or with Action Ticket:

 

Quote
action (string) ="activate_pro"
[at (string)] - Action Ticket, optional
voucher (string) - Voucher code, obtained from appdb reseller

And you will receive the following if voucher activated successfully:

{"success":true,"errors":[],"total":null}

or error, all errors can be explained and translated via get_language API method.

 

PRO reactivation in case of revocation

Just do the following API request from authorised device:

 

Quote
action (string) ="reactivate_pro"

And you will receive the following if reactivation has been scheduled successfully:

{"success":true,"errors":[],"total":null}

or error, all errors can be explained and translated via get_language API method.

PRO voucher validation

No auth required.

 

Quote
action (string) ="validate_voucher"
voucher (string) - Voucher code, obtained from appdb reseller

And you will receive the following if voucher can be activated normally:

{"success":true,"errors":[],"total":null}

or error, all errors can be explained and translated via get_language API method.

 

Device unlinking

 

Usually to unlink device user just need to remove appdb profile from Settings app in his phone while he is connected to internet. If he haven't done this, there is another option:

Use Manual Unlink Profile, just redirect user to https://secure.appdb.to/manual-unlink/

To unlink PC or another device, or remove ability current device to control another device, do the following:

Quote
action (string) ="unlink"
[device_link_token (string)] - a link token of device that you want to unlink

 

This request will result in clearing of cookies or/and device removal from appdb database

 

DO NOT USE THIS REQUEST TO UNLINK CURRENT IDEVICE, THE ONLY CORRECT WAY IS TO REMOVE PROFILE FROM SETTINGS APP.

 

Content listings/search - to list apps in category, in selected order, descending.

 

Parameters:

Quote

action (string) ="search"

type (string) = "ios", "osx", "cydia", "books" - select what you need

[price (int)] = 1 for paid content, 2 for free content, default is 0 - everything

[genre (int)] - genre ID to search, default is 0  - everything

[dev (int)] - developer ID to search, default is 0 - everything

[bundle_ids (array of strings)] - bundle IDs to search, search performed by exact match. default is nothing

[q (string)] - query to search in app name. You can search from 2 symbols. Default is empty, so API lists all latest apps

[order (string)] - ordering of results can be added, clicks_day, clicks_week, clicks_month, clicks_year, clicks_all. Default is added. Clicks actually means downloads, but we are too lazy to edit this name.

[page (int)] - a number of next set of search results. By default, API returns 25 elements. To show next 25, you must set page to 2, then 3, etc.

[trackid (int)] - content ID

 

 

Return example:

{"success":true,"errors":[],"data":[{"trackid":"541164041","version":"1.2.2","price":"Free","store":"us","genre_id":"6007","added":"1415289827","artist_id":"298856275","image":"http:\/\/a2.mzstatic.com\/us\/r30\/Purple3\/v4\/cd\/3e\/39\/cd3e39da-b9d2-ef82-9d48-64c55efacd0c\/icon175x175.png","name":"Office Mobile - replaced by new apps","pname":"Microsoft Corporation","last_parse_itunes":"..various itunes information in json format.."}]}

Self explainable.

 

Links to external file hosters - to get links to external file hosters

 

Parameters:

Quote

action (string) ="get_links"

type (string) = "ios", "osx", "cydia", "books" - select what you need

trackids (array) - array of track IDs of apps from "search" request

 

 

Return example:

{"success":true,"errors":[],"data":{"343200656":{"4.3.1":[{"id":"3882328","is_compatible":{"result":"no","reason":"Device type mismatch"},"no_redirection":false,"host":"turbobit.net","link":"https:\/\/appdb.to\/redirector.php?t=2UKvlv%2BTypAmd4YatceDiOmtauYv0kJlT2iCIwHxUta4VTkBKJsyFxPdpHQN7cIJX5FKTGjBLuD6Tn%2Fd3L1DgTqfpFsKawslWriNwm%2F1xL6FfRxoIbINr%2Fyu5MHTbVnOxnnQ4rzPURbhB0Qu4B8w%2BMntuUrpbENX5vdgbxrXQtv7aVmpNnqSNEQChBMwmWkzvMQkMsCUqKFpOJrnRbirkyUO2y2G4lY%2FE6g8UTjoYiTDtxIMfjVf3V9X0HjZkgT7bng3k50gnbRe%2FvtxqVAnPg%3D%3D","cracker":"kOtyara","verified":true,"di_compatible":true,"protected":"0"},{"id":"3882327","no_redirection":false,"host":"fcore.eu","link":"https:\/\/appdb.to\/redirector.php?t=2UKvlv%2BTypAmd4YatceDiOmtauYv0kJlT2iCIwHxUta4VTkBKJsyFxPdpHQN7cIJ6girn4SvLh75BnAJDP0ORxdw%2F79%2FJQedbwuczXEehL7xC%2FgpTGD9jwG9zjERP%2F3Iy9KvT8we8aax3Hd71FJwf4KA%2FWKXFT8%2FI4WzPvhEIhnFUXrWfvV%2F0qHMZTJiQjFdUWAzntfkkI8Er1TfwY6%2FvkN%2FdpATXKJk3Kx9mMsu%2BmKfs1RRfchJWZz81c5vjTeM","cracker":"kOtyara","verified":true,"di_compatible":false,"protected":"0"},{"id":"3882326","no_redirection":false,"host":"nx2.uploadlw.com","link":"https:\/\/appdb.to\/redirector.php?t=2UKvlv%2BTypAmd4YatceDiOmtauYv0kJlT2iCIwHxUta4VTkBKJsyFxPdpHQN7cIJ2qDM7yQBsJQR7jAcY3jkqPo7ghO1H9L3l9Fdbh0aTXI9%2B%2F%2BypscpIxV3VBupSsv6A2IfrBjOh77s8tmW2cySlTpUjxIl8a5z7TteSfmnkb0V9ykWNgRH9cS78E86U29vi7S2QILm%2FWL1g7Wmi4aCd8q9qgUv2V7lkcyo5HYyUqt1t1jssHis4al4jwEsRYTNlR0kC%2BhlMY45CtMGNKgASw%3D%3D","cracker":"kOtyara","verified":true,"di_compatible":false,"protected":"0"},{"id":"3882352","no_redirection":false,"host":"fcore.eu","link":"https:\/\/appdb.to\/redirector.php?t=2UKvlv%2BTypAmd4YatceDiOmtauYv0kJlT2iCIwHxUta4VTkBKJsyFxPdpHQN7cIJF8vQh5%2FxdKCnQnwz%2BBsjWQ5JzHdtF7wb82oRNIwIeNXxC%2FgpTGD9jwG9zjERP%2F3Iy9KvT8we8aax3Hd71FJwf4KA%2FWKXFT8%2FI4WzPvhEIhnFUXrWfvV%2F0qHMZTJiQjFdUWAzntfkkI8Er1TfwY6%2FvkN%2FdpATXKJk3Kx9mMsu%2BmKfs1RRfchJWZz81c5vjTeM","cracker":"Locophone-ICPDA","verified":true,"di_compatible":false,"protected":"0"}}]}

Where data is associative array of trackid=>version=>link details.

 

Please take a look on di_compatible value, if it is true, you can perform install request to install app on client's device.

link may be following:

  • @ - link is protected and there is no way to go to it, only trigger install from it
  • ticket://TICKET - link requires temporary redirection, see process_redirect API method
  • any other - plain HTTP(S) or any other protocol link that you may follow

Note: If device is linked to appdb and your client app authorized to manage it, it will be redirected instantly, otherwise user will wait for some seconds before redirection.

Link ticket handling - this is required when link returned by get_links API contains ticket:// scheme. You need to call this API.

Parameters:

Quote

action (string) ="process_redirect"

t (string) - link ticket ticket://TICKET from get_links API

OR

rt (string) - a redirection ticket obtained from this API

 

It works as following:

Firstly you provide t - link ticket to this method, it gives you how many seconds you need to wait (wait parameter in answer in seconds) and redirection ticket (redirection_ticket parameter of answer), after %wait% seconds you call the same API, but with rt parameter with redirection ticket. Then API responds with plaintext link in link parameter of response.

App features query (get_features) 0 step prior to app installation (if device configuration contains ask_for_installation_options key =1) 

Revocation protection validation - 1st step prior to app installation - this is required every time you try to install app from appdb. Firstly you check revocation protection, then, if it succeeded, appdb allows you to install an app. Device auth required.

Parameters:

Quote

action (string) ="get_protection_validation_id"

 

 

Returns success and validation_id in data property. Please note that it may be empty string, because AppleTVs can not validate revocation protection, so you should give up on it and proceed to app installation with empty validation_id.

{"success":true,"errors":[],"data":"%REVOCATION_VALIDATION_ID_HERE%"}}

App installation - 2nd step, installation itself - to install app on linked client device from di_compatible link. Device auth required. It must to be triggered approximately after 10 seconds of requesting of get_protection_validation_id. Usually validation happens within 2-3 seconds.

Please note that app installation requires two phases - protection validation and then installation itself.

Parameters:

Quote

action (string) ="install"

 

fpdi_ticket (string) - a FairPlay Direct Installer Ticket

link (string) - plaintext link to file

or

id (int) - an ID of link from "get_links" request or from installation ticket generated by appdb

type (string) = "ios" or "cydia", "MyAppStore" - an app type

validation_id (string) - a revocation protection validation ID that you received via "get_protection_validation_id" request

[link (string)] - an optional parameter to override download link.

 

Additional params:

[enable_features array- associative array of identifer=>feature value that you've got from get_features request

 

 

 

Returns success, if installation was queued.

Note: If you received "PROTECTION_NOT_VALIDATED" error - this means that device is unable to validate revocation protection settings, and you should redirect user to this manual.

 

Custom app installation (only of already signed applications to be ready to deployed to devices) - to install app on linked client device from any provided URL (even local on device). Device authorization required.

 

Parameters:

Quote

action (string) ="custom_install"

plist (string) - base64 encoded Info.plist converted to JSON. file from Payload/{application.name}/Info.plist

link (string) - URL of IPA file, can be local, e.g. http://localhost:blabla

icon (string) - URL of IPA icon, can be local

 

 

Returns success on successful install request.

 

Note: If you received "UNKNOWN_DEVICE_STATE" error - this means that appdb does not know is device jailbroken or not. You need to configure device features using "configure" request described below.

 

Device features configuration - to configure features for this device on appdb. Device authorization required.

 

Parameters:

Quote

action (string) ="configure"

params (associative array of key=>value).

 

 

There are many params that can be configured:

 

params[appsync] = yes to set device as jailbroken with appsync and params[appsync] = no to set device as not jailbroken. Default is UNDEFINED.

params[ignore_compatibility] = yes to disable compatibility checks during app installations params[ignore_compatibility] = no to enable them again. Default is NO.

Custom developer identity attachment for non-jailbroken devices that are not using appdb PRO:

  • params[p12] = base64-encoded PKCS12 container with developer private key and certificate issued by Apple,
  • params[p12_password] = plaintext PKCS12 container password,
  • params[provision] - base64-encoded mobile provisioning profile issued by Apple

 

params[clear_developer_entity] = yes used to clear attached developer identity.

params[send_free_provisions] = yes, used to send free provisioning profiles to device again, it may fix inability to launch apps that were installed via Rickpactor (if user did not connect to internet in time)

params[send_pro_provisions] = yes, used to send PRO provisioning profiles to device again, it may fix inability to launch apps (if user did not connect to internet in time)

params[ask_for_installation_options] = yes used force appdb to ask about installation options on every install. Useful if user wants to install apps alongside or change app names during installation.

params[is_pro_disabled] = yes used force appdb to disable PRO.

params[is_opted_out_from_emails] = yes if you want to opt-out from informational emails from appdb

params[signing_identity_type] = auto, for Automatic selection, development - for development, production - for production

params[disable_protection_checks] = yes used force appdb to give up on revocation protection checks. It is extremely unsafe, because if device will attempt to install revoked application, it will fail and be cached till device reset.

Returns success on successful configuration and the same object as in get_configuration response in data parameter.

 

Get device features configuration - to get device features configuration. Device authorization required.

 

Parameters:

Quote

action (string) ="get_configuration"

 

 

Currently response can contain different keys. They are:

 

appsync - no, yes, unknown

p12 - base64-encoded PFX archive of developer identity, if it was attached by configuration request

p12_password - Plaintext password for PFX archive

provision - base64-encoded contents of attached mobile provisioning profile

is_pro - PRO status of device, yes or no

is_pro_disabled = Is PRO forcibly disabled

pro_till - and RFC date of PRO expiration or null.

ask_for_installation_options - ask for installation options on every install or not

enable_psychic_paper - does appdb preserve entitlements comments or not

Returns this, for example:

{"success":true,"errors":[],"data":{"appsync":"no","ignore_compatibility":"no""ask_for_installation_options":"no","p12":null,"p12_password":null,"provision":null,"is_pro":true,"pro_till":"Thu, 15 Dec 2016 16:17:46 +0000"}}

Clear list of commands to device. Device authorisation required.

 

Parameters:

Quote

action (string) ="clear"

 

 

Returns true.

Retry command to device on failure. Device authorisation required.

 

Parameters:

Quote

action (string) ="retry_command"

uuid (string) - UUID of command from "status" request

 

 

Returns true.

Fix previous command on failure. Device authorisation required. Command that need to be fixed must to be in "failed_fixable" status

 

Parameters:

Quote

action (string) ="fix_command"

uuid (string) - UUID of command from "status" request

 

 

Returns true.

Get device status (latest commands) - to commands queued to device in last 24h. Device authorisation required.

 

Parameters:

Quote

action (string) ="get_status"

[uuids (array of string)] = UUIDs of commands

 

 

Returns this, for example:

{"success":true,"errors":[],"data":[{"uuid":"6DAAE0F5-517E-XXXX-XXXX-B6B2B186C537","added":"1426448644","acknowledged":"1426448650","status":"ok","type":"install_app","params":"{\"manifest_uri\":\"https:\\\/\\\/blah\",\"purpose\":\"Installation of resigned app\"}"},{"uuid":"3A96FFE2-XXXX-XXXX-87AF-316B1A12A331","added":"1426448517","acknowledged":"1426448525","status":"Compatible","type":"linked_device_info","params":"{\"callbacks\":{\"install_app\":\"\"},\"purpose\":\"App installation with compatibility check and cloud resigning\"}"},{"uuid":"631FAA1D-XXXX-XXXX-AE32-EC897849B95C","added":"1426448429","acknowledged":"1426448433","status":"ok","type":"install_app","params":"{\"manifest_uri\":\"https:\\\/\\\/secure.appdb.to\\\/s\\\/blah\",\"purpose\":\"Installation for jailbroken device\"}"},{"uuid":"65B23AC8-04DC-XXXX-XXXX-C59F5B1BA698","added":"1426448421","acknowledged":"1426448429","status":"Compatible","type":"linked_device_info","params":"{\"callbacks\":{\"install_app\":\"https:\\\/\\\/secure.appdb.to\\\/s\\\/blah\"},\"purpose\":\"App installation with compatibility check\"}"}]}

 

 

Check apps that were installed by appdb or managed by appdb - you can check apps that were installed via appdb for linked device. Device authorisation required. To check updates you need to perform 2 requests:

1) Obtain secure request ticket.

2) Wait for response from device.

 

To get request ticket do the following:

 

Parameters:

Quote
action (string) ="get_appdb_apps_bundle_ids_ticket"

 

 

Returns success and base64-encoded appdb apps bundle ids request ticket in data key:

{"success":true,"errors":[],"data":"GqcHpE5XdEredacted"}

To receive updates for this ticket:

Parameters:

Quote

action (string) ="get_appdb_apps_bundle_ids"

t (string) - a secure update ticket from get_appdb_apps_bundle_ids_ticket request

 

 

Response:

Responses with array of bundle_id apps in data key:

{"success":true,"errors":[],"data":["to.appdb.app","to.appdb.app2"]}

 

Updates checking - you can check updates for linked device. Device authorisation required. To check updates you need to perform 2 requests:

1) Obtain secure update ticket.

2) Wait for response from device.

 

To get update ticket do the following:

 

Parameters:

Quote
action (string) ="get_update_ticket"

 

 

Returns success and base64-encoded update ticket in data key:

{"success":true,"errors":[],"data":"GqcHpE5XdEredacted"}

To receive updates for this ticket:

Parameters:

Quote

action (string) ="get_updates"

t (string) - a secure update ticket from get_update_ticket request

 

 

Response:

Responses with array of updateable apps in data key:

{"success":true,"errors":[],"data":[{"alongside_id":"off1","trackid":"868692227","image":"http:\/\/a2.mzstatic.com\/us\/r30\/Purple3\/v4\/79\/e1\/06\/79e10607-96cd-04ad-2864-52c0482fedf9\/icon175x175.jpeg","name":"Goat Simulator","type":"ios","version_old":"1.0.1","version_new":"1.0.3","updateable":false}]}

Please take a look at updateable value in result array. If it is true, app update found and this app can be updated via appdb with install request. If it is false, app update found, but app can not be updated via appdb because it was installed from external source (appstore or OTA distribution). In this case user must remove app and install it from appdb.

Or you can use cydia tweaks to bypass this limitation (and it will be less secure).

 

Or with common error "NOT_READY" - it means that you need to wait a bit (for example, one sec) and request get_updates again:

{"success":false,"errors":["NOT_READY"]}

Genres listing - to list content genres on appdb

 

Parameters:

Quote
action (string) ="list_genres"

 

 

Return example:

{"success":true,"errors":[],"data":{"ios":{"6018":{"id":"6018","name":Books","content_amount:1000}}}

Self explainable.

 

Artists listing - to list content artists on appdb

 

Parameters:

Quote

action (string) ="list_artists"

[ids (array of integers)] - Artist IDs (you can find artist ID in list of "search" response)

[name (string)] - Filter by name, starting from 3 symbols

 

 

Return example:

{"success":true,"errors":[],"data":[{"id":"2065736","name":"Donna Tartt","website":null,"support":null},{"id":"2067983","name":"George R. R. Martin","website":null,"support":null}]} 

Self explainable.

 

Links reporting - to report broken links on appdb. Device authorisation required.

 

Parameters:

Quote

action (string) ="report"

type (string) = type of link, ios, cydia, osx, books

id (int) - ID of link

reason (string) - reason of reporting. E.g. "dead link"

 

 

Responses with success=true on successful report.

 

Content and page promotions - to obtain promoted content

 

Parameters:

Quote

action (string) ="get_promotions"

 

 

Responses with associative array of promotions data. Fields are self-explainable.

{"success":true,"errors":[],"data":[{"apps":{"image":"https:\/\/appdb.to\/cydia_apps\/installer\/icon.png","name":"appdb Universal Installer","type":"cydia","trackid":666,"lead":"appdb Universal Installer allows you to install any apps directly to your mobile device from anywhere."}}]}

Create automatic publish request - you can request appdb to automatically publish app on appdb

 

Parameters:

Quote

action (string) ="create_publish_request"

type (string) = "ios" - currently only iOS type is supported

url (string) - AppStore URL of an app (can be obtained from share menu in AppStore app)

 

 

Will respond with success

{"success":true,"errors":[]}

 

Get automatic app requests and their statuses - get automatic app requests statuses. Pagination is available.

 

Parameters:

Quote

action (string) ="get_publish_requests"

type (string) = "ios" - currently only iOS type is supported

[compatibility (array)] - associative array to limit requests compatibility with device. Currently only compatibility[model] is supported. For example, compatibility[model]=iPad3,4

[include_all (int)] - Include all (not just with status="new"), 1-yes, 0-no, default 0

 

 

Will respond with automatic requests data. Fields are self-explainable.

{"success":true,"errors":[],"data":[{"id":"142","trackid":"1286867331","version":"1.6","image":"https:\/\/is2-ssl.mzstatic.com\/image\/thumb\/Purple128\/v4\/85\/40\/f4\/8540f43b-ad24-a34a-fbef-945e3ad88ace\/source\/100x100bb.jpg","name":"Plane Finder 3D","requesters_amount":"1","price":"5.49","status":"fulfilled","status_changed_at":"1562071700","store":"ee","compatibility_string":"Compatible with iPhone, iPad, iPod. Requires iOS 11.0 or newer.","bundle_id":"com.pinkfroot.planefinder.3d"}]}

MyAppStore API

It can be found in this topic: 

Requests fulfilment API

It can be found in this topic: 

 

 

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
  • 1 month later...
  • 1 month later...
  • 5 weeks later...
  • 1 month later...

API provides a lot :) maybe in a few days i will release this beautiful app :) ...

 

 

ohh.. and here's a little preview: https://www.dropbox.com/s/9kthviiodvrxa8l/IMG_1203.mov?dl=0

Edited by swagginet
Punctuation.
Link to comment
Share on other sites

API provides a lot :) maybe in a few days i will release this beautiful app :) ...

 

 

ohh.. and here's a little preview: https://www.dropbox.com/s/9kthviiodvrxa8l/IMG_1203.mov?dl=0

 

Now, this is gonna be a nice freaking app! Also is there a app for the iPad ?

Link to comment
Share on other sites

  • 3 months later...
  • 3 months later...
  • 2 months later...

The entire process was complicated. Kept saying register PRO but no link to proceed to archive such registration. Most people are not ITC pros, if you can do something to make the experience less complicated and more user friendly people enjoy the experience of what you are all about. Many thanks. 

Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...