Method: edits.apks.addexternallyhosted
Stay organized with collections
Save and categorize content based on your preferences.
Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.
HTTP request
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters |
packageName |
string
Package name of the app.
|
editId |
string
Identifier of the edit.
|
Request body
The request body contains data with the following structure:
Fields |
externallyHostedApk |
object (ExternallyHostedApk )
The definition of the externally-hosted APK and where it is located.
|
Response body
Response for creating a new externally hosted APK.
If successful, the response body contains data with the following structure:
Fields |
externallyHostedApk |
object (ExternallyHostedApk )
The definition of the externally-hosted APK and where it is located.
|
Authorization scopes
Requires the following OAuth scope:
https://www.googleapis.com/auth/androidpublisher
ExternallyHostedApk
Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.
JSON representation |
{
"packageName": string,
"applicationLabel": string,
"versionCode": integer,
"versionName": string,
"fileSize": string,
"fileSha1Base64": string,
"fileSha256Base64": string,
"iconBase64": string,
"minimumSdk": integer,
"certificateBase64s": [
string
],
"externallyHostedUrl": string,
"maximumSdk": integer,
"nativeCodes": [
string
],
"usesFeatures": [
string
],
"usesPermissions": [
{
object (UsesPermission )
}
]
} |
Fields |
packageName |
string
The package name.
|
applicationLabel |
string
The application label.
|
versionCode |
integer
The version code of this APK.
|
versionName |
string
The version name of this APK.
|
fileSize |
string (int64 format)
The file size in bytes of this APK.
|
fileSha1Base64 |
string
The sha1 checksum of this APK, represented as a base64 encoded byte array.
|
fileSha256Base64 |
string
The sha256 checksum of this APK, represented as a base64 encoded byte array.
|
iconBase64 |
string
The icon image from the APK, as a base64 encoded byte array.
|
minimumSdk |
integer
The minimum SDK targeted by this APK.
|
certificateBase64s[] |
string
A certificate (or array of certificates if a certificate-chain is used) used to sign this APK, represented as a base64 encoded byte array.
|
externallyHostedUrl |
string
The URL at which the APK is hosted. This must be an https URL.
|
maximumSdk |
integer
The maximum SDK supported by this APK (optional).
|
nativeCodes[] |
string
The native code environments supported by this APK (optional).
|
usesFeatures[] |
string
The features required by this APK (optional).
|
usesPermissions[] |
object (UsesPermission )
The permissions requested by this APK.
|
UsesPermission
A permission used by this APK.
JSON representation |
{
"name": string,
"maxSdkVersion": integer
} |
Fields |
name |
string
The name of the permission requested.
|
maxSdkVersion |
integer
Optionally, the maximum SDK version for which the permission is required.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-05-21 UTC.
[null,null,["Last updated 2025-05-21 UTC."],[[["\u003cp\u003eCreates a new APK hosted at a specified URL instead of uploading it to Google Play, restricted to Managed Play organizations.\u003c/p\u003e\n"],["\u003cp\u003eRequires an HTTP POST request to \u003ccode\u003ehttps://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe request body defines the externally-hosted APK with details like package name, version code, checksums, and hosting URL.\u003c/p\u003e\n"],["\u003cp\u003eThe response provides the details of the successfully created externally hosted APK.\u003c/p\u003e\n"],["\u003cp\u003eThis functionality requires the \u003ccode\u003ehttps://www.googleapis.com/auth/androidpublisher\u003c/code\u003e authorization scope.\u003c/p\u003e\n"]]],["This document details the process of creating an externally hosted APK for Managed Play applications. The core action is sending a `POST` request to a specific endpoint with the `packageName` and `editId`. The request body includes an `externallyHostedApk` object, defining the APK's metadata like its URL, version, checksums, supported SDKs, and required permissions. The server returns the same object in the response upon successful creation. This process is authorized with the `androidpublisher` scope.\n"],null,["# Method: edits.apks.addexternallyhosted\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n - [JSON representation](#body.ApksAddExternallyHostedResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [ExternallyHostedApk](#ExternallyHostedApk)\n - [JSON representation](#ExternallyHostedApk.SCHEMA_REPRESENTATION)\n- [UsesPermission](#UsesPermission)\n - [JSON representation](#UsesPermission.SCHEMA_REPRESENTATION)\n- [Try it!](#try-it)\n\nCreates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.\n\n### HTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|---------------|-----------------------------------|\n| `packageName` | `string` Package name of the app. |\n| `editId` | `string` Identifier of the edit. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"externallyHostedApk\": { object (/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#ExternallyHostedApk) } } ``` |\n\n| Fields ||\n|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `externallyHostedApk` | `object (`[ExternallyHostedApk](/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#ExternallyHostedApk)`)` The definition of the externally-hosted APK and where it is located. |\n\n### Response body\n\nResponse for creating a new externally hosted APK.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"externallyHostedApk\": { object (/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#ExternallyHostedApk) } } ``` |\n\n| Fields ||\n|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `externallyHostedApk` | `object (`[ExternallyHostedApk](/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#ExternallyHostedApk)`)` The definition of the externally-hosted APK and where it is located. |\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nExternallyHostedApk\n-------------------\n\nDefines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.\n\n| JSON representation |\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"packageName\": string, \"applicationLabel\": string, \"versionCode\": integer, \"versionName\": string, \"fileSize\": string, \"fileSha1Base64\": string, \"fileSha256Base64\": string, \"iconBase64\": string, \"minimumSdk\": integer, \"certificateBase64s\": [ string ], \"externallyHostedUrl\": string, \"maximumSdk\": integer, \"nativeCodes\": [ string ], \"usesFeatures\": [ string ], \"usesPermissions\": [ { object (/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#UsesPermission) } ] } ``` |\n\n| Fields ||\n|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `packageName` | `string` The package name. |\n| `applicationLabel` | `string` The application label. |\n| `versionCode` | `integer` The version code of this APK. |\n| `versionName` | `string` The version name of this APK. |\n| `fileSize` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The file size in bytes of this APK. |\n| `fileSha1Base64` | `string` The sha1 checksum of this APK, represented as a base64 encoded byte array. |\n| `fileSha256Base64` | `string` The sha256 checksum of this APK, represented as a base64 encoded byte array. |\n| `iconBase64` | `string` The icon image from the APK, as a base64 encoded byte array. |\n| `minimumSdk` | `integer` The minimum SDK targeted by this APK. |\n| `certificateBase64s[]` | `string` A certificate (or array of certificates if a certificate-chain is used) used to sign this APK, represented as a base64 encoded byte array. |\n| `externallyHostedUrl` | `string` The URL at which the APK is hosted. This must be an https URL. |\n| `maximumSdk` | `integer` The maximum SDK supported by this APK (optional). |\n| `nativeCodes[]` | `string` The native code environments supported by this APK (optional). |\n| `usesFeatures[]` | `string` The features required by this APK (optional). |\n| `usesPermissions[]` | `object (`[UsesPermission](/android-publisher/api-ref/rest/v3/edits.apks/addexternallyhosted#UsesPermission)`)` The permissions requested by this APK. |\n\nUsesPermission\n--------------\n\nA permission used by this APK.\n\n| JSON representation |\n|------------------------------------------------------|\n| ``` { \"name\": string, \"maxSdkVersion\": integer } ``` |\n\n| Fields ||\n|-----------------|-------------------------------------------------------------------------------------|\n| `name` | `string` The name of the permission requested. |\n| `maxSdkVersion` | `integer` Optionally, the maximum SDK version for which the permission is required. |"]]