API: Apps
This Developer API for apps lets you list all apps in your account, and upload, create, or delete an app. All endpoints require authentication with an API token.
List Apps
List all apps for the logged user, including owned apps, developer apps, member apps, and tester apps.
GET /api/2/apps
Example:
curl \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
https://rink.hockeyapp.net/api/2/apps
Response:
Status: 200
Body:
{
"apps": [
{
"title": "HockeyTest",
"bundle_identifier": "de.codenauts.hockeytest.beta",
"public_identifier": "1234567890abcdef1234567890abcdef",
"device_family": "iPhone/iPod",
"minimum_os_version": "4.0",
"release_type": 0,
"status": 2,
"platform": "iOS"
},
{
"title": "HockeyTest",
"bundle_identifier": "de.codenauts.hockeytest",
"public_identifier": "34567890abcdef1234567890abcdef12",
"release_type": 1,
"platform": "iOS"
}
],
"status": "success"
}
Upload App
Upload an .ipa, .apk, or .zip file to create a new app. If an app with the same bundle identifier or package name and the same release type already exists, the uploaded file is assigned to this existing app.
POST /api/2/apps/upload
Parameters:
-
ipa - required, file data of the .ipa for iOS, .app.zip for OS X, or .apk file for Android
-
dsym - optional, file data of the .dSYM.zip file (iOS and OS X) or mapping.txt (Android); note that the extension has to be
.dsym.zip
(case-insensitive) for iOS and OS X and the file name has to bemapping.txt
for Android. -
notes - optional, release notes as Textile or Markdown (after 5k characters note are truncated)
-
notes_type - optional, type of release notes:
0
for Textile1
for Markdown
-
notify - optional, notify testers (can only be set with full-access tokens):
0
to not notify testers1
to notify all testers that can install this app2
notify all testers
-
status - optional, download status (can only be set with full-access tokens):
1
to not allow users to download the version2
to make the version available for download
-
strategy - optional, replace or add build with same build number
add
to add the build as a new build to even if it has the same build number (default)replace
to replace to a build with the same build number
-
tags - optional, restrict download to comma-separated list of tags
-
teams - optional, restrict download to comma-separated list of team IDs; example:
12,23,42
with 12, 23, and 42 being the database IDs of your teams
-
users - optional, restrict download to comma-separated list of user IDs; example:
1224,5678
with 1224 and 5678 being the database IDs of your users
-
mandatory - optional, set version as mandatory:
0
for not mandatory1
for mandatory
-
release_type - optional, set the release type of the app:
2
for alpha0
for beta [default]1
for store3
for enterprise
-
private - optional, set to true to enable the private download page (default is true)
-
owner_id - optional, set to the ID of your organization
-
commit_sha - optional, set to the git commit sha for this build
-
build_server_url - optional, set to the URL of the build job on your build server
-
repository_url - optional, set to your source repository
-
retention_days - optional, set the amount of days we keep crash logs for an app.
28
90
[default]unlimited
Example:
curl \
-F "status=2" \
-F "notify=1" \
-F "notes=Some new features and fixed bugs." \
-F "notes_type=0" \
-F "ipa=@hockeyapp.ipa" \
-F "dsym=@hockeyapp.dSYM.zip" \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
https://rink.hockeyapp.net/api/2/apps/upload
Response:
Status: 201
Body:
{
"title": "HockeyTest",
"bundle_identifier": "de.codenauts.hockeytest",
"public_identifier": "1234567890abcdef1234567890abcdef",
"device_family": "iPhone/iPod",
"minimum_os_version": "4.0",
"release_type": 0,
"platform": "iOS"
"status": 2,
"config_url": "https://rink.hockeyapp.net/manage/apps/123",
"public_url": "https://rink.hockeyapp.net/apps/1234567890abcdef1234567890abcdef",
}
Create App
Create a new app without uploading a file.
POST /api/2/apps/new
Parameters:
-
title - required, the app's name
-
bundle_identifier - required, the bundle identifier on iOS or Mac OS X, the package name on Android, or the namespace on Windows Phone
-
platform - optional, the app's platform:
iOS
[default]Android
Mac OS
Windows Phone
Custom
-
release_type - optional, set the release type of the app:
2
for alpha0
for beta [default]1
for store3
for enterprise
-
custom_release_type - optional, set to the custom release type string
-
icon - optional, icon file with content type image/png, image/jpeg, or image image/gif
-
private - optional, set to true to enable the private download page (default is true)
-
owner_id - optional, set to the ID of your organization
- retention_days - optional, set the amount of days we keep crash logs for an app.
28
90
[default]unlimited
- retention_days - optional, set the amount of days we keep crash logs for an app.
Example:
curl \
-F "title=My App" \
-F "bundle_identifier=de.codenauts.myapp" \
-F "platform=iOS" \
-F "release_type=1" \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
https://rink.hockeyapp.net/api/2/apps/new
Response:
Status: 201
Body:
{
"title": "HockeyTest",
"bundle_identifier": "de.codenauts.hockeytest",
"public_identifier": "1234567890abcdef1234567890abcdef",
"release_type": 0,
"platform": "iOS"
}
Delete App
Delete the app with the given App ID.
DELETE /api/2/apps/APP_ID
Example:
curl \
-X DELETE \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
https://rink.hockeyapp.net/api/2/apps/1234567890abcdef1234567890abcdef
Response:
Status: 200
Configure App
Configure settings of the app, including feedback feature, Release Notes / Release Notes & Restore Button and Public/Private download page.
PUT /api/2/apps/APP_ID/meta
Parameters:
-
feedback - optional, enables or disables the feedback feature
enabled
[default]disabled
-
restore_allowed - optional, enables or disables the Restore button for old versions
enabled
disabled
[default]
-
visibility - optional, sets the download page to public or private
public
private
[default]
Example:
curl -v -X PUT "https://rink.hockeyapp.net/api/2/apps/1234567890abcdef1234567890abcdef/meta" \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
-F "feedback=disabled" \
-F "restore_allowed=enabled" \
-F "visibility=public"
Response:
Status: 200
Body:
{
"status" : "success",
"app" : {
"id" : 366168,
"status" : 2,
"custom_release_type" : "",
"created_at" : "2016-07-26T09:54:51Z",
"featured" : false,
"minimum_os_version" : "8.2",
"integrated_at" : "2016-10-21T02:17:35Z",
"company" : "Microsoft",
"role" : 0,
"device_family" : "iPhone/iPod/iPad",
"owner_token" : "001d15cabe0738a462c851c5d88d09443c123456",
"release_type" : 0,
"updated_at" : "2016-12-07T02:14:12Z",
"title" : "HockeyAppDemo",
"internal" : true,
"platform" : "iOS",
"owner" : "Kevin Li",
"visibility" : "public",
"public_identifier" : "1234567890abcdef1234567890abcdef",
"bundle_identifier" : "net.hockeywx.HockeyAppDemo"
}
}
Data Retention
Set the data retention for crash logs and feedback of an app. This will automatically delete all individual crash logs that are older than the specified number of retention days. It will however not delete the crash groups, which are only an abstract representation of similar crash logs. In addition, it will also delete all feedback threads that had no activity by the original sender in that timespan.
PUT /api/2/apps/APP_ID/retention
Parameters:
- retention_days amount of days we keep crash logs for an app.
28
90
[default]unlimited
Example:
curl -v -X PUT "https://rink.hockeyapp.net/api/2/apps/1234567890abcdef1234567890abcdef/retention" \
-H "X-HockeyAppToken: 4567abcd8901ef234567abcd8901ef23" \
-F "retention_days=28"
Response:
Status: 200
Body:
{
"status" : "success",
"app" : {
"id" : 366168,
"status" : 2,
"custom_release_type" : "",
"created_at" : "2016-07-26T09:54:51Z",
"featured" : false,
"minimum_os_version" : "8.2",
"integrated_at" : "2016-10-21T02:17:35Z",
"company" : "Microsoft",
"role" : 0,
"device_family" : "iPhone/iPod/iPad",
"owner_token" : "001d15cabe0738a462c851c5d88d09443c123456",
"release_type" : 0,
"updated_at" : "2016-12-07T02:14:12Z",
"title" : "HockeyAppDemo",
"internal" : true,
"platform" : "iOS",
"owner" : "Kevin Li",
"visibility" : "public",
"public_identifier" : "1234567890abcdef1234567890abcdef",
"bundle_identifier" : "net.hockeywx.HockeyAppDemo",
"retention_days": "28"
}
}