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.
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
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
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
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
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
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
