---
title: "List Principal items"
method: GET
path: "/api/v3/entry/{entry_id}/authors/items"
tags: ["Entry"]
---

# List Principal items

`GET /api/v3/entry/{entry_id}/authors/items`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/entry/{entry_id}/authors/items`
- Auth: HTTP bearer

List Principal items.

## Path parameters

- `entry_id` string, required

## Headers

- `EARLY-ACCESS` string

## Response `200`

OK

- PrincipalUnpaginatedList
  - `items` Principal[]
    - union
      - object: Represents an installed Benchling App on a tenant, created from an `AppDefinitionVersion`. App installations store tenant-specific configuration values and feature bindings. As a Principal, app installations can be attributed as actors for API operations and auditing.
        - `__typename` 'AppInstallation', required: Discriminator value: AppInstallation
        - `archiveReason` string, nullable
        - `archived` boolean
        - `configurationValues` string, uri
        - `createdAt` string, datetime, nullable
        - `creator` PrincipalRef
          - `__typename` string
          - `id` string, api_id
        - `featureValues` AssayRunFeatureValue[]
          - `__typename` string
          - `featureId` string: Developer-specified feature ID as defined in the app manifest / app definition version
          - `resourceId` string, nullable
        - `id` string
        - `modifiedAt` string, datetime, nullable
        - `name` string
      - object: 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`.
        - `__typename` 'LegacyAppInstallation', required: Discriminator value: LegacyAppInstallation
        - `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.
              - …
            - 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
        - `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.
              - …
            - object: Defines an assay run feature for a Benchling App, allowing the app to process or generate lab automation run data.
              - …
            - 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.
              - …
        - `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'
        - `modifiedAt` string, datetime, nullable
        - `name` string
        - `publicKey` string, nullable
        - `versionNumber` string, nullable
        - `webhookUrl` string, nullable
      - object: Represents a non-human identity used for system integrations and automated processes within Benchling. Service principals act as the identity for service accounts that perform actions via APIs or background processes without human intervention. Unlike `User`, which represents a human user, ServicePrincipal is used when an integration or automated system needs to be attributed as the actor for auditing and attribution purposes. Service principals implement the Principal interface, allowing them to appear as creators or actors on domain objects. Also known as "service account" in some contexts.
        - `__typename` string, required
        - `id` string
        - `modifiedAt` string, datetime, nullable
        - `name` string, nullable
      - object: Represents a human user in Benchling who can log in, perform actions, and own data. Users belong to one or more Organizations and may be members of Teams within those organizations. As an Owner, users can own Projects, Folders, and other resources. As a Principal, users can be assigned as reviewers, authors, or collaborators on various items. Users have attributes like email and username for identification. Users are distinct from `ServicePrincipal`, which represents non-human service accounts used for integrations.
        - `__typename` string, required
        - `createdAt` string, datetime
        - `email` string
        - `id` string
        - `lastSeen` string, datetime, nullable
        - `modifiedAt` string, datetime
        - `name` string, nullable
        - `status` 'ACTIVE' | 'SUSPENDED'
        - `username` string

## Other responses

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

## Changes

- **2026-11-05** `3873a10bf7b8`: 1 info
  - removed the `V3_RUN_CREATED` enum value from the `items/items/oneOf[subschema #2]/messageSubscriptions/items/type` response property for the response status `200`

[Operation history](https://skmtc.dev/benchling/apis/benchling-api/changes/api/v3/entry/:entry_id/authors/items/get.md)

---

[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/3873a10bf7b8?raw)
