openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Mixture API version: 2.0.0 description: 'A Mixture is a formulation entity in Benchling that represents a combination of ingredients with specified amounts. Mixtures are commonly used for buffers, media, reagent preparations, and other multi-component solutions. Each mixture has a total amount with units (see MixtureMeasurementUnits) and contains a list of Ingredients specifying what goes into the mixture. Mixtures can be registered in the Registry, organized in folders and projects, and may have preparation instructions attached (see MixtureInstructions). The `allowMeasuredIngredients` setting (from the schema) determines whether the mixture is a thoeretical "recipe", which has target amonunts, or a physical "prep", with measured amounts.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'A Mixture is a formulation entity in Benchling that represents a combination of ingredients with specified amounts. Mixtures are commonly used for buffers, media, reagent preparations, and other multi-component solutions. Each mixture has a total amount with units (see MixtureMeasurementUnits) and contains a list of Ingredients specifying what goes into the mixture. Mixtures can be registered in the Registry, organized in folders and projects, and may have preparation instructions attached (see MixtureInstructions). The `allowMeasuredIngredients` setting (from the schema) determines whether the mixture is a thoeretical "recipe", which has target amonunts, or a physical "prep", with measured amounts.' name: Mixture x-bnch-core-type: Mixture x-bnch-organization: Benchling paths: /mixture/items: get: description: List Mixture items. operationId: Mixture.List parameters: - $ref: '#/components/parameters/archiveReason.anyOf' - $ref: '#/components/parameters/archived.anyOf' - $ref: '#/components/parameters/authors.anyOf' - $ref: '#/components/parameters/createdAt.gt' - $ref: '#/components/parameters/createdAt.gte' - $ref: '#/components/parameters/createdAt.lt' - $ref: '#/components/parameters/createdAt.lte' - $ref: '#/components/parameters/creator.anyOf' - $ref: '#/components/parameters/fieldset.anyOf' - $ref: '#/components/parameters/id.anyOf' - $ref: '#/components/parameters/mentionedIn.anyOf' - $ref: '#/components/parameters/modifiedAt.gt' - $ref: '#/components/parameters/modifiedAt.gte' - $ref: '#/components/parameters/modifiedAt.lt' - $ref: '#/components/parameters/modifiedAt.lte' - $ref: '#/components/parameters/name.anyOf' - $ref: '#/components/parameters/name.anyOf.caseSensitive' - $ref: '#/components/parameters/nextToken' - $ref: '#/components/parameters/omit' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/project.eq' - $ref: '#/components/parameters/registry.eq' - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/schema.anyOf' - $ref: '#/components/parameters/schema.eq' - $ref: '#/components/parameters/systemCategory.anyOf' - description: 'Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.' in: query name: sort schema: default: modifiedAt:desc enum: - createdAt:asc - createdAt:desc - modifiedAt:asc - modifiedAt:desc type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MixturePaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List Mixture items tags: - Mixture x-bnch-rate-limit-tier: 4 /mixture/{mixture_id}: get: description: Get a single Mixture by ID. operationId: Mixture.Get parameters: - description: ID of the Mixture. in: path name: mixture_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Mixture' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Get Mixture by ID tags: - Mixture x-bnch-rate-limit-tier: 5 /mixture/{mixture_id}/authors/items: get: description: List Principal items. operationId: Mixture.authors.List parameters: - description: ID of the Mixture. in: path name: mixture_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/PrincipalUnpaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List Principal items tags: - Mixture x-bnch-rate-limit-tier: 4 components: schemas: IMixture: properties: __typename: type: string aliases: oneOf: - items: type: string type: array - type: 'null' allowMeasuredIngredients: description: Derived from the mixture's schema. type: - 'null' - boolean amount: description: 'The positive numerical amount value of this mixture in string format (to preserve full precision). Pair with `units`. Supports scientific notation (1.23e4).' type: - 'null' - string archiveReason: type: - 'null' - string archived: type: boolean createdAt: format: datetime type: - 'null' - string customFields: oneOf: - items: $ref: '#/components/schemas/CustomField' type: array - type: 'null' entityRegistryId: type: - 'null' - string folder: oneOf: - $ref: '#/components/schemas/FolderRef' - type: 'null' id: type: string ingredients: description: List of ingredients on this mixture. oneOf: - items: $ref: '#/components/schemas/Ingredient' type: array - type: 'null' modifiedAt: format: datetime type: - 'null' - string name: type: - 'null' - string project: oneOf: - $ref: '#/components/schemas/ProjectRef' - type: 'null' registrationOrigin: oneOf: - $ref: '#/components/schemas/RegistrationOrigin' - type: 'null' registry: oneOf: - $ref: '#/components/schemas/RegistryRef' - type: 'null' schema: oneOf: - $ref: '#/components/schemas/EntitySchemaRef' - type: 'null' units: enum: - NL - UL - ML - L - G - KG - UNITS - UG - MG - null type: - 'null' - string type: object ProjectRef: properties: __typename: type: string id: format: api_id type: string type: object AppInstallation: description: '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.' properties: __typename: type: string archiveReason: type: - 'null' - string archived: type: boolean configurationValues: format: uri type: string createdAt: format: datetime type: - 'null' - string creator: oneOf: - $ref: '#/components/schemas/PrincipalRef' - type: 'null' featureValues: items: $ref: '#/components/schemas/AssayRunFeatureValue' type: array id: type: string modifiedAt: format: datetime type: - 'null' - string name: type: string type: object CustomField: description: 'A name-value pair for storing additional metadata on objects that support custom fields. CustomFields provide a flexible way to attach arbitrary string data to entities, containers, datasets, and other Benchling objects without modifying their schemas. Objects that can have custom fields implement the HasCustomFields interface. Unlike schema-defined fields, custom fields are not validated against a schema and can be freely added or modified.' properties: __typename: type: string name: type: - 'null' - string value: type: - 'null' - string type: object User: description: '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.' properties: __typename: type: string createdAt: format: datetime type: string email: type: string id: type: string lastSeen: format: datetime type: - 'null' - string modifiedAt: format: datetime type: string name: type: - 'null' - string status: enum: - ACTIVE - SUSPENDED type: string username: type: string type: object AppConfigWorkflowTaskSchemaOutput: description: Defines the output field structure for a workflow task schema configuration. properties: __typename: type: string fieldDefinitions: oneOf: - items: $ref: '#/components/schemas/AppConfigFieldDefinition' type: array - type: 'null' type: object ResourceAppConfigSpec: description: '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.' properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: enum: - 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 - null type: - 'null' - string type: object RegistrationOrigin: description: 'Captures the provenance of an entity''s registration into the registry. The `originEntry` links to the `DocumentLike` (typically an entry or notebook) from which the entity was registered, providing traceability back to the original experimental context. The `registeredAt` timestamp records when the registration occurred. This information helps scientists understand where registered entities came from and when they were added to the registry.' properties: __typename: type: string originEntry: oneOf: - $ref: '#/components/schemas/DocumentLikeRef' - type: 'null' registeredAt: format: datetime type: - 'null' - string type: object FolderRef: properties: __typename: type: string id: format: api_id type: string type: object FloatAppConfigSpec: description: Specifies that an app configuration field should accept a floating-point number. properties: __typename: type: string enum: description: Optional enum constraint — if present, the value must be one of these floats. oneOf: - items: type: number type: array - type: 'null' requiredConfig: type: - 'null' - boolean type: object WorkflowTaskSchemaAppConfigSpec: description: 'Specifies that an app configuration field should reference a workflow task schema. Kept separate from SchemaAppConfigSpec because it supports output field definitions.' properties: __typename: type: string fieldDefinitions: oneOf: - items: $ref: '#/components/schemas/AppConfigFieldDefinition' type: array - type: 'null' output: description: Output field definitions for the workflow task schema. oneOf: - $ref: '#/components/schemas/AppConfigWorkflowTaskSchemaOutput' - type: 'null' requiredConfig: type: - 'null' - boolean type: object EntitySchemaAppConfigSpec: description: 'Specifies that an app configuration field should reference an entity schema. Kept separate from SchemaAppConfigSpec because it carries a subtype constraint.' properties: __typename: type: string fieldDefinitions: oneOf: - items: $ref: '#/components/schemas/AppConfigFieldDefinition' type: array - type: 'null' requiredConfig: type: - 'null' - boolean subtype: description: 'Optional subtype constraint — if present, the referenced schema must be of this entity type (e.g. DNA_SEQUENCE, AA_SEQUENCE).' enum: - AA_SEQUENCE - CUSTOM_ENTITY - DNA_OLIGO - DNA_SEQUENCE - MIXTURE - MOLECULE - RNA_OLIGO - RNA_SEQUENCE - null type: - 'null' - string type: object AppConfigFieldDefinition: description: 'Defines a field within an app configuration that references schema fields. Specifies the field name, type, whether it accepts multiple values, and whether it is required.' properties: __typename: type: string description: type: - 'null' - string isMulti: description: Whether the field must be multi-valued — null means either true or false is acceptable. type: - 'null' - boolean isRequired: description: Whether the field must be required — null means either true or false is acceptable. type: - 'null' - boolean name: type: string requiredConfig: type: - 'null' - boolean type: description: Type constraint for the field — null means any type is acceptable. enum: - 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 - null type: - 'null' - string type: object SchemaAppConfigSpec: description: '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.' properties: __typename: type: string fieldDefinitions: oneOf: - items: $ref: '#/components/schemas/AppConfigFieldDefinition' type: array - type: 'null' requiredConfig: type: - 'null' - boolean type: enum: - 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 - null type: - 'null' - string type: object EntityRef: properties: __typename: type: string id: format: api_id type: string type: object JsonAppConfigSpec: description: Specifies that an app configuration field should accept a JSON value. properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object CanvasFeatureSpec: description: '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.' properties: __typename: type: string featureId: type: string locations: oneOf: - items: enum: - ENTRY - ENTRY_TEMPLATE - APP_HOME type: string type: array - type: 'null' name: type: string type: object MixturePaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/Mixture' type: array nextToken: type: string type: object InternalServerError: properties: detail: type: - 'null' - string - object errorId: type: string instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object EntitySchemaRef: properties: __typename: type: string id: format: api_id type: string type: object BooleanAppConfigSpec: description: Specifies that an app configuration field should accept a boolean value. properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object PrincipalRef: properties: __typename: type: string id: format: api_id type: string type: object TextAppConfigSpec: description: Specifies that an app configuration field should accept a text string. properties: __typename: type: string enum: description: Optional enum constraint — if present, the value must be one of these strings. oneOf: - items: type: string type: array - type: 'null' requiredConfig: type: - 'null' - boolean type: object Ingredient: description: 'Represents a single component within a Mixture, specifying the substance and its amount. Each Ingredient references a componentEntity (the substance being added), an amount with units (see IngredientMeasurementUnits), and optional lot tracking information. The amount can be a numeric value or "QS" (quantum satis, meaning "as much as is needed") for one ingredient per mixture. Ingredients may optionally track component lots either as Container references (for physical inventory tracking) or as text. The targetAmount field is used when a mixture is derived from a parent mixture and indicates the proportional amount needed.' properties: __typename: type: string amount: description: 'The amount value of this ingredient in its mixture, in string format (to preserve full precision). Pair with `units`. Supports scientific notation (1.23e4). One ingredient on this mixture can have an amount value of `"QS"`.' type: - 'null' - string catalogIdentifier: type: - 'null' - string componentEntity: oneOf: - $ref: '#/components/schemas/EntityRef' - type: 'null' componentLotContainer: description: 'The container representing the component lot for this ingredient. This is only present if the mixture schema supports component lots in "storage" format.' oneOf: - $ref: '#/components/schemas/ContainerRef' - type: 'null' componentLotEntity: description: 'The entity representing the component lot for this ingredient. This is only present if the mixture schema supports component lots in "storage" format.' oneOf: - $ref: '#/components/schemas/EntityRef' - type: 'null' componentLotText: description: 'Text representing the component lot for this ingredient. This is only present if the mixture schema supports component lots in "text" format.' type: - 'null' - string hasParent: type: - 'null' - boolean notes: type: - 'null' - string targetAmount: description: 'The target amount for this ingredient such that this ingredient''s proportion in its mixture would preserve the equivalent ingredient''s proportion in the parent mixture. Pair with `units`.' type: - 'null' - string units: enum: - NL - UL - ML - L - MG - G - UNITS - CELLS - KG - MOL - UMOL - MMOL - UG - null type: - 'null' - string type: object RegistryRef: properties: __typename: type: string id: format: api_id type: string type: object LegacyAppInstallation: description: '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`.' properties: __typename: type: string archiveReason: type: - 'null' - string archived: type: boolean configurationSpecs: items: $ref: '#/components/schemas/AppConfigOption' type: array configurationValues: format: uri type: string createdAt: format: datetime type: - 'null' - string creator: oneOf: - $ref: '#/components/schemas/PrincipalRef' - type: 'null' description: type: - 'null' - string featureSpecs: items: anyOf: - $ref: '#/components/schemas/CanvasFeatureSpec' - $ref: '#/components/schemas/AssayRunFeatureSpec' - $ref: '#/components/schemas/AppHomepageFeatureSpec' description: Union of CanvasFeatureSpec, AssayRunFeatureSpec, AppHomepageFeatureSpec discriminator: propertyName: __typename type: array featureValues: items: $ref: '#/components/schemas/AssayRunFeatureValue' type: array id: type: string messageSubscriptions: items: $ref: '#/components/schemas/AppMessageSubscription' type: array modifiedAt: format: datetime type: - 'null' - string name: type: string publicKey: type: - 'null' - string versionNumber: type: - 'null' - string webhookUrl: type: - 'null' - string type: object DateAppConfigSpec: description: Specifies that an app configuration field should accept a date value. properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object AppMessageSubscription: description: 'Represents an app''s subscription to a specific event type, specifying the event type and how notifications should be delivered (see `DeliveryMethod`).' properties: __typename: type: string deliveryMethod: enum: - WEBHOOK - WEBHOOK_INTERNAL type: string type: enum: - 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 type: string type: object DropdownAppConfigSpec: description: Specifies that an app configuration field should be a dropdown with predefined options. properties: __typename: type: string options: oneOf: - items: $ref: '#/components/schemas/AppConfigDropdownOption' type: array - type: 'null' requiredConfig: type: - 'null' - boolean type: object ArrayAppConfigSpec: description: Specifies that an app configuration field should accept an array of values. properties: __typename: type: string elementDefinition: description: Defines the named config options allowed within this array and their type constraints. items: $ref: '#/components/schemas/ArrayAppConfigOption' type: array maxElements: description: Maximum number of elements allowed in the array (1-500); null means no maximum. type: - 'null' - integer minElements: description: Minimum number of elements allowed in the array (0-500); null means no minimum. type: - 'null' - integer requiredConfig: type: - 'null' - boolean type: object PrincipalUnpaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/Principal' type: array type: object AssayRunFeatureSpec: description: 'Defines an assay run feature for a Benchling App, allowing the app to process or generate lab automation run data.' properties: __typename: type: string featureId: type: string name: type: string type: object AppHomepageFeatureSpec: description: 'Defines a homepage feature for a Benchling App, providing a dedicated landing page within the Benchling application for the app''s functionality.' properties: __typename: type: string featureId: type: string name: type: string type: object Principal: anyOf: - $ref: '#/components/schemas/AppInstallation' - $ref: '#/components/schemas/LegacyAppInstallation' - $ref: '#/components/schemas/ServicePrincipal' - $ref: '#/components/schemas/User' discriminator: propertyName: __typename type: object DocumentLikeRef: properties: __typename: type: string id: format: api_id type: string type: object AssayRunFeatureValue: description: 'Links an app''s assay run feature to a specific resource (typically a run schema) on a tenant. The featureId identifies the feature from the app definition, and resourceId references the tenant-specific resource it''s bound to.' properties: __typename: type: string featureId: description: Developer-specified feature ID as defined in the app manifest / app definition version type: string resourceId: type: - 'null' - string type: object ArrayAppConfigOption: description: 'A config option nested within an array-type app configuration field. Structurally identical to AppConfigOption — it has a name and a configSpec — but its configSpec accepts the same config types as the top level except nested arrays (see ArrayAppConfigElementSpec).' properties: __typename: type: string configSpec: anyOf: - $ref: '#/components/schemas/BooleanAppConfigSpec' - $ref: '#/components/schemas/IntegerAppConfigSpec' - $ref: '#/components/schemas/FloatAppConfigSpec' - $ref: '#/components/schemas/TextAppConfigSpec' - $ref: '#/components/schemas/SecureTextAppConfigSpec' - $ref: '#/components/schemas/DateAppConfigSpec' - $ref: '#/components/schemas/DateTimeAppConfigSpec' - $ref: '#/components/schemas/JsonAppConfigSpec' - $ref: '#/components/schemas/DropdownAppConfigSpec' - $ref: '#/components/schemas/EntitySchemaAppConfigSpec' - $ref: '#/components/schemas/WorkflowTaskSchemaAppConfigSpec' - $ref: '#/components/schemas/SchemaAppConfigSpec' - $ref: '#/components/schemas/ResourceAppConfigSpec' description: Union of BooleanAppConfigSpec, IntegerAppConfigSpec, FloatAppConfigSpec, TextAppConfigSpec, SecureTextAppConfigSpec, DateAppConfigSpec, DateTimeAppConfigSpec, JsonAppConfigSpec, DropdownAppConfigSpec, EntitySchemaAppConfigSpec, WorkflowTaskSchemaAppConfigSpec, SchemaAppConfigSpec, ResourceAppConfigSpec discriminator: propertyName: __typename description: type: - 'null' - string name: type: string type: object GeneralError: properties: detail: type: - 'null' - string - object instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object ServicePrincipal: description: '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.' properties: __typename: type: string id: type: string modifiedAt: format: datetime type: - 'null' - string name: type: - 'null' - string type: object IntegerAppConfigSpec: description: Specifies that an app configuration field should accept an integer value. properties: __typename: type: string enum: description: Optional enum constraint — if present, the value must be one of these integers. oneOf: - items: type: integer type: array - type: 'null' requiredConfig: type: - 'null' - boolean type: object Mixture: allOf: - $ref: '#/components/schemas/IMixture' - description: 'A Mixture is a formulation entity in Benchling that represents a combination of ingredients with specified amounts. Mixtures are commonly used for buffers, media, reagent preparations, and other multi-component solutions. Each mixture has a total amount with units (see MixtureMeasurementUnits) and contains a list of Ingredients specifying what goes into the mixture. Mixtures can be registered in the Registry, organized in folders and projects, and may have preparation instructions attached (see MixtureInstructions). The `allowMeasuredIngredients` setting (from the schema) determines whether the mixture is a thoeretical "recipe", which has target amonunts, or a physical "prep", with measured amounts.' properties: __typename: type: string authors: oneOf: - format: uri type: string - type: 'null' creator: oneOf: - $ref: '#/components/schemas/PrincipalRef' - type: 'null' type: object AppConfigOption: description: 'Defines a configuration option in an app''s configuration schema. Each option has a name, optional description, and a configSpec defining the expected value type and validation.' properties: __typename: type: string configSpec: anyOf: - $ref: '#/components/schemas/BooleanAppConfigSpec' - $ref: '#/components/schemas/IntegerAppConfigSpec' - $ref: '#/components/schemas/FloatAppConfigSpec' - $ref: '#/components/schemas/TextAppConfigSpec' - $ref: '#/components/schemas/SecureTextAppConfigSpec' - $ref: '#/components/schemas/DateAppConfigSpec' - $ref: '#/components/schemas/DateTimeAppConfigSpec' - $ref: '#/components/schemas/JsonAppConfigSpec' - $ref: '#/components/schemas/ArrayAppConfigSpec' - $ref: '#/components/schemas/DropdownAppConfigSpec' - $ref: '#/components/schemas/EntitySchemaAppConfigSpec' - $ref: '#/components/schemas/WorkflowTaskSchemaAppConfigSpec' - $ref: '#/components/schemas/SchemaAppConfigSpec' - $ref: '#/components/schemas/ResourceAppConfigSpec' description: Union of BooleanAppConfigSpec, IntegerAppConfigSpec, FloatAppConfigSpec, TextAppConfigSpec, SecureTextAppConfigSpec, DateAppConfigSpec, DateTimeAppConfigSpec, JsonAppConfigSpec, ArrayAppConfigSpec, DropdownAppConfigSpec, EntitySchemaAppConfigSpec, WorkflowTaskSchemaAppConfigSpec, SchemaAppConfigSpec, ResourceAppConfigSpec discriminator: propertyName: __typename description: type: - 'null' - string name: type: string type: object AppConfigDropdownOption: description: Defines an option within a dropdown-type app configuration field. properties: __typename: type: string description: type: - 'null' - string name: type: string requiredConfig: type: - 'null' - boolean type: object ContainerRef: properties: __typename: type: string id: format: api_id type: string type: object DateTimeAppConfigSpec: description: Specifies that an app configuration field should accept a datetime value. properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object SecureTextAppConfigSpec: description: 'Specifies that an app configuration field should accept secure (encrypted) text. Used for sensitive data like API keys or credentials.' properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object parameters: modifiedAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30. in: query name: modifiedAt.gt schema: format: datetime type: string id.anyOf: description: Restricts results to those matching any of the specified IDs. Comma-separated list. explode: false in: query name: id.anyOf schema: items: type: string maxItems: 100 type: array fieldset.anyOf: description: Restricts results to those whose schema implements any of the specified fieldset API IDs (custom schema interfaces). Comma-separated list. explode: false in: query name: fieldset.anyOf schema: items: type: string maxItems: 100 type: array archived.anyOf: description: If true, returns archived items. If false, returns unarchived items. If both true and false, returns archived and unarchived items. Comma-separated list. explode: false in: query name: archived.anyOf schema: items: type: boolean maxItems: 2 type: array createdAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. <= 2017-04-30. in: query name: createdAt.lte schema: format: datetime type: string createdAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30. in: query name: createdAt.gte schema: format: datetime type: string mentionedIn.anyOf: description: Restricts results to items mentioned in entries matching any of the specified entry IDs. Comma-separated list. explode: false in: query name: mentionedIn.anyOf schema: items: type: string maxItems: 100 type: array createdAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30. in: query name: createdAt.gt schema: format: datetime type: string createdAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. < 2017-04-30. in: query name: createdAt.lt schema: format: datetime type: string name.anyOf: description: Restricts results to those that match any of the specified names. Case insensitive. Warning - this filter can be non-performant due to case insensitivity. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf schema: items: type: string maxItems: 100 type: array name.anyOf.caseSensitive: description: Restricts results to those that match any of the specified names. Case sensitive. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf.caseSensitive schema: items: type: string maxItems: 100 type: array omit: description: Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning. explode: false in: query name: omit schema: items: type: string type: array modifiedAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30. in: query name: modifiedAt.gte schema: format: datetime type: string authors.anyOf: description: Restricts results to those whose author matches any of the specified user or author IDs. Comma-separated list. explode: false in: query name: authors.anyOf schema: items: type: string maxItems: 100 type: array registry.eq: description: ID of a registry. Restricts results to those registered in this registry. Specifying "null" returns unregistered items. in: query name: registry.eq schema: type: string project.eq: description: ID of a project. Restricts results to those in the project. in: query name: project.eq schema: type: string schema.anyOf: description: Restricts results to those that match any of the specified schema IDs. Use only one `schema` filter arg at a time. Comma-separated list. explode: false in: query name: schema.anyOf schema: items: type: string maxItems: 100 type: array nextToken: description: Token for pagination in: query name: nextToken schema: type: string systemCategory.anyOf: description: Restricts results to those whose schema implements any of the specified system category API IDs (non-exclusive static schema interfaces). Comma-separated list. explode: false in: query name: systemCategory.anyOf schema: items: type: string maxItems: 100 type: array pageSize: description: Number of results to return. Defaults to 50, maximum of 100. in: query name: pageSize schema: type: integer modifiedAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. <= 2017-04-30. in: query name: modifiedAt.lte schema: format: datetime type: string modifiedAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. < 2017-04-30. in: query name: modifiedAt.lt schema: format: datetime type: string creator.anyOf: description: Restricts results to those created by any of the specified user IDs. Comma-separated list. explode: false in: query name: creator.anyOf schema: items: type: string maxItems: 100 type: array archiveReason.anyOf: description: Restricts items to those with any of the specified archive reasons. Use "NOT_ARCHIVED" to filter for unarchived items. Use "ANY_ARCHIVED" to filter for archived items regardless of reason. Use "ANY_ARCHIVED_OR_NOT_ARCHIVED" to return items for both archived and unarchived. Comma-separated list. explode: false in: query name: archiveReason.anyOf schema: items: type: string maxItems: 10 type: array returning: description: Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit. explode: false in: query name: returning schema: items: type: string type: array schema.eq: description: Single schema ID. Restricts results to those that match the specified schema exactly. Use only one `schema` filter arg at a time. in: query name: schema.eq schema: type: string responses: TooManyRequests: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Too Many Requests BadRequest: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Bad Request InternalServerError: content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error NotFound: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Not Found Forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Forbidden securitySchemes: basicApiKeyAuth: description: Use issued API key for standard access to the API scheme: basic type: http basicClientIdSecretAuth: description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token. scheme: basic type: http oAuth: description: OAuth2 Client Credentials flow intended for service access flows: clientCredentials: scopes: {} tokenUrl: /oauth/token type: oauth2