openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Molecule API version: 2.0.0 description: 'A Molecule represents a small molecule chemical compound in Benchling that is imported either as a MolFile or using SMILES (Simplified Molecular Input Line Entry System) notation. Molecules are registry entities that can be registered, searched, and linked to other items. When present, the `canonicalSmiles` field provides a standardized SMILES representation for comparison, while originalSmiles preserves the user-provided SMILES and may be null if SMILES was not provided at creation. Molecules support custom fields via schemas and can be organized in folders and projects.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'A Molecule represents a small molecule chemical compound in Benchling that is imported either as a MolFile or using SMILES (Simplified Molecular Input Line Entry System) notation. Molecules are registry entities that can be registered, searched, and linked to other items. When present, the `canonicalSmiles` field provides a standardized SMILES representation for comparison, while originalSmiles preserves the user-provided SMILES and may be null if SMILES was not provided at creation. Molecules support custom fields via schemas and can be organized in folders and projects.' name: Molecule x-bnch-core-type: Molecule x-bnch-organization: Benchling paths: /molecule: post: description: Create Molecule. operationId: Molecule.Create requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMoleculeInput' responses: '201': content: application/json: schema: $ref: '#/components/schemas/Molecule' description: Created '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: Create Molecule tags: - Molecule x-bnch-rate-limit-tier: 4 /molecule/items: get: description: List Molecule items. operationId: Molecule.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 responses: '200': content: application/json: schema: $ref: '#/components/schemas/MoleculePaginatedList' 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 Molecule items tags: - Molecule x-bnch-rate-limit-tier: 4 /molecule/{molecule_id}: get: description: Get a single Molecule by ID. operationId: Molecule.Get parameters: - description: ID of the Molecule. in: path name: molecule_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Molecule' 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 Molecule by ID tags: - Molecule x-bnch-rate-limit-tier: 5 patch: description: Update Molecule. operationId: Molecule.Update parameters: - description: ID of the Molecule. in: path name: molecule_id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMoleculeInput' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Molecule' description: OK '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: Update Molecule tags: - Molecule x-bnch-rate-limit-tier: 4 /molecule/{molecule_id}/authors/items: get: description: List Principal items. operationId: Molecule.authors.List parameters: - description: ID of the Molecule. in: path name: molecule_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: - Molecule x-bnch-rate-limit-tier: 4 /molecule:batch-create: post: description: Batch create Molecule synchronously in one transaction. Maximum 25 items per request. operationId: Molecule.BatchCreate requestBody: content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/CreateMoleculeInput' maxItems: 25 minItems: 1 type: array required: - items type: object responses: '201': content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/Molecule' type: array required: - items type: object description: Created '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: Batch create Molecule tags: - Molecule x-bnch-rate-limit-tier: 3 /molecule:batch-update: patch: description: Batch update Molecule synchronously in one transaction. Maximum 25 items per request. operationId: Molecule.BatchUpdate requestBody: content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/UpdateMoleculeInputWithPathParams' maxItems: 25 minItems: 1 type: array required: - items type: object responses: '200': content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/Molecule' type: array required: - items type: object description: OK '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: Batch update Molecule tags: - Molecule x-bnch-rate-limit-tier: 3 /molecule:bulk-create: post: description: Bulk create Molecule. operationId: Molecule.BulkCreate requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkImport' responses: '202': content: application/json: schema: $ref: '#/components/schemas/AsyncTaskLink' description: Task started '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: Bulk create Molecule tags: - Molecule x-bnch-rate-limit-tier: 2 /molecule:bulk-update: patch: description: Bulk update Molecule. operationId: Molecule.BulkUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkImport' responses: '202': content: application/json: schema: $ref: '#/components/schemas/AsyncTaskLink' description: Task started '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: Bulk update Molecule tags: - Molecule x-bnch-rate-limit-tier: 2 components: schemas: Molecule: allOf: - $ref: '#/components/schemas/IMolecule' - description: 'A Molecule represents a small molecule chemical compound in Benchling that is imported either as a MolFile or using SMILES (Simplified Molecular Input Line Entry System) notation. Molecules are registry entities that can be registered, searched, and linked to other items. When present, the `canonicalSmiles` field provides a standardized SMILES representation for comparison, while originalSmiles preserves the user-provided SMILES and may be null if SMILES was not provided at creation. Molecules support custom fields via schemas and can be organized in folders and projects.' properties: __typename: type: string authors: oneOf: - format: uri type: string - type: 'null' creator: oneOf: - $ref: '#/components/schemas/PrincipalRef' - type: 'null' schemaFields: oneOf: - items: $ref: '#/components/schemas/SchemaFieldValue' type: array - type: 'null' type: object IMolecule: properties: __typename: type: string aliases: oneOf: - items: type: string type: array - type: 'null' archiveReason: type: - 'null' - string archived: type: boolean canonicalSmiles: description: 'The canonicalized chemical structure in SMILES format. E.g., Nc1nc(=O)n([H:1])cc1C1CC1' type: - 'null' - string 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 modifiedAt: format: datetime type: - 'null' - string name: type: - 'null' - string originalSmiles: description: 'The original chemical structure in SMILES format. Null if the user did not originally provide SMILES. E.g., Nc1nc(=O)n([H:1])cc1C1CC1' 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' 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 ProjectRef: properties: __typename: type: string id: format: api_id 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 SchemaFieldValue: description: 'Represents a field value on a schematized object, pairing a `fieldDefinition` (describing the field''s type and constraints) with its actual `value` (a `BenchlingValue` such as text, number, date, or link to another object). The value may be null if no value has been set. Used within the `schemaFields` collection on objects that implement `HasSchema` to provide access to all custom field values defined by the object''s schema.' properties: __typename: type: string fieldDefinition: $ref: '#/components/schemas/SchemaFieldDefinitionRef' id: type: string linkedEntityId: type: - 'null' - string value: description: Union of BooleanValue, DateTimeValue, DateValue, DecimalValue, IntegerValue, JsonValue, ObjectLinkValue, ObjectLinkListValue, TextAndUrlValue, TextValue, ArrayValue oneOf: - anyOf: - $ref: '#/components/schemas/BooleanValue' - $ref: '#/components/schemas/DateTimeValue' - $ref: '#/components/schemas/DateValue' - $ref: '#/components/schemas/DecimalValue' - $ref: '#/components/schemas/IntegerValue' - $ref: '#/components/schemas/JsonValue' - $ref: '#/components/schemas/ObjectLinkValue' - $ref: '#/components/schemas/ObjectLinkListValue' - $ref: '#/components/schemas/TextAndUrlValue' - $ref: '#/components/schemas/TextValue' - $ref: '#/components/schemas/ArrayValue' discriminator: propertyName: __typename - type: 'null' 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 DateTimeValue: description: A type that represents datetime values. properties: __typename: type: string value: description: The datetime value with UTC as the timezone. format: datetime type: 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 JsonValue: description: A type that represents JSON values. properties: __typename: type: string value: description: The JSON value. type: object type: object TextAndUrlValue: description: A type that represents text (string) values with an associated URL. properties: __typename: type: string url: description: The URL associated with the value. Please use `TextValue` if you don't want a URL. type: string value: description: The text value. It may or may not be an empty string. type: 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 JsonAppConfigSpec: description: Specifies that an app configuration field should accept a JSON value. properties: __typename: type: string requiredConfig: type: - 'null' - boolean type: object AnyType: {} 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 ObjectLinkValue: description: A type that represents links to other objects. properties: __typename: type: string value: $ref: '#/components/schemas/ObjectRef' description: The object that this value links to, or an Inaccessible object if not found with the current permission set. 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 DecimalValue: description: A type that represents decimal value as strings. properties: __typename: type: string numericValue: deprecated: true description: Deprecated. The float representation of the decimal value. type: - 'null' - number value: description: The decimal value in a string representation type: - 'null' - string 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 RegistryRef: properties: __typename: type: string id: format: api_id type: string type: object SchemaFieldDefinitionRef: properties: __typename: type: string id: format: api_id type: string type: object ObjectLinkListValue: description: A type that represents a list of links to other objects. properties: __typename: type: string value: description: The list of objects that this value links to. Inaccessible objects may be returned instead if the object is not found with the current permission set. items: $ref: '#/components/schemas/ObjectRef' description: Union of AaSequence, Box, Container, CustomEntity, DnaSequence, DropdownOption, Entry, Location, Mixture, Molecule, Plate, Result, RnaSequence, Run, DnaOligo, RnaOligo type: array 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 UpdateMoleculeInputWithPathParams: additionalProperties: false properties: aliases: items: type: string type: array archiveReason: type: string archived: type: boolean authorIds: items: type: string type: array chemicalStructure: $ref: '#/components/schemas/ChemicalStructureInput' customFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object entityRegistryId: type: string folderId: type: string id: type: string name: type: string namingStrategy: enum: - NEW_IDS - IDS_FROM_NAMES - DELETE_NAMES - SET_FROM_NAME_PARTS - REPLACE_NAMES_FROM_PARTS - KEEP_NAMES - REPLACE_ID_AND_NAME_FROM_PARTS type: string registryId: type: - 'null' - string schemaFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object schemaId: type: string required: - id 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 DateValue: description: A type that represents date values. properties: __typename: type: string value: description: The date value. format: date type: string 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 MoleculePaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/Molecule' type: array nextToken: type: string type: object BooleanValue: description: A type that represents boolean values. properties: __typename: type: string value: description: The boolean value. type: 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 BulkImport: example: fileId: scrfile_jdf8BV24kLmN properties: fileId: description: The API ID of the scratch file (`scrfile_XXXXXXXX`) containing the items to import. The referenced file must be a scratch file whose upload has completed successfully. type: string required: - fileId type: object UpdateMoleculeInput: additionalProperties: false properties: aliases: items: type: string type: array archiveReason: type: string archived: type: boolean authorIds: items: type: string type: array chemicalStructure: $ref: '#/components/schemas/ChemicalStructureInput' customFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object entityRegistryId: type: string folderId: type: string name: type: string namingStrategy: enum: - NEW_IDS - IDS_FROM_NAMES - DELETE_NAMES - SET_FROM_NAME_PARTS - REPLACE_NAMES_FROM_PARTS - KEEP_NAMES - REPLACE_ID_AND_NAME_FROM_PARTS type: string registryId: type: - 'null' - string schemaFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object schemaId: type: string 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 ChemicalStructureInput: additionalProperties: false properties: structureFormat: enum: - smiles - molfile type: string value: type: string required: - structureFormat - value 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 IntegerValue: description: A type that represents integer values. properties: __typename: type: string value: description: The integer value. type: integer 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 FieldValueInput: additionalProperties: false properties: value: $ref: '#/components/schemas/AnyType' required: - value type: object AsyncTaskLink: properties: pollingUri: format: uri type: string taskId: type: 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 ArrayValue: description: A type that represents a list of BenchlingValues, used for multi-value cells (e.g. alias columns). properties: __typename: type: string value: items: anyOf: - $ref: '#/components/schemas/BooleanValue' - $ref: '#/components/schemas/DateTimeValue' - $ref: '#/components/schemas/DateValue' - $ref: '#/components/schemas/DecimalValue' - $ref: '#/components/schemas/IntegerValue' - $ref: '#/components/schemas/JsonValue' - $ref: '#/components/schemas/ObjectLinkValue' - $ref: '#/components/schemas/ObjectLinkListValue' - $ref: '#/components/schemas/TextAndUrlValue' - $ref: '#/components/schemas/TextValue' description: Union of BooleanValue, DateTimeValue, DateValue, DecimalValue, IntegerValue, JsonValue, ObjectLinkValue, ObjectLinkListValue, TextAndUrlValue, TextValue discriminator: propertyName: __typename type: array 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 ObjectRef: properties: __typename: type: string id: format: api_id type: string type: object TextValue: description: A type that represents text (string) values. properties: __typename: type: string value: description: The text value. It may or may not be an empty string. 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 CreateMoleculeInput: additionalProperties: false properties: aliases: items: type: string type: array authorIds: items: type: string type: array chemicalStructure: $ref: '#/components/schemas/ChemicalStructureInput' customFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object entityRegistryId: type: string folderId: type: string name: type: string namingStrategy: enum: - NEW_IDS - IDS_FROM_NAMES - DELETE_NAMES - SET_FROM_NAME_PARTS - REPLACE_NAMES_FROM_PARTS - KEEP_NAMES - REPLACE_ID_AND_NAME_FROM_PARTS type: string registryId: type: - 'null' - string schemaFields: additionalProperties: $ref: '#/components/schemas/FieldValueInput' type: object schemaId: type: string required: - folderId - name - chemicalStructure 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