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

Version 1.9.0 of the Benchling SDK adds beta support for Collaborations, expands parameter coverage for existing endpoints, and introduces changes to beta features for App Status and App Canvas. Additionally, there are several fixes to models.

### What’s changing?

#### Added

#### Added support for the returning parameter to the following endpoints:

* `benchling.aa_sequences.get_by_id()`
* `benchling.aa_sequences.list()`
* `benchling.aa_sequences.bulk_get()`
* `benchling.blobs.get_by_id()`
* `benchling.blobs.bulk_get()`
* `benchling.boxes.list()`
* `benchling.containers.get_by_id()`
* `benchling.containers.list()`
* `benchling.containers.bulk_get()`
* `benchling.custom_entities.get_by_id()`
* `benchling.custom_entities.list()`
* `benchling.custom_entities.bulk_get()`
* `benchling.dna_oligos.get_by_id()`
* `benchling.dna_oligos.list()`
* `benchling.dna_sequences.get_by_id()`
* `benchling.dna_sequences.list()`
* `benchling.dna_sequences.bulk_get()`
* `benchling.entries.get_entry_by_id()`
* `benchling.entries.list_entries()`
* `benchling.entries.update_entry()`
* `benchling.entries.bulk_get_entries()`
* `benchling.entries.list_entry_templates()`
* `benchling.entries.get_entry_template_by_id()`
* `benchling.feature_libraries.get_by_id()`
* `benchling.feature_libraries.list()`
* `benchling.requests.get_by_id()`
* `benchling.requests.list()`
* `benchling.requests.bulk_get()`
* `benchling.rna_oligos.get_by_id()`
* `benchling.rna_oligos.list()`
* `benchling.rna_sequences.get_by_id()`
* `benchling.rna_sequences.list()`
* `benchling.rna_sequences.bulk_get()`

#### Additional endpoints with new parameters:

* `email_any_of` on `benchling.users.list()`
* `custom_notation_id` on `benchling.dna_oligos.get_by_id()`
* `custom_notation_id` on `benchling.dna_oligos.list()`
* `custom_notation_id` on `benchling.rna_oligos.get_by_id()`
* `custom_notation_id` on `benchling.rna_oligos.list()`
* `custom_notation_id` on `benchling.rna_sequences.get_by_id()`
* `custom_notation_id` on `benchling.rna_sequences.list()`

- Custom Notations are available as benchling.custom\_notations
- Collaborations are available in beta as:
  * `benchling.v2.beta.collaborations.list()`
  * `benchling.v2.beta.folders.list_collaborations()`
  * `benchling.v2.beta.projects.list_collaborations()`
- Added a new AuthorizationMethod at benchling\_sdk.auth.bearer\_token\_auth.BearerTokenAuth.

#### Changed

* The default `RetryStrategy` has a higher backoff factor with removed jitter, which will cause eligible failed requests to retry over a longer period of time.
* Listing assay results, `benchling.assay_results.list()`, no longer requires a `schema_id` argument
* App Status: The `SessionContextErrorProcessor` will now automatically write 400 Bad Request errors back as user error messages by default
* App Canvas:  Methods on `benchling_sdk.apps.helpers.canvas_helpers.CanvasBuilder` were renamed to better reflect that they return a new copy of `CanvasBuilder`:
  * `disable()` to `with_disabled()`
  * `enable()` to `with_enabled()`

#### Fixed

* `LookupTableNotePart` was missing from the union of `EntryDate.notes`, causing `lookup_table` notes to incorrectly deserialize to `UnknownType`
* Corrected the signature of `get_authorization_header` for `ApiKeyAuth` to accept `base_url`. This should not affect users unless the `ApiKeyAuth` class was extended and re-implemented with a different signature.

### When is this happening?

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