App API
Please note that this API methodology is now deprecated, and we at HeadSpin advise you to no longer make this your primary method of tracking or interacting with your apps in HeadSpin. Please reference our new App Management documentation for our recommended API.
API Reference
List all uploaded APKs and their information
List all uploaded APKs' package names
Update some custom information for an APK
Get information about the most recently uploaded APK in your org
Get information about the most recently uploaded version of an APK
Download an APK by package name
Delete a previously uploaded APK
List all uploaded XAPKs and their information
Get information about the most recently uploaded XAPK in your org
Delete a previously uploaded XAPK
List all uploaded IPAs and their information
List all uploaded IPAs' bundle identifiers
Upload an IPA or .app iOS build
Install an uploaded IPA or .app iOS build
Update some custom information for an IPA
Get information about the most recently uploaded IPA in your org
Get information about the most recently uploaded version of an APK
Download an IPA by its identifier
Delete a previously uploaded IPA
List all uploaded dSYMs and their information
Get information about uploaded dSYMs
Update some custom information for uploaded dSYMs
Get information about the most recently uploaded dSYMs in your org
Download a dSYMs zip by dSYMs ID
Delete a previously uploaded dSYMs zip
List all uploaded APKs and their information
Example
Response
A JSON object, each key is the app ID for an uploaded APK. For example:
List all uploaded APKs' package names
Example
Response
A JSON object with the two keys:
- <code class="dcode">apk_packages</code>: a list of all package names, e.g. <code class="dcode">io.headspin.healthtest</code>
- <code class="dcode">success</code>: <code class="dcode">true</code> or <code class="dcode">false</code>
For example:
Upload an APK
Request Body
The request's body should include the binary of your <code class="dcode">apk</code> app. To include the binary of your app, use the <code class="dcode">--data-binary "@<path_to_your_apk>"</code>, for example <code class="dcode">--data-binary "@/Users/headspin/HealthTest.apk"</code>. It is also possible to add an optional query parameter to the URL to also set a custom tag (<code class="dcode">hs_tag</code>) for this APK. This tag can be updated or set later as well; this is provided for convenience.
Example
Upload the APK:
Upload the APK and set the custom <code class="dcode">hs_tag</code> field for this APK.
Response
- <code class="dcode">{"apk_id": "<app_id>", "success": true}</code> if the apk is successfully uploaded.
- <code class="dcode">{"status": "Failed to upload apk.", "status_code": 500}</code> if there was a problem uploading the apk.
Install an uploaded APK
Please use the <code class="dcode">/v0/adb/{device_id}/install</code> route with the <code class="dcode">apk_id</code> query argument documented in the ADB API to install an uploaded APK.
Get information about an APK
Example
Response
A JSON object with the app's information. For example:
Update some Custom Information for an APK
This route will update or set the tag for an uploaded APK.
Example
Response
A simple response indicating whether the applicable APK data was updated successfully. For example:
Get information about the most recently uploaded APK in your org
Example
Response
A JSON object with the information of the APK most recently uploaded by someone in your org. For example:
Get information about the most recently uploaded version of an APK
Example
Response
A JSON object with the information of the APK's most recently uploaded version. For example:
Download an APK by package name
Optional Parameters
- <code class="dcode">-L</code>: the <code class="dcode">-L</code> flagged is required. This is because APK is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcode">-o {path-to-save-apk}</code>: to save the APK as a file on your local system, e.g. <coed class="dcode">-o healthtest.apk</code>
Example
Response
The response contains the binary of the APK.
Download an APK by app ID
Parameters
- <code class="dcode">-L</code>: the <code class="dcode">-L</code> flagged is required. This is because APK is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcodee">-o {path-to-save-apk}</code>: to save the apk as a file on your local system, e.g.<code class="dcode">-o healthtest.apk`</code>
Example
Response
The response contains the binary of the APK.
Delete a previously uploaded APK
Example
Response
List all uploaded XAPKs and their information
Example
Response
Upload an XAPK
Request Body
The request's body should include the binary of your <code class="dcode">xapk</code> app. To include the binary of your app, use the <code class="dcode">--data-binary "@<path_to_your_xapk></code>", for example <code class="dcode">--data-binary "@/Users/headspin/Sample.xapk"</code>.
Example
Upload the XAPK:
Response
Get information about an XAPK
Example
Response
A JSON object with the app's information. For example:
Get information about the most recently uploaded XAPK in your org
Example
Response
A JSON object with the information of the XAPK most recently uploaded by someone in your org. For example:
Download an XAPK by app ID
Example
This example uses cURL to perform the download. The -L and -o options are recommended:
- <code class="dcode">-L</code>: The XAPK zip is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcode">-o {path-to-save-xapk}</code>: Writes the XAPK zip as a file on your local system.
Response
The response contains the binary of the XAPK.
Delete a previously uploaded XAPK
Example
Response
List all uploaded IPAs and their information
Example
Response
A JSON object, each key is the app ID for an uploaded IPA. For example:
List all uploaded IPAs' bundle identifiers
Example
Response
A JSON object with the two keys:
- <code class="dcode">bundle_identifiers</code>: a list of all bundle identifiers, e.g. <code class="dcode">io.headspin.healthtest</code>
- <code class="dcode">success</code>: <code class="dcode">true</code> or <code class="dcode">false</code>
For example:
Upload an IPA or .app iOS build
Request Body
The request body should include the binary of your <code class="dcode">ipa</code> app. To include the binary of your app, use the <code class="dcode">--data-binary "@<path_to_your_ipa>"</code>, for example <code class="dcode">--data-binary "@/Users/headspin/HealthTest.ipa"</code>. It is also possible to add an optional query parameter to the URL to set an additional custom tag (<code class="dcode">hs_tag</code>) for this IPA. This tag can be updated or set later as well; this is provided for convenience.
.app iOS builds
To upload .app builds that have not been exported by Xcode, you must first package the .app directory of the build. To do so, Control-click the .app and select <code class="dcode">Compress "<app_name>"</code> or do so via the command line with <code class="dcode">zip -r <build_name>.zip <build_name>.app</code>. The request body should include the zip of your .app build. In <code class="dcode">curl</code>, use the option <code class="dcode">--data-binary "@<path_to_your_zip>"</code>, for example <code class="dcode">--data-binary "@/Users/headspin/HealthTest.zip"</code>. For brevity, the remainder of the documentation uses the term IPA when referring to either an uploaded IPA or packaged .app iOS build.
Example
Upload an IPA:
Upload an IPA with a custom <code class="dcode">hs_tag</code> tag field:
Upload a .app iOS build:
Response
- <code class="dcode">{"ipa_id": "<ipa_id>", "success": true}</code> if the IPA is successfully uploaded.
- <code class="dcode">{"status": "Failed to upload ipa.", "status_code": 500}</code> if there was a problem uploading the IPA.
Install an uploaded IPA or .app iOS build
Please use the <code class="dcode">/v0/idevice/{device_id}/installer/install?ipa_id={id}</code> route with the <code class="dcode">ipa_id</code> query argument documented in the iOS Device API to install an uploaded IPA or .app iOS build.
Get information about an IPA
Example
Response
A JSON object with the information for the app. For example:
Update some custom information for an IPA
Example
Response
A message indicating the operation was successful. For example:
Future requests to <code class="dcode">/v0/apps/ipa/{app_id}/info</code> should return with the updated <code class="dcode">hs_tag</code> field.
Get information about the most recently uploaded IPA in your org
Example
Response
A JSON object with the information of the IPA most recently uploaded by someone in your org. For example:
Get information about the most recently uploaded version of an APK
Example
Response
A JSON object with the information of the most recently uploaded version of the IPA. For example:
Download an IPA by its identifier
Optional Parameters
- <code class="dcode">-L</code>: the <code class="dcode">-L</code> flagged is required. This is because the IPA is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcode">-o {path-to-save-ipa}</code>: to save the IPA as a file on your local system, e.g. <code class="dcode">-o healthtest.ipa</code>
Example
Response
The response contains the binary of the IPA.
Download an IPA by app ID
Optional Parameters
- <code class="dcode">-L</code>: the <code class="dcode">-L</code> flagged is required. This is because APK is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcode">-o {path-to-save-ipa}</code>: to save the IPA as a file on your local system, e.g. <code class="dcode">-o healthtest.ipa</code>
Example
Response
The response contains the binary of the IPA.
Delete a previously uploaded IPA
Example
Response
List all uploaded dSYMs and their information
Example
Response
A JSON object, each key is the dSYMs ID for an uploaded dSYMs zip. For example:
Upload a dSYMs zip
Package your dSYMs
When you archive your app in Xcode to export an IPA, Xcode will generate Debug Symbol files (dSYMs) for that build. You should be able to find your archive in Xcode's Organizer (right-click it to Show in Finder, then right-click the .xcarchive itself to Show Package Contents.) Right-click the dSYMs directory and select Compress "dSYMs" or do so via the command line with <code class="dcode">zip -r dSYMs.zip dSYMs</code>
Request Body
The request body should include a compressed zip of your archived app's <code class="dcode">dSYMs</code>. To include your dSYMs zip, use the <code class="dcode">--data-binary "@<path-to-dsyms-zip>"</code>, for example <code class="dcode">--data-binary "@/Users/headspin/dSYMs.zip"</code>. It is also possible to add an optional query parameter to the URL to also set a custom tag (<code class="dcode">hs_tag</code>) for this dSYMs zip. This tag can be updated or set later as well; this is provided for convenience.
Example
Upload a dSYMs zip:
Upload a dSYMs zip with a custom <code class="dcode">hs_tag</code> tag field:
Response
- <code class="dcode">{"dsyms_id": "<dsyms_id>"}</code> if the dSYMs zip is successfully uploaded.
- <code class="dcode">{"status": "Not a valid dSYMs zip.", "status_code": 400}</code> if the uploaded dSYMs file is not a valid zip.
- <code class="dcode">{"status": "Failed to upload dSYMs.", "status_code": 500}</code> if there was a problem uploading the dSYMs.
Install an uploaded dSYMs zip
Please use the <code class="dcode">/v0/idevice/{device_id}/dsyms/install?dsyms_id={dsyms_id}</code> route with the <code class="dcode">dsyms_id</code> query argument documented in the idevice api to install an uploaded dSYMs zip.
Get information about uploaded dSYMs
Example
Response
A JSON object with the information for the dSYMs. For example:
Update some Custom Information for uploaded dSYMs
Example
Response
A message indicating the operation was successful. For example:
Future requests to <code class="dcode">/v0/apps/dsyms/{dsyms_id}/info</code> should return with the updated <code class="dcode">hs_tag</code> field.
Get information about the most recently uploaded dSYMs in your org
Example
Response
A JSON object with the information of the dSYMs most recently uploaded by someone in your org. For example:
Download a dSYMs zip by dSYMs ID
Example
This example uses cURL to perform the download. The -L and -o options are recommended:
- <code class="dcode">-L</code>: The dSYMs zip is downloaded from our data service, which has a different endpoint from our API server to which the API request is made.
- <code class="dcode">-o {path-to-save-dsyms}</code>: Writes the dSYMs zip as a file on your local system.
Response
The response contains the dSYMs zip.