> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List apps

> Returns detailed information about apps installed on the device, including package name and label. System and protected apps are excluded unless the corresponding query parameters are set.

The detailed counterpart to `list-packages`: each entry carries the package name plus a label, version info, and an `isSystemApp` flag.

<Note>
  Only `packageName` is guaranteed — depending on the device type, label and version fields can be empty.
</Note>

On iOS devices, entries are keyed by bundle identifier, Apple's built-in apps never appear, and `versionCode` is always `0`.


## OpenAPI

````yaml /api-reference/phones/tools.yaml get /devices/{deviceId}/apps
openapi: 3.1.0
info:
  title: Tools
  version: v1
servers:
  - url: https://api.mobilerun.ai
    description: Droidrun Cloud API
security:
  - bearerAuth: []
paths:
  /devices/{deviceId}/apps:
    get:
      tags:
        - Apps
      summary: List apps
      description: >-
        Returns detailed information about apps installed on the device,
        including package name and label. System and protected apps are excluded
        unless the corresponding query parameters are set.
      operationId: list-apps
      parameters:
        - in: path
          name: deviceId
          required: true
          schema:
            type: string
        - in: header
          name: X-Device-Display-ID
          schema:
            default: 0
            format: int64
            minimum: 0
            type: integer
        - explode: false
          in: query
          name: includeSystemApps
          schema:
            default: false
            type: boolean
        - explode: false
          in: query
          name: includeProtectedApps
          schema:
            default: false
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AppInfo'
                type:
                  - array
                  - 'null'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun({
              apiKey: process.env['MOBILERUN_CLOUD_API_KEY'], // This is the default and can be omitted
            });

            const apps = await client.devices.apps.list('deviceId');

            console.log(apps);
        - lang: Python
          source: |-
            import os
            from mobilerun_sdk import Mobilerun

            client = Mobilerun(
                api_key=os.environ.get("MOBILERUN_CLOUD_API_KEY"),  # This is the default and can be omitted
            )
            apps = client.devices.apps.list(
                device_id="deviceId",
            )
            print(apps)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/stainless-sdks/droidrun-cloud-go\"\n\t\"github.com/stainless-sdks/droidrun-cloud-go/option\"\n)\n\nfunc main() {\n\tclient := mobileruncloud.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tapps, err := client.Devices.Apps.List(\n\t\tcontext.TODO(),\n\t\t\"deviceId\",\n\t\tmobileruncloud.DeviceAppListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", apps)\n}\n"
        - lang: CLI
          source: |-
            mobilerun-cloud devices:apps list \
              --api-key 'My API Key' \
              --device-id deviceId
components:
  schemas:
    AppInfo:
      additionalProperties: false
      properties:
        isSystemApp:
          type: boolean
        label:
          type: string
        packageName:
          type: string
        versionCode:
          format: int64
          type: integer
        versionName:
          type: string
      required:
        - packageName
        - label
        - versionName
        - versionCode
        - isSystemApp
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Opaque
      description: Bearer token via Authorization header

````