---
title: "Get LegacyAppInstallation by ID"
method: GET
path: "/api/v3/legacy-app-installation/{legacy_app_installation_id}"
tags: ["Legacy App Installation"]
---

# Get LegacyAppInstallation by ID

`GET /api/v3/legacy-app-installation/{legacy_app_installation_id}`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/legacy-app-installation/{legacy_app_installation_id}`
- Auth: HTTP bearer

Get a single LegacyAppInstallation by ID.

## Path parameters

- `legacy_app_installation_id` string, required

## Query parameters

- `returning` string[]
- `omit` string[]

## Headers

- `EARLY-ACCESS` string

## Response `200`

OK

- LegacyAppInstallation: Represents a legacy (pre-App Store) Benchling App installation on a tenant. Legacy apps are configured directly with webhook URLs and configuration specs rather than through app definition versions. This type is maintained for backward compatibility with older app integrations. For new apps, see `AppInstallation`.
  - `archiveReason` string, nullable
  - `archived` boolean
  - `configurationSpecs` AppConfigOption[]
    - `__typename` string
    - `configSpec` union: A union of all configuration specification types that define what kind of values an app configuration field can accept.
      - object: Specifies that an app configuration field should accept an array of values.
        - `__typename` string, required
        - `elementDefinition` ArrayAppConfigOption[]: Defines the named config options allowed within this array and their type constraints.
          - `__typename` string
          - `configSpec` union: A union of configuration specification types valid as elements within an array-type configuration field. Same as AppConfigSpec but excludes ArrayAppConfigSpec to prevent nested arrays.
            - object: Specifies that an app configuration field should accept a boolean value.
              - …
            - object: Specifies that an app configuration field should accept a date value.
              - …
            - object: Specifies that an app configuration field should accept a datetime value.
              - …
            - object: Specifies that an app configuration field should be a dropdown with predefined options.
              - …
            - object: Specifies that an app configuration field should reference an entity schema. Kept separate from SchemaAppConfigSpec because it carries a subtype constraint.
              - …
            - object: Specifies that an app configuration field should accept a floating-point number.
              - …
            - object: Specifies that an app configuration field should accept an integer value.
              - …
            - object: Specifies that an app configuration field should accept a JSON value.
              - …
            - object: Specifies that an app configuration field should reference a Benchling object instance. The type field identifies the kind of object required, matching the BenchlingAppType values used in app manifests (e.g. dna_sequence, folder, registry). Covers all instance reference types with no additional spec constraints beyond requiredConfig. For schema references use SchemaAppConfigSpec or EntitySchemaAppConfigSpec.
              - …
            - object: Specifies that an app configuration field should reference one of the schema types that share a common structure: container_schema, plate_schema, location_schema, box_schema, run_schema, result_schema, legacy_request_schema, or entry_schema. The type field identifies which schema kind is required. For entity_schema use EntitySchemaAppConfigSpec; for workflow_task_schema use WorkflowTaskSchemaAppConfigSpec.
              - …
            - object: Specifies that an app configuration field should accept secure (encrypted) text. Used for sensitive data like API keys or credentials.
              - …
            - object: Specifies that an app configuration field should accept a text string.
              - …
            - object: Specifies that an app configuration field should reference a workflow task schema. Kept separate from SchemaAppConfigSpec because it supports output field definitions.
              - …
          - `description` string, nullable
          - `name` string
        - `maxElements` integer, nullable: Maximum number of elements allowed in the array (1-500); null means no maximum.
        - `minElements` integer, nullable: Minimum number of elements allowed in the array (0-500); null means no minimum.
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept a boolean value.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept a date value.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept a datetime value.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should be a dropdown with predefined options.
        - `__typename` string, required
        - `options` AppConfigDropdownOption[], nullable
          - `__typename` string
          - `description` string, nullable
          - `name` string
          - `requiredConfig` boolean, nullable
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should reference an entity schema. Kept separate from SchemaAppConfigSpec because it carries a subtype constraint.
        - `__typename` string, required
        - `fieldDefinitions` AppConfigFieldDefinition[], nullable
          - `__typename` string
          - `description` string, nullable
          - `isMulti` boolean, nullable: Whether the field must be multi-valued — null means either true or false is acceptable.
          - `isRequired` boolean, nullable: Whether the field must be required — null means either true or false is acceptable.
          - `name` string
          - `requiredConfig` boolean, nullable
          - `type` 'DNA_SEQUENCE_LINK' | 'AA_SEQUENCE_LINK' | 'CUSTOM_ENTITY_LINK' | 'ENTITY_LINK' | 'MIXTURE_LINK' | 'MOLECULE_LINK' | 'DROPDOWN' | 'PART_LINK' | 'AA_PART_LINK' | 'TRANSLATION_LINK' | 'BLOB_LINK' | 'TEXT' | 'LONG_TEXT' | 'BATCH_LINK' | 'STORAGE_LINK' | 'ENTRY_LINK' | 'ASSAY_REQUEST_LINK' | 'ASSAY_RESULT_LINK' | 'ASSAY_RUN_LINK' | 'BOOLEAN' | 'FLOAT' | 'INTEGER' | 'DATETIME' | 'DATE' | 'JSON': Type constraint for the field — null means any type is acceptable.
        - `requiredConfig` boolean, nullable
        - `subtype` 'AA_SEQUENCE' | 'CUSTOM_ENTITY' | 'DNA_OLIGO' | 'DNA_SEQUENCE' | 'MIXTURE' | 'MOLECULE' | 'RNA_OLIGO' | 'RNA_SEQUENCE': Optional subtype constraint — if present, the referenced schema must be of this entity type (e.g. DNA_SEQUENCE, AA_SEQUENCE).
      - object: Specifies that an app configuration field should accept a floating-point number.
        - `__typename` string, required
        - `enum` number[], nullable: Optional enum constraint — if present, the value must be one of these floats.
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept an integer value.
        - `__typename` string, required
        - `enum` integer[], nullable: Optional enum constraint — if present, the value must be one of these integers.
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept a JSON value.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should reference a Benchling object instance. The type field identifies the kind of object required, matching the BenchlingAppType values used in app manifests (e.g. dna_sequence, folder, registry). Covers all instance reference types with no additional spec constraints beyond requiredConfig. For schema references use SchemaAppConfigSpec or EntitySchemaAppConfigSpec.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
        - `type` 'BOX_SCHEMA' | 'CONTAINER_SCHEMA' | 'ENTRY_SCHEMA' | 'LEGACY_REQUEST_SCHEMA' | 'LOCATION_SCHEMA' | 'PLATE_SCHEMA' | 'RESULT_SCHEMA' | 'RUN_SCHEMA' | 'WORKFLOW_TASK_SCHEMA' | 'AA_SEQUENCE' | 'ASSAY_RESULT' | 'ASSAY_RUN' | 'AUTOMATION_INPUT_GENERATOR' | 'AUTOMATION_OUTPUT_PROCESSOR' | 'BLOB' | 'BOX' | 'CONTAINER' | 'CUSTOM_ENTITY' | 'DNA_ALIGNMENT' | 'DNA_OLIGO' | 'DNA_SEQUENCE' | 'DROPDOWN' | 'DROPDOWN_OPTION' | 'ENTRY' | 'FIELD' | 'FOLDER' | 'LEGACY_REQUEST' | 'LOCATION' | 'MIXTURE' | 'MOLECULE' | 'PLATE' | 'PROJECT' | 'REGISTRY' | 'RNA_OLIGO' | 'RNA_SEQUENCE' | 'WORKFLOW_TASK_STATUS' | 'WORKLIST'
      - object: Specifies that an app configuration field should reference one of the schema types that share a common structure: container_schema, plate_schema, location_schema, box_schema, run_schema, result_schema, legacy_request_schema, or entry_schema. The type field identifies which schema kind is required. For entity_schema use EntitySchemaAppConfigSpec; for workflow_task_schema use WorkflowTaskSchemaAppConfigSpec.
        - `__typename` string, required
        - `fieldDefinitions` AppConfigFieldDefinition[], nullable
          - `__typename` string
          - `description` string, nullable
          - `isMulti` boolean, nullable: Whether the field must be multi-valued — null means either true or false is acceptable.
          - `isRequired` boolean, nullable: Whether the field must be required — null means either true or false is acceptable.
          - `name` string
          - `requiredConfig` boolean, nullable
          - `type` 'DNA_SEQUENCE_LINK' | 'AA_SEQUENCE_LINK' | 'CUSTOM_ENTITY_LINK' | 'ENTITY_LINK' | 'MIXTURE_LINK' | 'MOLECULE_LINK' | 'DROPDOWN' | 'PART_LINK' | 'AA_PART_LINK' | 'TRANSLATION_LINK' | 'BLOB_LINK' | 'TEXT' | 'LONG_TEXT' | 'BATCH_LINK' | 'STORAGE_LINK' | 'ENTRY_LINK' | 'ASSAY_REQUEST_LINK' | 'ASSAY_RESULT_LINK' | 'ASSAY_RUN_LINK' | 'BOOLEAN' | 'FLOAT' | 'INTEGER' | 'DATETIME' | 'DATE' | 'JSON': Type constraint for the field — null means any type is acceptable.
        - `requiredConfig` boolean, nullable
        - `type` 'BOX_SCHEMA' | 'CONTAINER_SCHEMA' | 'ENTRY_SCHEMA' | 'LEGACY_REQUEST_SCHEMA' | 'LOCATION_SCHEMA' | 'PLATE_SCHEMA' | 'RESULT_SCHEMA' | 'RUN_SCHEMA' | 'WORKFLOW_TASK_SCHEMA' | 'AA_SEQUENCE' | 'ASSAY_RESULT' | 'ASSAY_RUN' | 'AUTOMATION_INPUT_GENERATOR' | 'AUTOMATION_OUTPUT_PROCESSOR' | 'BLOB' | 'BOX' | 'CONTAINER' | 'CUSTOM_ENTITY' | 'DNA_ALIGNMENT' | 'DNA_OLIGO' | 'DNA_SEQUENCE' | 'DROPDOWN' | 'DROPDOWN_OPTION' | 'ENTRY' | 'FIELD' | 'FOLDER' | 'LEGACY_REQUEST' | 'LOCATION' | 'MIXTURE' | 'MOLECULE' | 'PLATE' | 'PROJECT' | 'REGISTRY' | 'RNA_OLIGO' | 'RNA_SEQUENCE' | 'WORKFLOW_TASK_STATUS' | 'WORKLIST'
      - object: Specifies that an app configuration field should accept secure (encrypted) text. Used for sensitive data like API keys or credentials.
        - `__typename` string, required
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should accept a text string.
        - `__typename` string, required
        - `enum` string[], nullable: Optional enum constraint — if present, the value must be one of these strings.
        - `requiredConfig` boolean, nullable
      - object: Specifies that an app configuration field should reference a workflow task schema. Kept separate from SchemaAppConfigSpec because it supports output field definitions.
        - `__typename` string, required
        - `fieldDefinitions` AppConfigFieldDefinition[], nullable
          - `__typename` string
          - `description` string, nullable
          - `isMulti` boolean, nullable: Whether the field must be multi-valued — null means either true or false is acceptable.
          - `isRequired` boolean, nullable: Whether the field must be required — null means either true or false is acceptable.
          - `name` string
          - `requiredConfig` boolean, nullable
          - `type` 'DNA_SEQUENCE_LINK' | 'AA_SEQUENCE_LINK' | 'CUSTOM_ENTITY_LINK' | 'ENTITY_LINK' | 'MIXTURE_LINK' | 'MOLECULE_LINK' | 'DROPDOWN' | 'PART_LINK' | 'AA_PART_LINK' | 'TRANSLATION_LINK' | 'BLOB_LINK' | 'TEXT' | 'LONG_TEXT' | 'BATCH_LINK' | 'STORAGE_LINK' | 'ENTRY_LINK' | 'ASSAY_REQUEST_LINK' | 'ASSAY_RESULT_LINK' | 'ASSAY_RUN_LINK' | 'BOOLEAN' | 'FLOAT' | 'INTEGER' | 'DATETIME' | 'DATE' | 'JSON': Type constraint for the field — null means any type is acceptable.
        - `output` AppConfigWorkflowTaskSchemaOutput: Defines the output field structure for a workflow task schema configuration.
          - `__typename` string
          - `fieldDefinitions` AppConfigFieldDefinition[], nullable
            - `__typename` string
            - `description` string, nullable
            - `isMulti` boolean, nullable: Whether the field must be multi-valued — null means either true or false is acceptable.
            - `isRequired` boolean, nullable: Whether the field must be required — null means either true or false is acceptable.
            - `name` string
            - `requiredConfig` boolean, nullable
            - `type` 'DNA_SEQUENCE_LINK' | 'AA_SEQUENCE_LINK' | 'CUSTOM_ENTITY_LINK' | 'ENTITY_LINK' | 'MIXTURE_LINK' | 'MOLECULE_LINK' | 'DROPDOWN' | 'PART_LINK' | 'AA_PART_LINK' | 'TRANSLATION_LINK' | 'BLOB_LINK' | 'TEXT' | 'LONG_TEXT' | 'BATCH_LINK' | 'STORAGE_LINK' | 'ENTRY_LINK' | 'ASSAY_REQUEST_LINK' | 'ASSAY_RESULT_LINK' | 'ASSAY_RUN_LINK' | 'BOOLEAN' | 'FLOAT' | 'INTEGER' | 'DATETIME' | 'DATE' | 'JSON': Type constraint for the field — null means any type is acceptable.
        - `requiredConfig` boolean, nullable
    - `description` string, nullable
    - `name` string
  - `configurationValues` string, uri
  - `createdAt` string, datetime, nullable
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `description` string, nullable
  - `featureSpecs` AppFeatureSpec[]
    - union: A union of all feature types that can be defined for a Benchling App, including canvas embeds, assay run integrations, and homepage features.
      - object: Defines a homepage feature for a Benchling App, providing a dedicated landing page within the Benchling application for the app's functionality.
        - `__typename` string, required
        - `featureId` string
        - `name` string
      - object: Defines an assay run feature for a Benchling App, allowing the app to process or generate lab automation run data.
        - `__typename` string, required
        - `featureId` string
        - `name` string
      - object: Defines a canvas feature for a Benchling App, which provides an embedded UI surface within entries or templates. Canvases allow apps to render custom interactive content.
        - `__typename` string, required
        - `featureId` string
        - `locations` CanvasFeatureSpecLocationsItems[], nullable
        - `name` string
  - `featureValues` AssayRunFeatureValue[]
    - `__typename` string
    - `featureId` string: Developer-specified feature ID as defined in the app manifest / app definition version
    - `resourceId` string, nullable
  - `id` string
  - `messageSubscriptions` AppMessageSubscription[]
    - `__typename` string
    - `deliveryMethod` 'WEBHOOK' | 'WEBHOOK_INTERNAL'
    - `type` 'V2_BETA_CANVAS_CREATED' | 'V2_CANVAS_CREATED' | 'V2_CANVAS_USER_INTERACTED' | 'V2_CANVAS_INITIALIZED' | 'V2_APP_ACTIVATE_REQUESTED' | 'V2_APP_DEACTIVATED' | 'V2_APP_INSTALLED' | 'V2_BETA_APP_CONFIGURATION_UPDATED' | 'V2_ASSAY_RUN_CREATED' | 'V2_ASSAY_RUN_UPDATED_FIELDS' | 'V2_ENTITY_REGISTERED' | 'V2_ENTRY_CREATED' | 'V2_ENTRY_UPDATED_FIELDS' | 'V2_ENTRY_UPDATED_REVIEW_RECORD' | 'V2_REQUEST_CREATED' | 'V2_REQUEST_UPDATED_FIELDS' | 'V2_REQUEST_UPDATED_STATUS' | 'V2_WORKFLOW_TASK_GROUP_CREATED' | 'V2_WORKFLOW_TASK_GROUP_MAPPING_COMPLETED' | 'V2_WORKFLOW_TASK_GROUP_UPDATED_WATCHERS' | 'V2_WORKFLOW_TASK_CREATED' | 'V2_WORKFLOW_TASK_UPDATED_ASSIGNEE' | 'V2_WORKFLOW_TASK_UPDATED_SCHEDULED_ON' | 'V2_WORKFLOW_TASK_UPDATED_STATUS' | 'V2_WORKFLOW_TASK_UPDATED_FIELDS' | 'V2_WORKFLOW_OUTPUT_CREATED' | 'V2_WORKFLOW_OUTPUT_UPDATED_FIELDS' | 'V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_RUNNING' | 'V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_PENDING' | 'V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_SUCCEEDED' | 'V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_FAILED' | 'V3_CUSTOM_ENTITY_CREATED' | 'V3_CUSTOM_ENTITY_UPDATED' | 'V3_DNA_OLIGO_CREATED' | 'V3_DNA_OLIGO_UPDATED' | 'V3_DNA_SEQUENCE_CREATED' | 'V3_DNA_SEQUENCE_UPDATED' | 'V3_ENTRY_CREATED' | 'V3_PROJECT_CREATED' | 'V3_PROJECT_UPDATED' | 'V3_RNA_OLIGO_CREATED' | 'V3_RNA_OLIGO_UPDATED' | 'V3_RNA_SEQUENCE_CREATED' | 'V3_RNA_SEQUENCE_UPDATED' | 'V3_RUN_CREATED'
  - `modifiedAt` string, datetime, nullable
  - `name` string
  - `publicKey` string, nullable
  - `versionNumber` string, nullable
  - `webhookUrl` string, nullable

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/benchling/apis/benchling-api.md) - [All operations](https://skmtc.dev/benchling/apis/benchling-api/llms.txt) - [OpenAPI document](https://skmtc.dev/benchling/apis/benchling-api/revisions/c9f087b98b8b?raw)
