> This page is for Developer Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/_mcp/server.

## Benchling SDK Version 1.5.0 Release

Version 1.5.0 of the Benchling SDK includes sweeping fixes, promotion of various `alpha` and `beta` features, and support for new features like App Configuration, RNA, and more. Version 1.5.0 includes bug fixes that may result in breaking changes; read on for more details.

### What’s changing?

The release of version 1.5.0 represents a significant investment in improving the stability and functionality of the Benchling SDK. In addition to adding new functionality and updating dependencies, this release includes a number of bug fixes across various areas in the SDK. While we’ve made every effort to preserve backwards compatibility in this release, some fixes involve changes in method signature or return value that constitute a breaking change according to strict semantic versioning.

These changes involve fixing functionality that was not working as designed in version 1.4.1 or earlier, or are required to enable such fixes, and we expect the impact on most SDK users to be low. While there is net-new functionality, this version does not represent a major evolution of the Benchling SDK. For this reason, we’ve decided to not adhere to strict semantic versioning, and tag this version as MINOR (i.e. 1.5.0) instead of MAJOR (i.e. 2.0.0).

For the purposes of evaluating whether version 1.5.0 will be compatible with your existing implementation, please reference the following list of changes:

#### Added:

* Updated API shapes based on version `2.0.69` of `benchling_api_client`
* Support for App Configuration endpoints via `benchling.apps`
* Support for molecule endpoints via `benchling.molecules`
* Support for RNA sequence endpoints via `benchling.rna_sequences`
* Support for nucleotide alignments endpoints via `benchling.nucleotide_alignments`
* Beta support for Worklists endpoints via `benchling.v2.beta.worklists`
* Beta support for `find_matching_regions()` (promoted from alpha) via `benchling.v2.beta.aa_sequences.find_matching_regions()`

#### Updated:

* Improved deserializing of domain entities returned by the API
  * Polymorphic types (e.g. `EntityOrInaccessibleResource`) are now Union types instead of classes. This means that these types cannot be instantiated, and are available only as type declarations.
  * The SDK will now return instances of the correct domain entity instead of returning an instance of a polymorphic class whenever possible (e.g. `DnaOligo` instead of `EntityOrInaccessibleResource` inside a `ContainerContent`)
  * Improved fidelity when deserializing objects: If the SDK cannot properly deserialize an object, it will return an instance of `UnknownType` with properties available in `additional_properties`.
* `BenchlingError` class is now hashable
* Support for `registryId` parameter in listing endpoints in `benchling.schemas`
* Support for creation times filtering options in `benchling.assay_results.list()`
* Dependency constraints for the `attrs` package are relaxed to allow major version 22
* Dependency on `httpx` pinned to version 23+

#### Deprecated/Removed:

* `benchling.dna_alignments` is deprecated in favor of `benchling.nucleotide_alignments`
* `benchling.v2.beta.apps.get_configuration_by_app_id` is deprecated in favor of `benchling.apps.list_app_configuration_items`
* Some models that were available but unused have been removed. Specifically:
  * `IngredientAmount`
  * `RnaSequenceCreateRequest`
  * `RnaSequenceForBaseForCreateRequest`
  * `RnaSequenceForBulkUpdateRequest`

#### Fixes:

* `names_any_of`  parameter in listing endpoints now correctly parses names which contain a comma
* `benchling.mixtures.list()` no longer fails when component volume is assigned
* Corrected the return type of `benchling.registry.entities()` to reflect what the method actually returns at runtime
  * Note - This change doesn't impact the method's functionality, but it could impact code that is casting the returned object or otherwise relying on specific typing checks
* SDK reference documentation now correctly reflects current stable release, excludes preview releases
* Using `copy()` or `deepcopy()` to clone SDK models no longer causes serialization failures when attributes are `UNSET`
* Improved serialization/deserialization of objects with fields that are not set (i.e. `None`)
* Empty arrays passed to filter parameters in listing endpoints match no items instead of all items
* Types defined as `string` now deserialize correctly as strings rather than objects (e.g. `Mixture.amount`)
* `benchling.assay_runs.bulk_get` correctly parses lists of `assay_run_ids`
* `max_created_time` and `min_created_time` parameters for `benchling.assay_results.list` correctly accept unix timestamps instead of datetime
* Non-nullable enum values correctly default to `UNSET` instead of `None`
* Listing endpoint parameters that specify `Iterable` now correctly support any iterable type
* Custom `httpx` clients now properly supported when using `benchling.api` to make custom calls

### When is this happening?

Version 1.5.0 of the Benchling SDK is now live! Find the SDK in [PyPI](https://pypi.org/project/benchling-sdk/1.5.0/)