API: Upload New Versions

This API lets you add a new version to an existing app.

Request

  • URL:
  • HTTP Method: POST
  • Authentification: set the HTTP header X-HockeyAppToken to your API token (create one here)
  • Parameters:
    • ipa - optional (required, if dsym is not specified for iOS or Mac), file data of the .ipa for iOS, .app.zip for Mac OS X, or .apk file for Android
    • dsym - optional, file data of the .dSYM.zip file (iOS and Mac) or mapping.txt (Android)
    • notes - optional, release notes as Textile or Markdown
    • notes_type - optional, type of release notes:
    • 0 - Textile
    • 1 - Markdown
    • notify - optional, notify testers (can only be set with full-access tokens):
    • 0 - Don't notify testers
    • 1 - Notify all testers that can install this app
    • status - optional, download status (can only be set with full-access tokens):
    • 1: Don't allow users to download or install the version
    • 2: Available for download or installation
    • mandatory - optional, set version as mandatory:
    • 0 - no
    • 1 - yes
    • tags - optional, restrict download to comma-separated list of tags

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/1234567890abcdef1234567890abcdef/app_versions/upload

Responses

Successful

Status: 201
Body:

{
    "title": "HockeyTest",
    "appsize": 1598428,
    "timestamp": 1308930206,
    "device_family": "iPhone/iPod",
    "minimum_os_version": "4.0",
    "notes": "<p>Some new features and fixed bugs.</p>",
    "version": "8",
    "shortversion": "1.0",
    "status": 2,
    "config_url": "https://rink.hockeyapp.net/manage/apps/123/app_versions/8",
    "public_url": "https://rink.hockeyapp.net/apps/1234567890abcdef1234567890abcdef"
}

Error: App not found or wrong identifier

Status: 422
Body:

{
    "errors": {
        "app": [
            "not found"
        ]
    }
}

Error: Bundle version already exists

Status: 422
Body:

{
    "errors": {
        "bundle_version": [
            "has already been taken"
        ]
    }
}

Authentification failed

Status: 401
Body:

{
    "errors": {
        "credentials": [
            "user not found or token invalid"
        ]
    }
}