# Apps

> Install apps on a phone from the catalogue of published builds. Installs are queued, checked file by file, and take a few minutes.

The catalogue holds published builds of apps such as WhatsApp and TikTok. Installing one is queued: the phone's server downloads the build, checks every file, and installs it, which takes a few minutes. The phone must be running.

## Endpoints

- `GET /v1/apps` (scope `phones:read`): Searches the catalogue by package name or label with `?q=`. Without it, every app.
- `GET /v1/apps/{pkg}` (scope `phones:read`): One app, and the version an install gets.
- `POST /v1/phones/{id}/apps` (scope `phones:write`): Installs `{ "pkg": "com.whatsapp" }` on the phone. Answers 202 with the install. Send an `Idempotency-Key` to make a retry safe.
- `DELETE /v1/phones/{id}/apps/{pkg}` (scope `phones:write`): Uninstalls an app the catalogue installed on the phone, with its data. Answers 202 with the uninstall, which the installs list shows with `action` `uninstall`.
- `GET /v1/phones/{id}/apps` (scope `phones:read`): The phone's installs and uninstalls, newest first: `queued`, `running`, `succeeded` or `failed` with why.

Source: https://distilled.cx/docs/apps/
