# Download generated APKs using the Play Developer Publishing API

You can download all APKs that Google Play generated from an app bundle
you've uploaded to Play Console using the *Generated APKs* feature in the
[Google Play Developer API](https://developers.google.com/android-publisher).

## How to use generated APKs

A typical publishing workflow which includes downloading generated APKs before
they are released on any track would be the following:

1. Create a new edit, by calling [`Edits: Insert`](https://developers.google.com/android-publisher/api-ref/rest/v3/edits/insert) and specifying the app you want to modify.
2. Upload a bundle by calling [`Edits.bundles: upload`](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.bundles/upload).
3. Assign the bundle to a track by calling [`Edits.tracks: update`](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks/update). To avoid releasing the new version to end users at this stage, set the status of the new release to **draft**.
4. Commit the edit.
5. Download the APKs generated from the bundle that you uploaded in step 2 using the Generated APKs methods in the API.
6. Process your downloaded APKs.
7. Create a new edit as you did in step 1.
8. Promote the draft release to a staged or full rollout by calling [`Edits.tracks: update`](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks/update).
9. Commit the edit.

> [!TIP]
> **Tip:** Alternatively, if you want to avoid committing a draft release, you can release a new version of the app to an internal test track before downloading the generated APKs.

## How to construct your APK directory

If you need to use your APK files with `bundletool`, follow these steps to build
them using the Generated APKs API:

1. When calling the Generated APKs list method, the response will contain **TargetingInfo** field for each signing key. Write this field value to a file named `toc.json`.
2. Download your APKs, and put them in a directory with the `toc.json` created in the previous step. Note that each downloaded APK must be named "**DownloadId.apk** ", where *DownloadId* is the ID used to download the APK from the Generated APKs download method.
3. You can now use this directory with `bundletool` version 1.15.2 or higher. For example, `bundletool install-apks --apks /path/to/created/directory`.