> 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.

## SDK Version 1.10.0 Release

Version 1.10.0 of the Benchling SDK promotes many of the features in the `benchling.apps` package from `beta` to `stable`. Some significant changes were made as part of this final promotion: Dataset methods in `benchling.v2.beta.datasets` were removed and replaced by `benchling.v2.beta.data_frames`. Data Frames remain in `v2-beta` stability in the API.

### What’s changing?

#### Added

* Added support for the `/assay-results:bulk-create` API endpoint at `benchling.assay_results.bulk_create`
* Benchling App Canvas now supports a data attribute for storing custom JSON data that will not be rendered to users
* CanvasBuilder was extended with two new builder methods:
  * `with_blocks()`
  * `with_data()`

#### Changed

The `benchling_sdk.apps` package underwent major breaking changes promoting from beta to stable:

* All contents promoted to stable EXCEPT two which remain in beta:
  * `benchling_sdk.apps.config.mock_config`
  * `benchling_sdk.apps.helpers.webhook_helpers`

Major code reorganization including:

* Distributed the contents of `benchling_sdk.apps.helpers.config_helpers` across new files found in `benchling_sdk.apps.config` package
* Distributed the contents of `benchling_sdk.apps.helpers.canvas_helpers` across new files found in `benchling_sdk.apps.canvas` package
* Distributed the contents of `benchling_sdk.apps.helpers.session_helpers` across new files found in `benchling_sdk.apps.status` package
* The `benchling_sdk.apps.framework.App` class now has App Config items accessible via the `config_store` property
* `benchling_sdk.apps.config.dependencies.DependencyLinkStore` has been moved to `benchling_sdk.apps.config.framework.ConfigItemStore`

Other notable functional changes:

* A Benchling Session Context (e.g., with `app.create_session_context()`) has new default behavior: If an App Canvas was attached to the session context, the Canvas will be updated with `enabled=True` on an Exception raised within the context
* `benchling.v2.beta.datasets` were removed and replaced by `benchling.v2.beta.data_frames`. Data Frames provide the same functionality that previously existed with Datasets. They remain in `v2-beta`.
* Benchling App Canvas TableUiBlocks should be created with a source of TableUiBlockDataFrameSource. For compatibility, TableUiBlockDatasetSource will continue to be accepted but converted to a DATA\_FRAME source by the API until Datasets are available once again.

### When is this happening?

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