App Management API

The App Management API allows you to upload apps directly to the DT environment. Once DT successfully receives the submitted app, a DT Representative makes sure that all the necessary checks have been performed, and then makes the app available for distribution via Ignite. The API offers two endpoints—one to upload the APK package and another to check the APK approval status. Authentication is facilitated by DT’s authentication service called Account Service. When called via its own API, it issues tokens to be included in the App Management API request headers. The diagram below gives an overview of App Management API integration.

spinner

Authentication

All calls to App Management API must include in the header a token issued by DT's authentication service—Account Service. To acquire this token, use the Account Service API: send POST api/auth/token and pass your client_id and client_secret in the request body. These parameters are provided by your DT Representative. The token you need to use is passed in the access_token parameter. Note that the authentication token lifetime is 1 hour.

POST /api/auth/token

Request a token from Account Service authentication service by passing credentials as body payload.

Base URL

PROD: https://account.digitalturbine.com

Headers

Accept: application/json

Content-Type: application/json

Request example

{
  "client_id": "820f2060-d373-4bdc-8de3-cdfa17d12a07",
  "client_secret": "v6yR06Iv5Oxac7Hm-CCgrorUqL9iZvD4_cUlQaGw3muxCaN-cagDuxQXM1KakJyJAUfx1pIdhMEw1Fjvbq4USQ",
  "grant_type": "client_credentials",
  "scope": "openid email roles"
}

Request parameters

Parameter
Type
Status

client_id

String

Required

Client UUID. Provided by DT Representative.

client_secret

String

Required

Hashed value. Provided by DT Representative.

grant_type

Enum

Required

Always pass client_credentials.

scope

String

Required

Always pass openid email roles.

Response example

Response parameters

Parameter
Type
Status
Description

access_token

String

Required

Token to be used in headers of requests to App Management API.

expires_in

Integer

Required

Token lifetime in seconds, always 3600.

token_type

Enum

Required

Always Bearer.

scope

String

Required

Always openid email roles.

POST /v1/upload_apk/external_user

Upload an APK to Ignite.

Base URL

PROD: https://appmanagement.gcp-us-east1.gcp-prod.digitalturbine.io

Headers

Authorization: Bearer your_token

Content-Type: application/json

Request example

Request parameters

Parameter
Type
Status
Description

file

Binary

Required

The APK file itself.

fallback_url

String

Required

URL where APK is available from.

variant_segment_ids

Array

Required

UUIDs of segments.

send_to_samsung

Boolean

Required

Whether the APK needs to be verified by Samsung.

store_metadata

Object

Required

Metadata for the APK.

store_metadata.package_name

String

Required

APK package name. This metadata specification must match the uploaded APK. A mismatch makes the request invalid.

store_metadata.category

String

Required

App category for the app.

store_metadata.size

Number

Required

Size, in bytes, of the APK file.

store_metadata.short_description

String

Required

Brief description of the app.

store_metadata.icon_url

String

Required

URL for app icon.

store_metadata.developer

String

Required

Name of the app developer.

store_metadata.email

String

Required

Email address to contact the app developer.

store_metadata.website_url

String

Required

URL for the developer's website.

store_metadata.market_url

String

Required

Store URL for the app.

store_metadata.privacy_policy_url

String

Required

URL to the developer's privacy policy.

store_metadata.permissions

Object

Required

List of permissions that the app requires in order to run properly.

store_metadata.permissions.{property1}

Object

Required

Name of the permission. For example, if your app requires network access, specify access_network_state.

store_metadata.permissions.{property1}.{description}

String

Required

Two-character language designation for the permission and the permission description in the specified language.

store_metadata.permissions.{property1}.{category}

String

Required

Category of the permission.

Response example

Response parameters

Parameter
Type
Status
Description

data

Object

Required

id

String

Required

Identifier of the APK (same as data.attributes.id)

type

String

Required

Type of the response object. Ex.: ApkStatuses

attributes

Object

Required

id

String

Required

Identifier of the APK (same as data.id). Use this ID in your GET /v1/apks_external/{id} requests when checking the APK status.

upload_status

String

Required

Status of the APK upload to Ignite: [COMPLETED, SCHEDULED, ERROR]

samsung_approval_status

String

Required

Status of the APK verification by Samsung: [NOT_REQUESTED, SCHEDULED, COMPLETED, ERROR]

In some situations it may take about one day for the approval status to change to COMPLETED. Use GET /v1/apks_external/{id} to check the status.

manual_approval_status

String

Required

Status of the APK verification by DT Representative: [NOT_REQUESTED, PENDING, APPROVED].

Since this verification is done manually, in some situations it may take some time for the approval status to change to APPROVED. Use GET /v1/apks_external/{id} to check the status.

GET /v1/apks_external/{id}

Get status of uploaded APK.

Base URL

PROD: https://appmanagement.gcp-us-east1.gcp-prod.digitalturbine.io

Headers

Authorization: Bearer your_token

Content-Type: application/json

Request example

Request parameters

Parameter
Type
Status
Description

id

String

Required

Identifier of uploaded APK. This is passed in id parameter of response to POST /v1/upload_apk/external_user.

Response example

Same as /v1/upload_apk/external_user.

Response parameters

Same as /v1/upload_apk/external_user.

Last updated