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

Version 1.7.0 of the Benchling SDK includes support for a number of new features like App Canvas, improvements to existing features like import performance, and some bug fixes related to plates, among other things

### What’s changing?

**Added**

* New endpoint for [listing App canvases](https://benchling.com/api/v2-beta/reference#/Apps/listCanvases) in `benchling.v2.beta.apps.list_canvases`
* Listing assay results now supports a filter for `automation_output_processor_id` in `benchling.assay_results.list`
* Listing containers now supports several additional filters including `checkout_assignee_ids_any_of`, `restricted_sample_party_ids_all_of`, `restricted_sample_party_ids_any_of`, `restricted_sample_party_ids_none_of`, `restriction_status`, `sample_owner_ids_all_of`, `sample_owner_ids_any_of`, and `sample_owner_ids_none_of` in `benchling.containers.list`

**Improvements**

* There should be a significant performance increase when importing the SDK.
  * Example: Using `from benchling_sdk.benchling import Benchling`, many models and internals are now lazily loaded on demand. This should not affect user code unless it’s performing imports relative to other modules in the SDK or otherwise dependent upon specific internal implementations. Please report any abnormal experiences or unexpected behavior.
* A CanvasBuilder class is in alpha for more easily manipulating app Canvases. This includes operations like easily finding and changing blocks to produce a CanvasUpdate

**Fixes**

* SDK operations returning Plates should now deserialize to Well in `plate.wells` when appropriate. A previous version of the SDK released with improvements to harden deserialization inadvertently caused wells to deserialize as UnknownType. The API now returns a discriminator to allow this deserialization to happen correctly.

**Changes**

* The CanvasCreate class in `v2-beta` now requires `app_id`. This is forwards compatible with an upcoming breaking change to the v2-beta API that will require the app\_id (see [this changelog post](https://docs.benchling.com/changelog/adding-app_id-parameter-to-app-canvas-endpoints)).

### When is this happening?

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