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

# List apps

> List all installed apps on the launcher



## OpenAPI

````yaml get /boxes/{boxId}/android/apps
openapi: 3.0.0
info:
  title: GBOX Open API
  description: GBOX Open API Documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://gbox.ai/api/v1
    description: Production Server
security: []
tags: []
paths:
  /boxes/{boxId}/android/apps:
    get:
      tags:
        - Android
      summary: List apps
      description: List all installed apps on the launcher
      operationId: AndroidController_listAndroidApps
      parameters:
        - name: boxId
          required: true
          in: path
          description: Box ID
          schema:
            example: c9bdc193-b54b-4ddb-a035-5ac0c598d32d
            type: string
      responses:
        '200':
          description: Android apps
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AndroidAppList'
      security:
        - bearer: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import GboxSDK from "gbox-sdk";

            const gboxSDK = new GboxSDK({
              apiKey: process.env["GBOX_API_KEY"] // This is the default and can be omitted
            });

            async function main() {
              // Create an Android box
              const box = await gboxSDK.create({ type: "android" });

              // Get basic app information (metadata only)
              const androidAppListInfo = await box.app.listInfo();
              console.log("App info:", androidAppListInfo);

              // Get app operators for interaction capabilities
              const androidAppList = await box.app.list();

              // Iterate through each app operator and perform actions
              for (const app of androidAppList.operators) {
                console.log(`App data: ${JSON.stringify(app.data, null, 2)}`);
                // Open the app using the operator
                await app.open();
              }
            }

            main();
        - lang: Python
          source: |-
            import os
            from gbox_sdk import GboxSDK

            def main():
                gbox_sdk = GboxSDK(api_key=os.environ["GBOX_API_KEY"])  # This is the default and can be omitted

                # Create an Android box
                box = gbox_sdk.create(type="android")

                # Get basic app information (metadata only)
                android_app_list_info = box.app.list_info()
                print("App info:", android_app_list_info)

                # Get app operators for interaction capabilities
                android_app_list = box.app.list()

                # Iterate through each app operator and perform actions
                for app in android_app_list.operators:
                    print(f"App data: {app.data}")
                    # Open the app using the operator
                    app.open()

            if __name__ == "__main__":
                main()
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/gbox/gbox-sdk-go\"\n)\n\nfunc main() {\n\tgboxSDK := gbox.NewGboxSDK(os.Getenv(\"GBOX_API_KEY\")) // This is the default and can be omitted\n\n\t// Create an Android box\n\tbox, err := gboxSDK.Create(context.Background(), gbox.CreateRequest{Type: \"android\"})\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to create box: %v\", err)\n\t}\n\n\t// Get basic app information (metadata only)\n\tandroidAppListInfo, err := box.App.ListInfo(context.Background())\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to get app info: %v\", err)\n\t}\n\tfmt.Println(\"App info:\", androidAppListInfo)\n\n\t// Get app operators for interaction capabilities\n\tandroidAppList, err := box.App.List(context.Background())\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to get app operators: %v\", err)\n\t}\n\n\t// Iterate through each app operator and perform actions\n\tfor _, app := range androidAppList.Operators {\n\t\tappDataJSON, _ := json.MarshalIndent(app.Data, \"\", \"  \")\n\t\tfmt.Printf(\"App data: %s\\n\", appDataJSON)\n\t\t// Open the app using the operator\n\t\terr := app.Open(context.Background())\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Failed to open app: %v\", err)\n\t\t}\n\t}\n}"
components:
  schemas:
    AndroidAppList:
      type: object
      properties:
        data:
          description: App list
          example:
            - packageName: com.android.settings
              activityName: Settings
              activityClassName: com.android.settings.Settings
            - packageName: com.android.chrome
              activityName: Chrome
              activityClassName: com.android.chrome.ChromeTabbedActivity
          type: array
          items:
            $ref: '#/components/schemas/AndroidApp'
      title: Android App List
      description: Android app list
      required:
        - data
    AndroidApp:
      type: object
      properties:
        packageName:
          type: string
          description: App package name
          example: com.android.settings
        activityName:
          type: string
          description: Activity name
          example: Settings
        activityClassName:
          type: string
          description: Activity class name
          example: com.android.settings.Settings
      title: Android App
      description: Android app
      required:
        - packageName
        - activityName
        - activityClassName
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: >-
        Enter your API Key in the format: Bearer <token>. Get it from
        https://gbox.ai

````