Freddy Posted November 6, 2014 Report Share Posted November 6, 2014 appdb API is available for everyone and acts on the following URL: https://api.dbservices.to/v1.5/ It responses in JSON with the following objects/arrays: Quote success (bool) - true on successful request, false otherwise errors (array) - array of errors, [code, translated]. 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: Deleting your own apple developer account from appdb New account will be stored if there was no previously attached account. If there was, new data will be replace old attached account. Only passed parameters will be changed Quote action (string) ="delete_plus_dev_account" Should return true upon deletion Attaching your own apple developer account to be used with appdb plus Attaching of account has the following flow: 1) Check that account attached for device linked under your email via get_configuration method, check plus_account value of response object, it will contain status, appleid, and status_text. 2) IF you get null inside plus_account value of get_configuration response, then attach account via edit_plus_dev_account method 3) Request get_configuration method, check status of account. If status is "ok", do nothing. If status is "otp_required", submit one-time-code to edit_plus_dev_account method, if status is "verifying", "new", "otp_provided", repeat 3). If status is "error", act accordingly to status_translated Adding or editing your own apple developer account New account will be stored if there was no previously attached account. If there was, new data will be replace old attached account. Only passed parameters will be changed Quote action (string) ="edit_plus_dev_account" [appleid (string)] - Account apple ID [password (string)] - account password. Please note password is stored on appdb side only during verification. After it will be completed, password will be removed from appdb systems and you will need co configure account again [otp (string)] - verification code received from apple OR [status (string) ] = "new", if you want account to be verified configured again [shared_with_emails (array of strings)] - array of emails to share your developer account with friends Should return true if all conditions are met and account information was updated Getting developer credentials providers (for easy linking API) You will get URL to redirect to and name of provider Quote action (string) ="get_dev_credentials_providers" It should return array of available providers {"success":true,"errors":[],"data":[{"name":"name","href":"https:"}],"total":null} 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 link token by UDID In order to automatically link compatible devices. Appdb will send notification to user every time you use this method, use it only once to get link token and save it in your application! Also user can deny usage of this feature on device features configuration page, so you need to go through regular linking process. Where to find device UDID? Get it by yourself by using configuration profiles, or find it in dbservicesUDID key of app managed configuration (if app was installed via appdb) Quote action (string) ="get_link_token" udid (string) - device UDID client (string) - your app name, can contain letters, digits and space, for example "appdb unofficial client" Returns success and token in data key of response, or error if no device was found. 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, it's limit, update state and last update time, as well as information about 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":{"name":"English","translator":"appdb"}},"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} 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 [brand (string] - services brand, default is "appdb" [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 refund Just do the following API request from authorised device: Quote action (string) ="refund_pro" And you will receive the following if refund has been scheduled successfully: {"success":true,"errors":[],"total":null} 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" type (string) = "ios" or "cydia", "MyAppStore", "altstore", "tvos" - an app type validation_id (string) - a revocation protection validation ID that you received via "get_protection_validation_id" request [fpdi_ticket (string)] - a FairPlay Direct Installer Ticket AND link (string) - plaintext link to file [image (string)] - URL of app icon [bundle_id (string)] - App bundle ID [name (string)] - App name OR id (int) - an ID of link from "get_links" request or from installation ticket generated by appdb [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" [at (string)] - action ticket, if configuring from 3rd party provider [dev_credentials_provider (string)] - name of developer credentials provider Optional in group: [plus_activated_at (string)] - RFC 2822 date of bundled PLUS activation, if requested from credentials provider [plus_transaction_id (string)] - Unique identifier of bundled PLUS purchase [plus_hash (string)] - sha1 hashsum of concatenation plus_transaction_idplus_activated_atPROVIDER_SECRET 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 production certificate issued by Apple, params[p12_password] = plaintext PKCS12 container password, params[provision] - base64-encoded non-wildcard mobile provisioning profile issued by Apple params[wildcard_provision] - base64-encoded wildcard mobile provisioning profile issued by Apple params[dev_p12] = base64-encoded PKCS12 container with developer private key and development certificate issued by Apple, params[dev_p12_password] = plaintext PKCS12 container password, params[dev_provision] - base64-encoded non-wildcard mobile provisioning profile issued by Apple params[dev_wildcard_provision] - base64-encoded wildcard mobile provisioning profile issued by Apple params[clear_developer_entity] = yes used to clear attached developer identity. 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. If used with link_token, also returns 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. Getting altstore repos- to get yours altstore repos (or one repo with JSON data) Parameters: Quote action (string) ="get_altstore_repos" [id (int)] = repository ID, if you want to get specific JSON data of repository [is_public (int)] - get public repos instead of private. 1 -yes, 0 - no (default) Return example: { "success": true, "errors": [], "data": [ { "id": "2", "is_public":"0", "added_at": "Tue, 29 Nov 2022 10:48:28 +0000", "status": "ok", "status_translated": "REPO_STATUS_OK", "name": "UTM Repository", "identifier": "com.utmapp.repos.UTM", "url": "https://alt.getutm.app", "total_apps": "2", "last_checked_at": "Tue, 29 Nov 2022 10:48:28 +0000", "contents":JSON_CONTENTS } ], "total": 1 } Contents will be returned if ID was passed, otherwise not. Contents is JSON object of repository JSON file. Adding/editing altstore repository in your collection - to add or edit repository Parameters: Quote action (string) ="edit_altstore_repo" [id (int)] = repository ID (if editing) url (string) - repository URL OR/AND [is_public (string)] - make it public, 1 - yes, 0 no (default) Returns repository data as in get_altstore_repos Deleting IPA from cache - to delete IPA from cache. Device authorisation required. Parameters: Quote action (string) ="delete_ipa_from_cache" bundle_id (string) = app bundle ID Responses with success=true. 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) [version (string] - Optional version number in the same format as in AppStore 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: Easy developer credentials linking API It can be found in this topic: tj, nedda, rmstorm and 3 others 6 Quote Link to comment Share on other sites More sharing options...
Freddy Posted November 24, 2014 Author Report Share Posted November 24, 2014 Added additional APIs. Doublek420 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted December 11, 2014 Author Report Share Posted December 11, 2014 Added updates APIs. Doublek420 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted January 22, 2015 Author Report Share Posted January 22, 2015 Changes in "install" method - link override added. ZettfoUmp and mitchcoe 1 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted February 25, 2015 Author Report Share Posted February 25, 2015 New methods: device linking, unlinking, one-time-link-code generation Foad 1 Quote Link to comment Share on other sites More sharing options...
Guest Hawkman Posted March 2, 2015 Report Share Posted March 2, 2015 It doesn't update, it says I need an update but it won't update. Quote Link to comment Share on other sites More sharing options...
Guest Guest-St Posted March 2, 2015 Report Share Posted March 2, 2015 I'm also having issues updating as well, it basically tells me my API is outdated, bu doesn't give an option to update. Quote Link to comment Share on other sites More sharing options...
Guest Escobar Posted March 2, 2015 Report Share Posted March 2, 2015 What is happening getting error Quote Link to comment Share on other sites More sharing options...
Freddy Posted March 2, 2015 Author Report Share Posted March 2, 2015 What? It gives you link to this topic where you can find everything you need to update your software to v1.1 of API. Quote Link to comment Share on other sites More sharing options...
buLLeTz Posted March 2, 2015 Report Share Posted March 2, 2015 I am getting below when I click the api above : {"success":false,"errors":["No action specified"]} Quote Link to comment Share on other sites More sharing options...
Freddy Posted March 2, 2015 Author Report Share Posted March 2, 2015 Of course, it is for programmers. Quote Link to comment Share on other sites More sharing options...
Freddy Posted March 2, 2015 Author Report Share Posted March 2, 2015 Sorry guys, we fixed it. It's because of caches. Please try now. Quote Link to comment Share on other sites More sharing options...
Guest Guess urself Posted March 2, 2015 Report Share Posted March 2, 2015 Still same we can't install any shit! Quote Link to comment Share on other sites More sharing options...
Freddy Posted March 2, 2015 Author Report Share Posted March 2, 2015 Please give me screenshot Quote Link to comment Share on other sites More sharing options...
Freddy Posted April 2, 2015 Author Report Share Posted April 2, 2015 API update: ability to ask for 2 or more uuids in get_status request. Quote Link to comment Share on other sites More sharing options...
bleenCraxx Posted May 16, 2015 Report Share Posted May 16, 2015 (edited) 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 May 23, 2015 by swagginet Punctuation. HTTPS and nedda 2 Quote Link to comment Share on other sites More sharing options...
HTTPS Posted May 23, 2015 Report Share Posted May 23, 2015 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 ? L1QUiD 1 Quote Link to comment Share on other sites More sharing options...
Shaw2111 Posted September 22, 2015 Report Share Posted September 22, 2015 Hi I'm new to this what app do I need to run these commands and that though ? Quote Link to comment Share on other sites More sharing options...
Freddy Posted September 22, 2015 Author Report Share Posted September 22, 2015 It's for developers. You can create app to use these API. Quote Link to comment Share on other sites More sharing options...
Freddy Posted January 3, 2016 Author Report Share Posted January 3, 2016 (edited) API v1.1, method configure was updated to support custom developer certificates for non-jailbroken devices Edited January 3, 2016 by Freddy Vipp86 1 Quote Link to comment Share on other sites More sharing options...
Guest Nick Posted March 15, 2016 Report Share Posted March 15, 2016 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. Quote Link to comment Share on other sites More sharing options...
Freddy Posted March 15, 2016 Author Report Share Posted March 15, 2016 What do you mean? ZettfoUmp and L1QUiD 1 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted July 15, 2016 Author Report Share Posted July 15, 2016 Added documentation for fix_command method L1QUiD 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted August 21, 2016 Author Report Share Posted August 21, 2016 In response of get_updates method added value "added" which is unix timestamp of app update, value "whatsnew" which is self-explainable ZettfoUmp 1 Quote Link to comment Share on other sites More sharing options...
Freddy Posted December 7, 2016 Author Report Share Posted December 7, 2016 Added API for news. APP_PRO and L1QUiD 1 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.